diff options
-rw-r--r-- | mdk-stage1/doc/UPDATEMODULES | 5 | ||||
-rw-r--r-- | perl-install/install_steps.pm | 16 |
2 files changed, 21 insertions, 0 deletions
diff --git a/mdk-stage1/doc/UPDATEMODULES b/mdk-stage1/doc/UPDATEMODULES index 11c3d07ce..ceef21758 100644 --- a/mdk-stage1/doc/UPDATEMODULES +++ b/mdk-stage1/doc/UPDATEMODULES @@ -24,6 +24,9 @@ This disk may also contain some update or new modules for installed kernels. Those modules must be placed in directory <kernel-version>. They must be gzipped if the installed kernel modules are gzipped. +You may need to specify the "category" so that new modules are used correctly. +For example, a scsi module should be put in category disk/scsi so that it is +put in scsi_hostadapter and initrd. Here's a typical scenario: @@ -61,6 +64,8 @@ msdos ppa # ISA network card needing options ne io=0x300 irq=7 +# New module [list_modules: disk/scsi] +a320raid [root@obiwan mnt]# (cd floppy/2.6.8.1-20mdk ; find -type f) ./kernel/fs/msdos/msdos.ko.gz ./kernel/drivers/scsi/ppa.ko.gz diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm index caedbcdf3..333ff3525 100644 --- a/perl-install/install_steps.pm +++ b/perl-install/install_steps.pm @@ -625,6 +625,22 @@ sub updateModulesFromFloppy { run_program::run("cd /floppy/$kernel_version ; find -type f | cpio -pdu $::prefix/lib/modules/$kernel_version"); run_program::rooted($::prefix, 'depmod', '-a', '-F', "/boot/System.map-$kernel_version", $kernel_version); } + + my $category; + foreach (cat_('/floppy/to_load')) { + chomp; + if (/^#/) { + ($category) = $1 if /\[list_modules: (.*?)\]/; + } elsif ($category) { + log::l("adding $_ to $category\n"); + my $r = \%list_modules::l; + $r = $r->{$_} foreach split('/', $category); + push @$r, $_; + + $category = ''; + } + } + fs::umount("/floppy"); } |