base/block-extroot, base/block-mount: Modified preinit and block-extroot and block-mount so that use of block-mount and block-extroot do not require that block-extroot, block-mount, nor the kernel modules they depend, on are required to included in the image. That is block-extroot and dependencies may now be installed as modules onto the jffs2 part of a squashfs system and it will work. In addition packages which are installed into the jffs2 of a squashfs system may now affect preinit, so long as they do not require execution of commands that occur before the merging of the jffs2 and built-in (squashfs) preinit scripts is done.

Thanks jow for the preinit merge stuff!

SVN-Revision: 23110
This commit is contained in:
Daniel Dickinson
2010-09-23 13:58:05 +00:00
parent 19723d09c2
commit 18b473ca9b
7 changed files with 96 additions and 39 deletions

View File

@@ -5,9 +5,8 @@
determine_external_root() {
. /etc/functions.sh
. /lib/functions/extmount.sh
. /lib/functions/mount.sh
pi_include /lib/functions/extmount.sh
pi_include /lib/functions/mount.sh
local OLD_UCI_CONFIG_DIR="$UCI_CONFIG_DIR"
set_jffs_mp

View File

@@ -13,12 +13,14 @@ set_jffs_mp() {
}
er_load_modules() {
[ -d $ER_ROOT/etc/modules.d ] && {
cd $ER_ROOT/etc/modules.d && {
local modules="$(grep -l '# May be required for rootfs' *)"
cat $modules | sed 's/^\([^#]\)/insmod \1/' | sh 2>&- || :
}
mkdir -p /tmp/extroot_modules/modules.d
mkdir -p /tmp/extroot_modules/modules
ln -sf /etc/modules.d/* /tmp/overlay/etc/modules.d/* /tmp/extroot_modules/modules.d
ln -sf /lib/modules/*/* /tmp/overlay/lib/modules/*/* /tmp/extroot_modules/modules
local modules="$(grep -l '# May be required for rootfs' /tmp/extroot_modules/modules.d/*)"
cd /tmp/extroot_modules/modules && {
cat $modules | sed -e 's/^\([^#].*\)/insmod \.\/\1.ko/'| sh 2>&- || :
}
rm -rf /tmp/extroot_modules
}