home: hub: mkinitfs

Download patch

ref: 155c5fa5816cc6d942e531d525493318ceae8fd6
parent: 0e2672eebb4efd725f0e906f07b3c1bae81dbde7
author: Timo Teräs <timo.teras@iki.fi>
date: Wed Oct 28 03:50:54 CDT 2015

mkinitfs: detect automatically firmware modules to copy

-rw-r--r--    1 tteras   tteras    13922864 Oct 28 08:38 initramfs-new
-rw-r--r--    1 tteras   tteras    12645566 Oct 28 08:27 initramfs-old

diff on installed modules:

+lib/firmware/matrox/g200_warp.fw
+lib/firmware/matrox/g400_warp.fw
+lib/firmware/cxgb3/t3c_psram-1.1.0.bin
+lib/firmware/cxgb3/ael2020_twx_edc.bin
+lib/firmware/cxgb3/t3fw-7.12.0.bin
+lib/firmware/cxgb3/ael2005_opt_edc.bin
+lib/firmware/cxgb3/t3b_psram-1.1.0.bin
+lib/firmware/cxgb3/ael2005_twx_edc.bin
+lib/firmware/qlogic/12160.bin
+lib/firmware/qlogic/1040.bin
+lib/firmware/qlogic/1280.bin
+lib/firmware/ql2400_fw.bin
+lib/firmware/ql2100_fw.bin
+lib/firmware/ene-ub6250/sd_init1.bin
+lib/firmware/ene-ub6250/ms_init.bin
+lib/firmware/ene-ub6250/ms_rdwr.bin
+lib/firmware/ene-ub6250/msp_rdwr.bin
+lib/firmware/ene-ub6250/sd_init2.bin
+lib/firmware/ene-ub6250/sd_rdwr.bin
+lib/firmware/advansys/38C1600.bin
+lib/firmware/advansys/mcode.bin
+lib/firmware/advansys/38C0800.bin
+lib/firmware/advansys/3550.bin
+lib/firmware/ql2500_fw.bin
+lib/firmware/isci/isci_firmware.bin
+lib/firmware/r128/r128_cce.bin
+lib/firmware/ql2300_fw.bin
+lib/firmware/ql2322_fw.bin
-lib/firmware/radeon/TAHITI_vce.bin
+lib/firmware/ql2200_fw.bin
+lib/firmware/cxgb4
+lib/firmware/cxgb4/t4fw.bin
+lib/firmware/cxgb4/t5fw.bin

--- a/features.d/kms.files
+++ /dev/null
@@ -1,1 +1,0 @@
-lib/firmware/radeon/*.bin
--- a/mkinitfs.in
+++ b/mkinitfs.in
@@ -124,6 +124,15 @@
 	cd "$oldpwd"
 }
 
+initfs_firmware() {
+	rm -rf "$tmpdir"/lib/firmware
+	mkdir -p "$tmpdir"/lib/firmware
+	find "$tmpdir"/lib/modules -type f -name "*.ko" | xargs modinfo -F firmware | sort -u | while read FW; do
+		[ -e "${basedir}/lib/firmware/${FW}" ] && install -pD "${basedir}/lib/firmware/${FW}" "$tmpdir"/lib/firmware/$FW
+	done
+	return 0
+}
+
 initfs_apk_keys() {
 	mkdir -p "$tmpdir"/etc/apk/keys
 	cp "${basedir}etc/apk/keys/"* "$tmpdir"/etc/apk/keys/
@@ -237,6 +246,7 @@
 
 initfs_base \
 	&& initfs_kmods \
+	&& initfs_firmware \
 	&& initfs_apk_keys \
 	&& initfs_cpio
 rc=$?