summaryrefslogtreecommitdiff
path: root/sys-firmware
diff options
context:
space:
mode:
Diffstat (limited to 'sys-firmware')
-rw-r--r--sys-firmware/Manifest.gzbin4398 -> 4402 bytes
-rw-r--r--sys-firmware/intel-microcode/Manifest4
-rw-r--r--sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install47
-rw-r--r--sys-firmware/intel-microcode/files/35-intel-microcode.install49
-rw-r--r--sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r1.ebuild (renamed from sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild)10
5 files changed, 109 insertions, 1 deletions
diff --git a/sys-firmware/Manifest.gz b/sys-firmware/Manifest.gz
index c7e24747dff6..065d1b80be21 100644
--- a/sys-firmware/Manifest.gz
+++ b/sys-firmware/Manifest.gz
Binary files differ
diff --git a/sys-firmware/intel-microcode/Manifest b/sys-firmware/intel-microcode/Manifest
index c489f5346d82..7b8ef1ad539d 100644
--- a/sys-firmware/intel-microcode/Manifest
+++ b/sys-firmware/intel-microcode/Manifest
@@ -1,3 +1,5 @@
+AUX 35-intel-microcode-systemd.install 1274 BLAKE2B 302f5428a8ca7590ced274f3aef251fd7a00a922466d5599dde8f20c088a38438f9f1a4d4c99dd5752e5788927142bc3beff7c64ec6b93922af405a570dbe925 SHA512 cb1a2c8e31dd79550bcce854f7ddd4a955cac25caebc94b9fbe803274fc3e503055ea515420faaf750f39b341cddf9d8b436d05e5c1895a44d6d3c060a5549c2
+AUX 35-intel-microcode.install 1320 BLAKE2B 6b4209e1e622c50eefae1666d3192e2c5a2f1e558be25b0dabc8fda1d065495c398ef39162ce7c1e6729d30770fca47f1e58ba9c43e49570fbb0d3395998363d SHA512 2c36f6af1f26e5596c9cac120d82152ac84c7c32db722c8b50e43365f434562a7e4ae87a36bcc4c695793b6a4a4930811e8aa71e30fddfaff786c5ae4cd7b93b
DIST intel-microcode-collection-20240312.tar.xz 13484040 BLAKE2B 947f78698211b372472629e7fdf076021db97f156d812ec2a84c5ab3d5ee374e04191f7881c956c261c6a6a5935b2c779b837879677ee98d44cf8c753a4393b8 SHA512 de577f232035a92ce563475edb4572c6fa40a0a2ee8e76b858de1ca42f905d366d107bf02e4968127ad6fe150baf37e11ed93191e40c1c5913ba34fe77184c00
DIST intel-microcode-collection-20240514.tar.xz 13421016 BLAKE2B 83b7d213709bf8c1ea1b62456974cf6a2087470d9e2456ef3de93569007cfa8c94021a21a9f3f7b638ffe4b2ad0f516deda04a1c630e54f35709e92a113a7683 SHA512 4cc364b19355f133dae0178f7d10b50abcc0e6e7919e646cfc756c8ff8dc1d6d0819abae6f5cb7f659f0466ee31196625cf022bb994f500ab08e93238a66d104
DIST intel-microcode-collection-20240526.tar.xz 14673584 BLAKE2B 262f667ac46e190994e86f547c98ac776c73b1576c208fa32df96a2dd60af6cda9bd0b0367ca68bb6b85fd19f75913e73069d0064eb2b4c560068c3da50618c8 SHA512 4227c68ba60aea940b851f10d1006ee42b45d55425eb143210adeb363468238329d4a2720d117f5bdaeb9857ae29a6952a3df22769f4436638a9080ded6793ba
@@ -7,5 +9,5 @@ DIST microcode-20240514.tar.gz 12870457 BLAKE2B 2a3a357ecf8d9f17fd20cd651386e568
DIST microcode-20240531.tar.gz 12870497 BLAKE2B 6a2c5ee6b6f3543b28f3753b30812e360bad50776b4f81e32a832e2169f38c11f8d5108ce0a81ddcdf1ecf7557baf1fd62c053a365f39a33ded5fd5018580b1f SHA512 fb9d772491f279ebb691248e4a665da45c986ca7b4668ecf311c5fcb91a42400f7a5b35e8bfc31ceb1c9d598e753c817359900e3fa316d825f8ecec21ec63cfe
EBUILD intel-microcode-20240312_p20240312.ebuild 11405 BLAKE2B de40dc4ba660dbbcf048054f545ae411b7fb24f6280383fd4dbd855558f7695d2e8709d9d78d55d0669f0d48cbdbcab8a61b929ad60c30c6c635aa3a23f6e06e SHA512 962174d9ebe3c15f020e89577e85f1230f76c13a0c910aec25b15f7b73d025cdfe21873da621a35fff7580caaac504c57ab9501f543167c9b9e7740e556a2bf7
EBUILD intel-microcode-20240514_p20240514.ebuild 11405 BLAKE2B de40dc4ba660dbbcf048054f545ae411b7fb24f6280383fd4dbd855558f7695d2e8709d9d78d55d0669f0d48cbdbcab8a61b929ad60c30c6c635aa3a23f6e06e SHA512 962174d9ebe3c15f020e89577e85f1230f76c13a0c910aec25b15f7b73d025cdfe21873da621a35fff7580caaac504c57ab9501f543167c9b9e7740e556a2bf7
-EBUILD intel-microcode-20240531_p20240526.ebuild 11407 BLAKE2B 206a08021e04cbc1c9de7d5a225df5868e9ac356d33fcdd3430b20c52461feed12bdbf016a7da4bb92310b4b93f5fa757459d780997b9dd829c85bdb31d164fb SHA512 f298e2a764f26e7cfef07257868413ddf6422eec2c8170f4220c407445b747f2d7f2e875f7a8da4c5698752b2add8ca4fe307db38e4c695ec4e8ff9f075e3ebd
+EBUILD intel-microcode-20240531_p20240526-r1.ebuild 11745 BLAKE2B 6909f5b1f7a857c5062f94902f1c33a683466ed00c30f2369c375a2ab852a5cda6218d39053a4a132aaa19888038fab5f56e10fcf7b1171ab0bff66482d1b2fa SHA512 80db9edbb460a181410a8ee8784d5569bb3ca21299f5da5e43297ef63cf0eca2f5f2255fdc6370a46765db2c6e9aabd004630ab9033f2fd198f1bc37e138e6ad
MISC metadata.xml 853 BLAKE2B b9103bc6c00cd36211b33060a28dc72159fa1309644f6dc8005c415c8eb435217f1e39ba70a289bf9f93a3edac7e73f2227bfe711e745f8743ae455e2d1caa4a SHA512 c425c341725210af9693ed50ae9b9f91cd4c44539f1abe5fff9f59c3441eed39aee6746c881f7a812aec1bab1a8c4974e111980211cf4cfb55e1bdb12e394631
diff --git a/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install b/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install
new file mode 100644
index 000000000000..7ad7b8c49e83
--- /dev/null
+++ b/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+# Copyright 2024 Gentoo Authors
+# This script is installed by sys-firmware/intel-microcode, it is executed by
+# systemd's kernel-install, NOT by the traditional installkernel. I.e. this
+# plugin is run when the systemd USE flag is enabled or
+# SYSTEMD_KERNEL_INSTALL=1 is set in the environment.
+
+COMMAND="${1}"
+
+if [[ ${COMMAND} != add ]]; then
+ exit 0
+fi
+
+if [[ ${KERNEL_INSTALL_INITRD_GENERATOR} == dracut ]]; then
+ # Dracut bundles microcode in its initramfs images
+ [[ ${KERNEL_INSTALL_VERBOSE} == 1 ]] && echo \
+ "initrd_generator=${KERNEL_INSTALL_INITRD_GENERATOR} bundles CPU microcode, nothing to do here."
+ exit 0
+fi
+
+# do nothing if somehow iucode_tool is not installed
+if ! command -v iucode_tool >/dev/null; then
+ [[ ${KERNEL_INSTALL_VERBOSE} == 1 ]] && echo \
+ "iucode_tool command not available"
+ exit 1
+fi
+
+# use same opts as intel-microcode.ebuild
+opts=(
+ --write-earlyfw="${KERNEL_INSTALL_STAGING_AREA}/microcode-intel"
+ --overwrite
+ --strict-checks
+ --no-ignore-broken
+ --no-downgrade
+)
+
+if [[ ${KERNEL_INSTALL_VERBOSE} == 1 ]]; then
+ echo "Generating Intel CPU Microcode early initramfs image..."
+ opts+=(
+ --list-all
+ --list
+ )
+fi
+
+iucode_tool /lib/firmware/intel-ucode "${opts[@]}" ||
+ { echo "iucode_tool failed" && exit 1; }
diff --git a/sys-firmware/intel-microcode/files/35-intel-microcode.install b/sys-firmware/intel-microcode/files/35-intel-microcode.install
new file mode 100644
index 000000000000..d4e9ef19d56b
--- /dev/null
+++ b/sys-firmware/intel-microcode/files/35-intel-microcode.install
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+# Copyright 2024 Gentoo Authors
+# This script is installed by sys-firmware/intel-microcode, it is executed by
+# the traditional installkernel, NOT by systemd's kernel-install. I.e. this
+# plugin is run when the systemd USE flag is disabled or
+# SYSTEMD_KERNEL_INSTALL=0 is set in the environment.
+
+# familiar helpers, we intentionally don't use Gentoo functions.sh
+die() {
+ echo -e " ${NOCOLOR-\e[1;31m*\e[0m }${*}" >&2
+ exit 1
+}
+
+einfo() {
+ echo -e " ${NOCOLOR-\e[1;32m*\e[0m }${*}" >&2
+}
+
+main() {
+ # re-define for subst to work
+ [[ -n ${NOCOLOR+yes} ]] && NOCOLOR=
+
+ if [[ ${INSTALLKERNEL_INITRD_GENERATOR} == dracut ]]; then
+ # Dracut bundles microcode in its initramfs images
+ echo "initrd_generator=${INSTALLKERNEL_INITRD_GENERATOR} bundles CPU microcode, nothing to do here."
+ exit 0
+ fi
+
+ # do nothing if somehow iucode_tool is not installed
+ [[ -x $(command -v iucode_tool) ]] || die "iucode_tool command not available"
+
+ [[ ${EUID} -eq 0 ]] || die "Please run this script as root"
+
+ local opts=(
+ --write-earlyfw="/boot/intel-uc.img"
+ --overwrite
+ --strict-checks
+ --no-ignore-broken
+ --no-downgrade
+ --list-all
+ --list
+ )
+
+ einfo "Generating Intel CPU Microcode early initramfs image..."
+ iucode_tool /lib/firmware/intel-ucode "${opts[@]}" ||
+ die "iucode_tool failed"
+}
+
+main
diff --git a/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild b/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r1.ebuild
index c33321a94497..6ad9cfa826b6 100644
--- a/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild
+++ b/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r1.ebuild
@@ -152,6 +152,16 @@ src_install() {
insinto /usr/lib/dracut/dracut.conf.d
newins - 15-${PN}.conf <<<"early_microcode=$(usex initramfs)"
)
+ if use initramfs; then
+ # Install installkernel/kernel-install hooks for non-dracut initramfs
+ # generators that don't bundled the microcode
+ (
+ exeinto /usr/lib/kernel/preinst.d
+ doexe "${FILESDIR}/35-intel-microcode.install"
+ exeinto /usr/lib/kernel/install.d
+ doexe "${FILESDIR}/35-intel-microcode-systemd.install"
+ )
+ fi
# The earlyfw cpio needs to be in /boot because it must be loaded before
# rootfs is mounted.