-
Ungzip bootnet.img.gz with:
gunzip bootnet.img.gz
-
Mount the Image as a loop filesystem on /mnt/bootimage:
unpack_bootimage.sh bootnet.img
-
Unpack and mount the inital ramdisk with the following script, give the initrd-file under /mnt/bootimage/ as argument. The inital ramdisk will be mounted under /mnt/initrd:
unpack_initrd.sh initrd.img
-
Unpack the modules with the following script:
unpack_modules.sh /mnt/initrd/modules/modules.cgz
-
Now copy the new driver module(s) to /var/tmp/modules/<kernel-version> directory
-
Change /mnt/initrd/modules/pcitable and add a new line with the vendor ID, product ID, driver name and description to the file (see example below):
0x8086 0x1010 "e1000" "Intel Corporation|PRO/1000"
-
Change the file /mnt/initrd/modules/module-info and add a line for each the driver name, type and description (see the following example):
e1000
eth
"Intel EtherExpress Pro 1000"
-
Add a line for the new driver to the file /mnt/initrd/modules/modules.dep if the new driver module is dependent on othe kernel modules. Mostly not necessary for ethernet adapters.
-
Re-pack the modules to the archive, kernel-version-directory under /var/tmp/modules as 1st argument, cpio archive file as 2nd argument:
pack_modules.sh 2.4.20-18.7BOOT /mnt/initrd/modules/modules.cgz
-
"exit" from the initrd-mount, if you are there, /mnt/initrd or subdirectories of it musn't be your current dir!
-
If you also need to update the boot-kernel (when used some modules not for acutal kernel version), copy the new vmlinuz kernel image to /mnt/bootimage
-
Unmount and pack the initial ramdisk, give the initrd-file under /mnt/bootimage to be updated as argument:
pack_initrd.sh initrd.img
-
Now unmount the bootimage and write it to a boot floppy with this script:
pack_bootimage.sh bootnet.img