[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#681352: marked as done (unblock: amd64-microcode/1.20120117-2)



Your message dated Sun, 5 Aug 2012 22:33:45 -0300
with message-id <20120806013345.GA32176@khazad-dum.debian.net>
and subject line already unblocked
has caused the Debian Bug report #681352,
regarding unblock: amd64-microcode/1.20120117-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
681352: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681352
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: freeze-exception

Please unblock package amd64-microcode

Version 1.20120117-2 has extremely important functionality which was not
fully tested at the time 0.20120117-1 was uploaded, so I had to take a more
conservative approach, and missed the freeze deadline.

The new version in unstable is capable of updating processor microcode
automatically on boot, by including the microcode inside the initramfs.
This is important, as the earlier the microcode is updated, the better.

It was independently tested by some helpful people in #debian-devel.

The version currently in testing requires manual action by the user to work,
and an oversight caused it to lack documentation explaining this, so it is
of very limited use.

I will attach the debdiff output for your convenience.

Thank you!

unblock amd64-microcode/1.20120117-2

-- System Information:
Debian Release: 6.0.5
  APT prefers proposed-updates
  APT policy: (990, 'proposed-updates'), (990, 'stable'), (500, 'stable-updates')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.36+ (SMP w/8 CPU cores)
Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
diff -Nru amd64-microcode-0.20120117/debian/changelog amd64-microcode-1.20120117/debian/changelog
--- amd64-microcode-0.20120117/debian/changelog	2012-06-10 12:22:13.000000000 -0300
+++ amd64-microcode-1.20120117/debian/changelog	2012-07-09 21:53:40.000000000 -0300
@@ -1,3 +1,23 @@
+amd64-microcode (1.20120117-2) unstable; urgency=low
+
+  * debian/control: priority of this package should be standard,
+    not extra.  All AMD-based X86 boxes should install this package
+  * debian/control: update package description
+
+ -- Henrique de Moraes Holschuh <hmh@debian.org>  Mon, 09 Jul 2012 21:50:35 -0300
+
+amd64-microcode (1.20120117-1) unstable; urgency=low
+
+  * Update ABI (first component of package version) to 1, to match
+    the ABI of intel-microcode packages with /lib/firmware support
+  * Update online processor cores and the initramfs image on package
+    upgrade and the initramfs on package removal
+  * Install initramfs-tools helpers to handle boot-time microcode
+    updates
+  * README.Debian: describe supported mod/built-in configs
+
+ -- Henrique de Moraes Holschuh <hmh@debian.org>  Mon, 09 Jul 2012 19:31:47 -0300
+
 amd64-microcode (0.20120117-1) unstable; urgency=medium
 
   * AMD microcode release 20120117:
diff -Nru amd64-microcode-0.20120117/debian/control amd64-microcode-1.20120117/debian/control
--- amd64-microcode-0.20120117/debian/control	2012-06-10 11:31:17.000000000 -0300
+++ amd64-microcode-1.20120117/debian/control	2012-07-09 21:50:28.000000000 -0300
@@ -1,6 +1,6 @@
 Source: amd64-microcode
 Section: non-free/admin
-Priority: extra
+Priority: standard
 Maintainer: Henrique de Moraes Holschuh <hmh@debian.org>
 Uploaders: Giacomo Catenazzi <cate@debian.org>
 Build-Depends: debhelper (>= 7)
@@ -12,13 +12,9 @@
 Architecture: i386 amd64
 Depends: ${misc:Depends}
 Description: Processor microcode firmware for AMD CPUs
- The microcode data file for Linux contains the latest microcode
- definitions for all AMD AMD64 processors.  AMD releases microcode
- updates to correct processor behavior as documented in the
- respective processor revision guides.  While the regular
- approach to getting this microcode update is via a BIOS upgrade,
- AMD realizes that this is an administrative hassle; the Linux
- Operating System has a mechanism to update the microcode after
- booting the OS.
+ This package contains microcode patches for all AMD AMD64
+ processors.  AMD releases microcode patches to correct
+ processor behavior as documented in the respective processor
+ revision guides.
  .
  For Intel processors, please refer to the intel-microcode package.
diff -Nru amd64-microcode-0.20120117/debian/initramfs.hook amd64-microcode-1.20120117/debian/initramfs.hook
--- amd64-microcode-0.20120117/debian/initramfs.hook	1969-12-31 21:00:00.000000000 -0300
+++ amd64-microcode-1.20120117/debian/initramfs.hook	2012-07-09 15:09:39.000000000 -0300
@@ -0,0 +1,53 @@
+#!/bin/sh
+# amd64-microcode initramfs-tools hook script
+# Copyright (C) 2012 Henrique de Moraes Holschuh <hmh@hmh.eng.br>
+# Released under the GPL v2 or later license
+#
+# Generates a copy of the minimal microcode for the current system if
+# possible, and installs it in the initramfs.
+#
+
+PREREQ=""
+
+prereqs()
+{
+   echo "$PREREQ"
+}
+
+case $1 in
+prereqs)
+   prereqs
+   exit 0
+   ;;
+esac
+
+. /usr/share/initramfs-tools/hook-functions
+
+verbose()
+{
+	if [ "${verbose}" = "y" ] ; then
+		echo "amd64-microcode: $@"
+	fi
+	:
+}
+
+AUCODE_FW_DIR=/lib/firmware/amd-ucode
+
+if [ ! -d "${AUCODE_FW_DIR}" ] ; then
+	verbose "no AMD64 processor microcode datafiles to install"
+	exit 0;
+fi
+
+verbose "installing all microcode datafiles for AMD64 processors"
+
+# Generate firmware dir
+mkdir -m 755 -p "${DESTDIR}${AUCODE_FW_DIR}" || true
+cp -fr "${AUCODE_FW_DIR}/." "${DESTDIR}${AUCODE_FW_DIR}/."
+
+if ! rmdir "${DESTDIR}${AUCODE_FW_DIR}" 2>/dev/null ; then
+	# The directory was not empty, so we have work to do
+	verbose "installing AMD64 processor microcode update support into initramfs..."
+	force_load microcode
+fi
+
+:
diff -Nru amd64-microcode-0.20120117/debian/initramfs.init-premount amd64-microcode-1.20120117/debian/initramfs.init-premount
--- amd64-microcode-0.20120117/debian/initramfs.init-premount	1969-12-31 21:00:00.000000000 -0300
+++ amd64-microcode-1.20120117/debian/initramfs.init-premount	2012-07-09 15:09:39.000000000 -0300
@@ -0,0 +1,52 @@
+#!/bin/sh
+# processor-ucode-common initramfs-tools boot script
+# Copyright (C) 2012 Henrique de Moraes Holschuh <hmh@hmh.eng.br>
+# Released under the GPL v2 or later license
+#
+# Triggers kernel firmware update requests for processor microcode
+# when required.
+#
+
+# dependencies: firmware loader, microcode kernel support (built-in/module)
+
+PREREQ="udev"
+
+prereqs()
+{
+   echo "$PREREQ"
+}
+
+case $1 in
+prereqs)
+   prereqs
+   exit 0
+   ;;
+esac
+
+# Only continue if we do possibly have firmware to install
+[ -d /lib/firmware/intel-ucode -o -d /lib/firmware/amd-ucode ] || exit 0
+
+# module load will already have caused the microcode to be fetched
+{ while read -r module trash ; do [ "x$module" = "xmicrocode" ] && exit 0 ; done } < /proc/modules
+
+. /scripts/functions
+
+if [ -e /sys/devices/system/cpu/microcode/reload ] ; then
+    echo 1 > /sys/devices/system/cpu/microcode/reload || {
+	log_warning_msg "could not update the microcode of every processor"
+    }
+else
+    # Try all online processors, broken kernels need this,
+    # fixed kernels will accept it only on the BSP and update
+    # all processors anyway, and -EINVAL all others... but we
+    # don't know which one is the BSP, so we try all of them
+    # and hide errors, the kernel will log any real problem.
+
+    log_begin_msg "Requesting microcode update using per-core interface"
+    for i in /sys/devices/system/cpu/cpu[0-9]*/microcode/reload ; do
+	echo 1 2>/dev/null > "$i" || true
+    done
+    log_end_msg
+fi
+
+:
diff -Nru amd64-microcode-0.20120117/debian/postinst amd64-microcode-1.20120117/debian/postinst
--- amd64-microcode-0.20120117/debian/postinst	1969-12-31 21:00:00.000000000 -0300
+++ amd64-microcode-1.20120117/debian/postinst	2012-07-09 15:09:39.000000000 -0300
@@ -0,0 +1,57 @@
+#!/bin/sh
+# postinst script for amd64-microcode
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+case "$1" in
+    configure)
+	if [ -e /sys/devices/system/cpu/microcode/reload ] ; then
+	    echo "Updating microcode on all online processors..." >&2
+	    echo 1 > /sys/devices/system/cpu/microcode/reload || {
+	        echo "Kernel reported failure while updating microcode!" >&2
+            }
+	else
+	    # Try all online processors, broken kernels need this,
+	    # fixed kernels will accept it only on the BSP and update
+	    # all processors anyway, and -EINVAL all others... but we
+	    # don't know which one is the BSP, so we try all of them
+	    # and hide errors, the kernel will log any real problem.
+	    echo "Using per-core interface to update microcode on online processors..." >&2
+	    find /sys/devices/system/cpu -noleaf -type f -path '/sys/devices/system/cpu/cpu*/microcode/reload' | \
+		while read i ; do echo -n 1 2>/dev/null >"$i" || true ; done
+	fi
+	# do it like udev and firmware-linux-*
+	if [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ] ; then
+		update-initramfs -u
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff -Nru amd64-microcode-0.20120117/debian/postrm amd64-microcode-1.20120117/debian/postrm
--- amd64-microcode-0.20120117/debian/postrm	1969-12-31 21:00:00.000000000 -0300
+++ amd64-microcode-1.20120117/debian/postrm	2012-07-09 15:09:39.000000000 -0300
@@ -0,0 +1,42 @@
+#!/bin/sh
+# postrm script for amd64-microcode
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <overwriter>
+#          <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+case "$1" in
+    purge|remove)
+	if [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ] ; then
+	    update-initramfs -u
+	fi
+    ;;
+
+    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff -Nru amd64-microcode-0.20120117/debian/README.Debian amd64-microcode-1.20120117/debian/README.Debian
--- amd64-microcode-0.20120117/debian/README.Debian	2012-06-10 10:58:02.000000000 -0300
+++ amd64-microcode-1.20120117/debian/README.Debian	2012-07-09 19:30:51.000000000 -0300
@@ -9,7 +9,7 @@
 
 While most of the microcode updates fix problems that happen extremely
 rarely, there are enough updates fixing issues that would cause system
