summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/intel-microcode/README63
-rw-r--r--system/intel-microcode/intel-microcode.SlackBuild39
-rw-r--r--system/intel-microcode/intel-microcode.info8
-rw-r--r--system/intel-microcode/slack-desc12
4 files changed, 71 insertions, 51 deletions
diff --git a/system/intel-microcode/README b/system/intel-microcode/README
index 9eb300f9c0..549d53c700 100644
--- a/system/intel-microcode/README
+++ b/system/intel-microcode/README
@@ -1,36 +1,45 @@
-Linux Processor Microcode Data File
-
-The microcode data file contains the latest microcode definitions for all Intel
-processors. Intel releases microcode updates to correct processor behavior as
-documented in the respective processor specification updates. While the regular
-approach to getting this microcode update is via a BIOS upgrade, Intel realizes
-that this can be an administrative hassle. The Linux operating system and VMware
-ESX products have a mechanism to update the microcode after booting.
+CPU microcode is a mechanism to correct certain errata in existing
+systems. The normal preferred method to apply microcode updates is
+using the system BIOS, but for a subset of Intel processors this
+can be done at runtime using the operating system. This package
+contains those processors that support OS loading of microcode
+updates.
+
+Linux can update processor microcode very early in the kernel boot
+sequence. In situations when the BIOS update isn't available, early
+loading is the next best alternative to updating processor microcode.
+Microcode states are reset on a power reset, hence it is required to
+be updated every time during the boot process.
+
+Loading microcode using the initrd method is recommended so that
+the microcode is loaded at the earliest time for best coverage.
+Systems that cannot tolerate downtime may use the late reload
+method to update a running system without a reboot.
This SlackBuild repackages the official Intel microcode archive.
-The "microcode.dat" file is placed under /lib/firmware/microcode.dat and can be
-later uploaded using microcode_ctl utility (available from SlackBuilds.org).
-This approach (microcode.dat + microcode_ctl) is kept for compatibility reasons
-and should be avoided whenever possible. * Use the solution described below. *
+NOTES:
+1. microcode_ctl utility is no longer supported.
+
+2. Microcodes with the file names as expected by the Linux kernel
+ firmware loader are placed under /lib/firmware/intel-ucode
+ directory. The correct microcode is uploaded when the Intel
+ microcode driver kernel's module is loaded.
-If the iucode_tool (available from SlackBuilds.org) is installed on the system,
-this SlackBuild will:
+3. An early initramfs archive: /boot/intel-ucode.cpio is created.
+ This archive can be prepended to the regular initramfs to allow
+ the kernel to update the processor microcode early during boot.
-1) write the microcodes with the file names as expected by the Linux kernel
- firmware loader and place them under /lib/firmware/intel-ucode directory.
- The correct microcode is uploaded when the Intel microcode kernel's module
- is loaded.
+ For example, on systems using syslinux, this can be done with
+ a config line that reads something like that:
-2) write the microcodes to an early initramfs archive: /boot/intel-ucode.cpio
- This archive should be prepended to the regular initramfs to allow
- the kernel to update processor microcode very early during system boot.
+ INITRD /boot/intel-ucode.cpio,/boot/initrd-generic.gz
-To get started with early microcode loading, please have a look at:
-1) https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
-2) iucode_tool man page, especially about --write-earlyfw option.
+4. Microcodes for some processors require special attention. To find
+ out if you're affected, read the release notes for the particular
+ microcode release. The release notes file (releasenote) can be
+ found in the microcode tarball file.
-For example, on my system that uses syslinux, to load the microcode early
-during the boot process, the configuration file reads something like that:
+ To include these special microcodes files, run the script like that:
- INITRD /boot/intel-ucode.cpio,/boot/initrd-generic-4.4.x.gz
+ $ INCLUDE_UCODE_WITH_CAVEATS=yes ./intel-microcode.SlackBuild
diff --git a/system/intel-microcode/intel-microcode.SlackBuild b/system/intel-microcode/intel-microcode.SlackBuild
index 327292b862..8311ed2cd3 100644
--- a/system/intel-microcode/intel-microcode.SlackBuild
+++ b/system/intel-microcode/intel-microcode.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for intel-microcode
-# Copyright 2018 Andrzej Telszewski, Banie
+# Copyright 2018 Andrzej Telszewski, Szczecin
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,7 +24,7 @@
PRGNAM=intel-microcode
SRCNAM=microcode
-VERSION=${VERSION:-20180312}
+VERSION=${VERSION:-20180703}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
ARCH=noarch
@@ -39,24 +39,35 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $SRCNAM-$VERSION
+rm -rf $PRGNAM-$VERSION
-mkdir $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tgz -C $SRCNAM-$VERSION
-cd $SRCNAM-$VERSION
-chown root:root microcode.dat
-chmod 0644 microcode.dat
+mkdir $PRGNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tgz -C $PRGNAM-$VERSION
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
mkdir -p $PKG/lib/firmware
-cp -a microcode.dat $PKG/lib/firmware
+cp -a intel-ucode $PKG/lib/firmware
-if [ -x /usr/sbin/iucode_tool ]; then
- mkdir -p $PKG/lib/firmware/intel-ucode
- /usr/sbin/iucode_tool -v --list-all -K$PKG/lib/firmware/intel-ucode microcode.dat
- mkdir -p $PKG/boot
- /usr/sbin/iucode_tool -v --write-earlyfw=$PKG/boot/intel-ucode.cpio microcode.dat
+if [ ${INCLUDE_UCODE_WITH_CAVEATS:-no} = yes ]; then
+ if [ -d intel-ucode-with-caveats ]; then
+ cp -a intel-ucode-with-caveats/* $PKG/lib/firmware/intel-ucode
+ fi
fi
+# The "list" file is not always present in the upstream tarball.
+# For consistency, let's ensure it's never present in the package.
+rm -rf $PKG/lib/firmware/intel-ucode/list
+
+mkdir -p $PKG/boot
+iucode_tool -v --write-earlyfw=$PKG/boot/intel-ucode.cpio \
+ $PKG/lib/firmware/intel-ucode
+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat releasenote > $PKG/usr/doc/$PRGNAM-$VERSION/RELEASE_NOTE
diff --git a/system/intel-microcode/intel-microcode.info b/system/intel-microcode/intel-microcode.info
index abfef991e8..bb8ec88c67 100644
--- a/system/intel-microcode/intel-microcode.info
+++ b/system/intel-microcode/intel-microcode.info
@@ -1,10 +1,10 @@
PRGNAM="intel-microcode"
-VERSION="20180312"
+VERSION="20180703"
HOMEPAGE="https://downloadcenter.intel.com/"
-DOWNLOAD="https://downloadmirror.intel.com/27591/eng/microcode-20180312.tgz"
-MD5SUM="be315cd99a7ca392a2f917ceacbe14f2"
+DOWNLOAD="https://downloadmirror.intel.com/27945/eng/microcode-20180703.tgz"
+MD5SUM="873f2bdd7c0edf317f416f54fee74b42"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="iucode_tool"
MAINTAINER="Andrzej Telszewski"
EMAIL="atelszewski@gmail.com"
diff --git a/system/intel-microcode/slack-desc b/system/intel-microcode/slack-desc
index ec16178973..114ff829fe 100644
--- a/system/intel-microcode/slack-desc
+++ b/system/intel-microcode/slack-desc
@@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
intel-microcode: intel-microcode (Linux Processor Microcode Data File)
intel-microcode:
-intel-microcode: The microcode data file contains the latest microcode definitions
-intel-microcode: for all Intel processors. Intel releases microcode updates to
-intel-microcode: correct processor behavior as documented in the respective processor
-intel-microcode: specification updates.
+intel-microcode: CPU microcode is a mechanism to correct certain errata in existing
+intel-microcode: systems. The normal preferred method to apply microcode updates is
+intel-microcode: using the system BIOS, but for a subset of Intel processors this
+intel-microcode: can be done at runtime using the operating system. This package
+intel-microcode: contains those processors that support OS loading of microcode
+intel-microcode: updates.
intel-microcode:
intel-microcode: Homepage: https://downloadcenter.intel.com/
intel-microcode:
-intel-microcode:
-intel-microcode: