diff -Naur genkernel-4.orig/gmi/generic/initrd.cmdline genkernel-4/gmi/generic/initrd.cmdline --- genkernel-4.orig/gmi/generic/initrd.cmdline 2006-06-12 21:41:52.000000000 +0200 +++ genkernel-4/gmi/generic/initrd.cmdline 2006-06-12 22:07:53.000000000 +0200 @@ -141,7 +141,11 @@ fi unset CMD_UNIONFS fi - ;; + ;; + # Allow user to specify the modules location + modules\=*) + MODULESD=${x#modules=} + ;; esac done } diff -Naur genkernel-4.orig/gmi/generic/initrd.defaults genkernel-4/gmi/generic/initrd.defaults --- genkernel-4.orig/gmi/generic/initrd.defaults 2006-06-12 21:41:52.000000000 +0200 +++ genkernel-4/gmi/generic/initrd.defaults 2006-06-12 22:10:04.000000000 +0200 @@ -28,6 +28,8 @@ # Dirs needed for some multi-mount fsloaders # but are not unionized in the new root fs MNTOTHER="${GMIMNT}/other" +# Default dir to load the .mo from +MODULESD="mnt/cdrom" INIT="/sbin/init" diff -Naur genkernel-4.orig/gmi/generic/initrd.unionfs genkernel-4/gmi/generic/initrd.unionfs --- genkernel-4.orig/gmi/generic/initrd.unionfs 2006-06-12 21:41:52.000000000 +0200 +++ genkernel-4/gmi/generic/initrd.unionfs 2006-06-12 21:55:38.000000000 +0200 @@ -60,3 +60,14 @@ } +# Insert all modules found in $1, usually mnt/cdrom +# added to allow users to add their own apps. +union_insert_modules() { + for module in `ls ${NEW_ROOT}/$1/modules/*.mo` + do + mkdir -p ${MEMORY}/modules/`basename ${module} .mo` + mount -o loop,ro ${module} ${MEMORY}/modules/`basename ${module} .mo` + union_insert_dir $UNION ${MEMORY}/modules/`basename ${module} .mo` + done +} + diff -Naur genkernel-4.orig/gmi/generic/linuxrc genkernel-4/gmi/generic/linuxrc --- genkernel-4.orig/gmi/generic/linuxrc 2006-06-12 21:41:52.000000000 +0200 +++ genkernel-4/gmi/generic/linuxrc 2006-06-12 22:02:19.000000000 +0200 @@ -552,6 +552,15 @@ # Make sure fstab notes livecd is mounted ro. Makes system skip remount which fails on unionfs dirs. sed -e 's|\(.*\s/\s*tmpfs\s*\)defaults\(.*\)|\1defaults,ro\2|' /${UNION}/etc/fstab > /${UNION}/etc/fstab.new mv /${UNION}/etc/fstab.new /${UNION}/etc/fstab + warn_msg "Adding all modules in $MODULESD/modules/" + if [ "${MODULESD}" = "mnt/cdrom" ] + then + union_insert_modules mnt/cdrom + else + mkdir /newroot/mnt/modulesd + mount "${MODULESD}" /newroot/mnt/modulesd + union_insert_modules mnt/modulesd + fi fi # Unpacking additional packages from NFS mount