summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-05-18 00:35:02 +0000
committernico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-05-18 00:35:02 +0000
commitfaa5f28154c166f7b900d6ace32382a4c5851667 (patch)
tree837acf653946ac143efd412dc823b58f9a4f2123
parent151ad3e39835a2a6cca78f3181d23fe2226be60e (diff)
load kernel modules in kmod- packages from postinst scripts at install.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@3793 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rwxr-xr-xopenwrt/package/base-files/default/etc/functions.sh4
-rwxr-xr-xopenwrt/package/base-files/default/etc/init.d/S10boot3
-rw-r--r--openwrt/target/linux/rules.mk5
3 files changed, 11 insertions, 1 deletions
diff --git a/openwrt/package/base-files/default/etc/functions.sh b/openwrt/package/base-files/default/etc/functions.sh
index 858dc286a..d54a34631 100755
--- a/openwrt/package/base-files/default/etc/functions.sh
+++ b/openwrt/package/base-files/default/etc/functions.sh
@@ -61,3 +61,7 @@ config_get() {
config_set() {
export CONFIG_${1}_${2}="${3}"
}
+
+load_modules() {
+ sed 's/^[^#]/insmod &/' $* | ash 2>&- || :
+}
diff --git a/openwrt/package/base-files/default/etc/init.d/S10boot b/openwrt/package/base-files/default/etc/init.d/S10boot
index 0cc519d8e..42bb43886 100755
--- a/openwrt/package/base-files/default/etc/init.d/S10boot
+++ b/openwrt/package/base-files/default/etc/init.d/S10boot
@@ -1,4 +1,5 @@
#!/bin/sh
+. /etc/functions.sh
[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
@@ -16,7 +17,7 @@ for iface in $(/sbin/ifconfig -a | awk '{print $1}' | grep eth); do
/usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug net
done
-sed 's/^[^#]/insmod &/' /etc/modules /etc/modules.d/* 2>&-|ash
+load_modules /etc/modules /etc/modules.d/*
ifconfig lo 127.0.0.1 up
ifconfig eth0 promisc
diff --git a/openwrt/target/linux/rules.mk b/openwrt/target/linux/rules.mk
index 3358f1fd9..ae557f26b 100644
--- a/openwrt/target/linux/rules.mk
+++ b/openwrt/target/linux/rules.mk
@@ -76,6 +76,11 @@ ifneq ($(6),)
for module in $(7); do \
echo $$$$module >> $$(I_$(1))/etc/modules.d/$(6)-$(2); \
done
+ echo "#!/bin/sh" >> $$(I_$(1))/CONTROL/postinst
+ echo "[ -z \"\$$$$IPKG_INSTROOT\" ] || exit" >> $$(I_$(1))/CONTROL/postinst
+ echo ". /etc/functions.sh" >> $$(I_$(1))/CONTROL/postinst
+ echo "load_modules /etc/modules.d/$(6)-$(2)" >> $$(I_$(1))/CONTROL/postinst
+ chmod 0755 $$(I_$(1))/CONTROL/postinst
endif
$(8)
$(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR) $(MAKE_TRACE)