-lockup, memory corruption, or unpredictable system behaviour, to warrant
+lockup, memory corruption, or unpredictable system behavior, to warrant
 taking it seriously.
 
 Microcode updates are ephemeral: they will be lost after a processor hard
@@ -27,6 +27,20 @@
 outdated microcode, increasing the chances of incorrect system operation.
 
 Debian can apply microcode updates to the system processors during the
-operating system boot.
+operating system boot.  The following configurations are supported for
+the microcode driver:
 
- -- Henrique de Moraes Holschuh <hmh@debian.org> Sun Jun 10 10:57:50 BRT 2012
+1. When an initramfs image is used (Debian default), both modular and
+   built-in configs for the microcode driver will work, and microcode
+   will be updated by the initramfs.  You must run "update-initramfs -u"
+   when new microcode is manually installed to /lib/firmware (this will
+   be done automatically when new microcode is installed by a package
+   upgrade).
+
+2. When an initramfs image is not used, only the modular microcode
+   driver is supported.  If it doesn't autoload by itself in your kernel
+   version, you should add it to /etc/modules.  You must install the
+   kmod package, and the root filesystem with /lib/firmware must be
+   available when the modules are loaded.
+
+ -- Henrique de Moraes Holschuh <hmh@debian.org>, 2012-07-09
diff -Nru amd64-microcode-0.20120117/debian/rules amd64-microcode-1.20120117/debian/rules
--- amd64-microcode-0.20120117/debian/rules	2012-06-10 11:01:23.000000000 -0300
+++ amd64-microcode-1.20120117/debian/rules	2012-07-09 15:09:39.000000000 -0300
@@ -28,6 +28,13 @@
 	dh_installdirs
 	dh_install
 
+	mkdir -p "$(PKGDIR)/usr/share/initramfs-tools/hooks"
+	install -m 755 "$(DEBDIR)/initramfs.hook" \
+		"$(PKGDIR)/usr/share/initramfs-tools/hooks/$(PACKAGE)"
+	mkdir -p "$(PKGDIR)/usr/share/initramfs-tools/scripts/init-premount"
+	install -m 755 "$(DEBDIR)/initramfs.init-premount" \
+		"$(PKGDIR)/usr/share/initramfs-tools/scripts/init-premount/$(PACKAGE)"
+
 binary: install
 	dh_testdir
 	dh_testroot

--- End Message ---
--- Begin Message ---
amd64-microcode/1.20120117-2 has been unblocked and has migrated to
testing, but this bug remained open.  I'm closing it.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh

--- End Message ---

Reply to: