Print this page
12817 ucode/update.intel should be able to use git repos
12815 ucode/update.intel needs pkgfmt fix
@@ -8,40 +8,57 @@
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
# Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
-# Copyright 2019 Joyent, Inc.
+# Copyright 2020 Joyent, Inc.
# A simple update script that extracts an Intel microcode download file
# into the intel/ directory, and updates the hardlinks in the
# system/kernel/platform manifest.
set -e
set -o pipefail
-[[ -z "$1" ]] || [[ ! -f "$1" ]] && {
- echo "Syntax: $0 <path to microcode tar>" >&2
- exit 1
-}
+# Remove this once we start using pkgfmt without it in the rest of -gate.
+export PKGFMT_OUTPUT=v1
-ucodetar="$1"
+# Change me if the world evolves, but for now, this is the source of
+# truth for Intel microcode.
+REPOSOURCE="https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files"
+tmp=$(mktemp -d)
+mkdir $tmp/out
mf=../../pkg/manifests/system-microcode-intel.mf
[[ -f $mf ]] || {
echo "Run from usr/src/data/ucode" 2>&1
exit 1
}
fw=platform/i86pc/ucode/GenuineIntel
-tmp=$(mktemp -d)
-mkdir $tmp/out
+if [[ -z "$1" ]]; then
+ goback=`pwd`
+ cd $tmp
+ # Hope git is available if we need it...
+ git clone $REPOSOURCE || {
+ echo "Git clone of $REPOSOURCE failed." 2>&1
+ exit 1
+ }
+ cd $goback
+ # Change with REPOSOURCE name
+ dir=$tmp/Intel-Linux-Processor-Microcode-Data-Files
+elif [[ -d "$1" ]]; then
+ dir=$1
+else
+ gtar -C $tmp -xvf "$1"
+ # This will expand properly if the tarball appends a release
+ # to the name.
+ dir=$tmp/Intel-Linux-Processor-Microcode-Data-Files*
+fi
-gtar -C $tmp -xvf "$ucodetar"
-
-find $tmp/Intel-Linux-Processor-Microcode-Data*/intel-ucode*/ -type f \
+find $dir/intel-ucode*/ -type f \
| while read f; do
echo "Converting $(basename $f)"
cp $f $tmp/intel-fw
ucodeadm -i -R $tmp/out $tmp/intel-fw
rm -f $tmp/intel-fw
@@ -52,11 +69,11 @@
egrep -v "(file|hardlink) path=$fw" $mf.tmp > $mf
rm -f $mf.tmp
rm -f intel/*
-cp $tmp/Intel-Linux-Processor-Microcode-Data*/license intel/THIRDPARTYLICENSE
+cp $dir/license intel/THIRDPARTYLICENSE
echo Intel Processor Microcode Data Files > intel/THIRDPARTYLICENSE.descrip
rm -f Makefile.links
typeset -A seen