diff options
-rw-r--r-- | images/Makefile | 2 | ||||
-rw-r--r-- | images/NEWS | 3 | ||||
-rwxr-xr-x | images/make_boot_img | 5 | ||||
-rwxr-xr-x | images/update_kernel | 1 | ||||
-rw-r--r-- | kernel/modules.pl | 11 |
5 files changed, 17 insertions, 5 deletions
diff --git a/images/Makefile b/images/Makefile index 7415cc690..987005132 100644 --- a/images/Makefile +++ b/images/Makefile @@ -1,6 +1,6 @@ include ../Makefile.config -VERSION=1.41 +VERSION=1.42 PRODUCT=drakx-installer-images KERNELS=$(shell rpm -qf /lib/modules/2.*) diff --git a/images/NEWS b/images/NEWS index 587a41dd7..50bead4f3 100644 --- a/images/NEWS +++ b/images/NEWS @@ -1,7 +1,10 @@ +Version 1.42 - 9 September 2009, by Pascal Terjan + - include squashfs-lzma and sqlzma kernel modules in all.rdz - add /dev/ptmx (for screen to work) - drop duplicated code including busybox, ka version is better than the one of DEBUGSTAGE1 +- embed all firmwares that are needed by the modules we embed Version 1.40 - 14 April 2009, by Pascal Terjan diff --git a/images/make_boot_img b/images/make_boot_img index fab6183f7..2d077d4b2 100755 --- a/images/make_boot_img +++ b/images/make_boot_img @@ -157,10 +157,7 @@ sub initrd { foreach ("/usr/share/ldetect-lst/fallback-modules.alias", "/lib/module-init-tools/ldetect-lst-modules.alias") { _ "install -D $_ $tmp_initrd$_"; } - # FIXME: we could just look at all network modules, run modinfo and them and look for the firmware field: - # (we may also want to add firmware for SCSI and the like if any): - foreach (grep { warn "> $_\n"; m!(3com|acenic|adaptec|cxgb3|e100|kaweth|tehuti|tigon)! } glob_("/lib/firmware/*")) { - warn ">> $_\n"; + foreach (glob_("all.kernels$I/firmware/*")) { _ "cp -a $_ $tmp_initrd$_"; }; diff --git a/images/update_kernel b/images/update_kernel index 3488acd06..37084b39f 100755 --- a/images/update_kernel +++ b/images/update_kernel @@ -73,6 +73,7 @@ sub extract_installed_rpm { } sys('perl', '../kernel/modules.pl', 'remove_unneeded_modules', $kern_ver); + sys('perl', '../kernel/modules.pl', 'get_firmwares', $kern_ver); sys('perl', '../kernel/modules.pl', 'make_modules_per_image', $kern_ver); rm_rf("$local_dir/modules"); diff --git a/kernel/modules.pl b/kernel/modules.pl index 6fd0fd07d..a47b272f9 100644 --- a/kernel/modules.pl +++ b/kernel/modules.pl @@ -41,6 +41,17 @@ sub modules() { @nls_modules, map { category2modules($_) } split(' ', $images_cat); } +sub get_firmwares() { + my ($kern_ver) = @_; + + foreach (all("all.kernels/$kern_ver/modules")) { + foreach(`/sbin/modinfo -Ffirmware "all.kernels/$kern_ver/modules/$_"`) { + mkdir_p(dirname("all.kernels/$kern_ver/firmware/$_")); + eval { cp_af("/lib/firmware/$_", "all.kernels/$kern_ver/firmware/$_"); }; + } + } +} + sub remove_unneeded_modules { my ($kern_ver) = @_; |