[arch-releng] [RFC] [PATCH] [configs/releng] Make and use amd_ucode.bin for initrd.
Christian Hesse
list at eworm.de
Thu Aug 23 09:22:09 UTC 2018
Christian Hesse <list at eworm.de> on Thu, 2018/08/23 11:20:
> Christian Hesse <list at eworm.de> on Wed, 2018/08/22 11:24:
> > Gerardo Exequiel Pozzi via arch-releng <arch-releng at archlinux.org> on Sat,
> > 2018/08/18 23:29:
> > > +# 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 +}
> >
> > Wondering if we should put this into a package... Could be a split package
> > of linux-firmware. Any opinion on this?
>
> [ Added Laurent to CC as he maintains the linux-firmware package. ]
>
> I've attached a proposal patch to add a split package amd-ucode-early to
> linux-firmware. Any objections? Is the name ok or do we prefer just
> 'amd-ucode'?
>
> And another note... Did anybody test if microcode is updated properly if
> both, intel-ucode.img and amd-ucode, are loaded?
Oh, attachments are stripped, so adding inline...
Index: PKGBUILD
===================================================================
--- PKGBUILD (revision 332849)
+++ PKGBUILD (working copy)
@@ -1,40 +1,16 @@
# $Id$
# Maintainer: Thomas Bächler <thomas at archlinux.org>
-pkgname=linux-firmware
+pkgbase=linux-firmware
+pkgname=(linux-firmware amd-ucode-early)
_commit=f1b95fe5a51830bb8c1712082de4279a042376b6 # master
pkgver=20180815.f1b95fe
-pkgrel=1
+pkgrel=2
pkgdesc="Firmware files for Linux"
makedepends=('git')
arch=('any')
url="http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=summary"
license=('GPL2' 'GPL3' 'custom')
-conflicts=('linux-firmware-git'
- 'kernel26-firmware'
- 'ar9170-fw'
- 'iwlwifi-1000-ucode'
- 'iwlwifi-3945-ucode'
- 'iwlwifi-4965-ucode'
- 'iwlwifi-5000-ucode'
- 'iwlwifi-5150-ucode'
- 'iwlwifi-6000-ucode'
- 'rt2870usb-fw'
- 'rt2x00-rt61-fw'
- 'rt2x00-rt71w-fw'
- 'amd-ucode')
-replaces=('kernel26-firmware'
- 'ar9170-fw'
- 'iwlwifi-1000-ucode'
- 'iwlwifi-3945-ucode'
- 'iwlwifi-4965-ucode'
- 'iwlwifi-5000-ucode'
- 'iwlwifi-5150-ucode'
- 'iwlwifi-6000-ucode'
- 'rt2870usb-fw'
- 'rt2x00-rt61-fw'
- 'rt2x00-rt71w-fw'
- 'amd-ucode')
options=(!strip)
source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git#commit=${_commit}")
md5sums=('SKIP')
@@ -50,7 +26,39 @@
echo $(TZ=UTC git show -s --pretty=%cd --date=format-local:%Y%m%d HEAD).$(git rev-parse --short HEAD)
}
-package() {
+build() {
+ mkdir -p kernel/x86/microcode
+ cat ${pkgbase}/amd-ucode/microcode_amd*.bin > kernel/x86/microcode/AuthenticAMD.bin
+ echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > amd-ucode.img
+}
+
+package_linux-firmware() {
+ conflicts=('linux-firmware-git'
+ 'kernel26-firmware'
+ 'ar9170-fw'
+ 'iwlwifi-1000-ucode'
+ 'iwlwifi-3945-ucode'
+ 'iwlwifi-4965-ucode'
+ 'iwlwifi-5000-ucode'
+ 'iwlwifi-5150-ucode'
+ 'iwlwifi-6000-ucode'
+ 'rt2870usb-fw'
+ 'rt2x00-rt61-fw'
+ 'rt2x00-rt71w-fw'
+ 'amd-ucode')
+ replaces=('kernel26-firmware'
+ 'ar9170-fw'
+ 'iwlwifi-1000-ucode'
+ 'iwlwifi-3945-ucode'
+ 'iwlwifi-4965-ucode'
+ 'iwlwifi-5000-ucode'
+ 'iwlwifi-5150-ucode'
+ 'iwlwifi-6000-ucode'
+ 'rt2870usb-fw'
+ 'rt2x00-rt61-fw'
+ 'rt2x00-rt71w-fw'
+ 'amd-ucode')
+
cd "${srcdir}/${pkgname}"
make DESTDIR="${pkgdir}" FIRMWAREDIR=/usr/lib/firmware install
@@ -64,4 +72,11 @@
echo 'w /sys/devices/system/cpu/microcode/reload - - - - 1' \
>"${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
}
+
+package_amd-ucode-early() {
+ description='Early microcode update files for AMD CPUs'
+
+ install -D -m0644 amd-ucode.img "${pkgdir}"/boot/amd-ucode.img
+}
+
# vim:set ts=2 sw=2 et:
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];)
putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/arch-releng/attachments/20180823/b0b5c082/attachment-0001.sig>
More information about the arch-releng
mailing list