[arch-releng] [RFC] [PATCH] [configs/releng] Make and use amd_ucode.bin for initrd.

Gerardo Exequiel Pozzi vmlinuz386 at gmail.com
Sun Aug 19 02:29:29 UTC 2018


Requested at FS#59694
---
 configs/releng/build.sh                            | 14 ++++++++++++++
 .../efiboot/loader/entries/archiso-x86_64-cd.conf  |  1 +
 .../efiboot/loader/entries/archiso-x86_64-usb.conf |  1 +
 configs/releng/syslinux/archiso_pxe.cfg            |  6 +++---
 configs/releng/syslinux/archiso_sys.cfg            |  2 +-
 5 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/configs/releng/build.sh b/configs/releng/build.sh
index f5524e8..3272cd8 100755
--- a/configs/releng/build.sh
+++ b/configs/releng/build.sh
@@ -107,6 +107,16 @@ make_customize_airootfs() {
     rm ${work_dir}/x86_64/airootfs/root/customize_airootfs.sh
 }
 
+# Prepare amd_ucode
+make_amd_ucode_img() {
+    mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
+    cat ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin > ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
+    pushd ${work_dir}/amd-ucode > /dev/null
+    echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > amd-ucode.img
+    popd > /dev/null
+    cp ${work_dir}/amd-ucode/amd-ucode.img ${work_dir}/x86_64/airootfs/boot/amd-ucode.img
+}
+
 # Prepare kernel/initramfs ${install_dir}/boot/
 make_boot() {
     mkdir -p ${work_dir}/iso/${install_dir}/boot/x86_64
@@ -120,6 +130,8 @@ make_boot_extra() {
     cp ${work_dir}/x86_64/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING
     cp ${work_dir}/x86_64/airootfs/boot/intel-ucode.img ${work_dir}/iso/${install_dir}/boot/intel_ucode.img
     cp ${work_dir}/x86_64/airootfs/usr/share/licenses/intel-ucode/LICENSE ${work_dir}/iso/${install_dir}/boot/intel_ucode.LICENSE
+    cp ${work_dir}/x86_64/airootfs/boot/amd-ucode.img ${work_dir}/iso/${install_dir}/boot/amd_ucode.img
+    cp ${work_dir}/x86_64/airootfs/usr/share/licenses/linux-firmware/LICENSE.amd-ucode ${work_dir}/iso/${install_dir}/boot/amd_ucode.LICENSE
 }
 
 # Prepare /${install_dir}/boot/syslinux
@@ -185,6 +197,7 @@ make_efiboot() {
     cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/archiso/archiso.img
 
     cp ${work_dir}/iso/${install_dir}/boot/intel_ucode.img ${work_dir}/efiboot/EFI/archiso/intel_ucode.img
+    cp ${work_dir}/iso/${install_dir}/boot/amd_ucode.img ${work_dir}/efiboot/EFI/archiso/amd_ucode.img
 
     mkdir -p ${work_dir}/efiboot/EFI/boot
     cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi
@@ -253,6 +266,7 @@ run_once make_basefs
 run_once make_packages
 run_once make_setup_mkinitcpio
 run_once make_customize_airootfs
+run_once make_amd_ucode_img
 run_once make_boot
 run_once make_boot_extra
 run_once make_syslinux
diff --git a/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf b/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf
index d503f11..b77ed98 100644
--- a/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf
+++ b/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf
@@ -1,5 +1,6 @@
 title   Arch Linux archiso x86_64 UEFI CD
 linux   /EFI/archiso/vmlinuz.efi
 initrd  /EFI/archiso/intel_ucode.img
+initrd  /EFI/archiso/amd_ucode.img
 initrd  /EFI/archiso/archiso.img
 options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
diff --git a/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf b/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf
index 14f3d02..09adca4 100644
--- a/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf
+++ b/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf
@@ -1,5 +1,6 @@
 title   Arch Linux archiso x86_64 UEFI USB
 linux   /%INSTALL_DIR%/boot/x86_64/vmlinuz
 initrd  /%INSTALL_DIR%/boot/intel_ucode.img
+initrd  /%INSTALL_DIR%/boot/amd_ucode.img
 initrd  /%INSTALL_DIR%/boot/x86_64/archiso.img
 options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
diff --git a/configs/releng/syslinux/archiso_pxe.cfg b/configs/releng/syslinux/archiso_pxe.cfg
index 481371a..92af749 100644
--- a/configs/releng/syslinux/archiso_pxe.cfg
+++ b/configs/releng/syslinux/archiso_pxe.cfg
@@ -7,7 +7,7 @@ It allows you to install Arch Linux or perform system maintenance.
 ENDTEXT
 MENU LABEL Boot Arch Linux (x86_64) (NBD)
 LINUX boot/x86_64/vmlinuz
-INITRD boot/intel_ucode.img,boot/x86_64/archiso.img
+INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
 APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver}
 SYSAPPEND 3
 
@@ -18,7 +18,7 @@ It allows you to install Arch Linux or perform system maintenance.
 ENDTEXT
 MENU LABEL Boot Arch Linux (x86_64) (NFS)
 LINUX boot/x86_64/vmlinuz
-INITRD boot/intel_ucode.img,boot/x86_64/archiso.img
+INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
 APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt
 SYSAPPEND 3
 
@@ -29,7 +29,7 @@ It allows you to install Arch Linux or perform system maintenance.
 ENDTEXT
 MENU LABEL Boot Arch Linux (x86_64) (HTTP)
 LINUX boot/x86_64/vmlinuz
-INITRD boot/intel_ucode.img,boot/x86_64/archiso.img
+INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
 APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/
 SYSAPPEND 3
 
diff --git a/configs/releng/syslinux/archiso_sys.cfg b/configs/releng/syslinux/archiso_sys.cfg
index 0c82573..a35a1ea 100644
--- a/configs/releng/syslinux/archiso_sys.cfg
+++ b/configs/releng/syslinux/archiso_sys.cfg
@@ -7,7 +7,7 @@ It allows you to install Arch Linux or perform system maintenance.
 ENDTEXT
 MENU LABEL Boot Arch Linux (x86_64)
 LINUX boot/x86_64/vmlinuz
-INITRD boot/intel_ucode.img,boot/x86_64/archiso.img
+INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
 APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
 
 INCLUDE boot/syslinux/archiso_tail.cfg
-- 
2.18.0


More information about the arch-releng mailing list