Browse Source

modules: fix postinst generation for kernel modules

Fixes ticket #19352.

Signed-off-by: Yousong Zhou <[email protected]>
Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 45367
John Crispin 10 years ago
parent
commit
bbad3f360e
2 changed files with 13 additions and 10 deletions
  1. 6 6
      include/kernel.mk
  2. 7 4
      package/base-files/files/lib/functions.sh

+ 6 - 6
include/kernel.mk

@@ -97,7 +97,7 @@ define ModuleAutoLoad
 				mkdir -p $(2)/etc/modules-boot.d; \
 				ln -s ../modules.d/$(1) $(2)/etc/modules-boot.d/; \
 			fi; \
-			modules="$$$$$$$${modules:+$$$$$$$$modules}"; \
+			modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$mods"; \
 		fi; \
 	}; \
 	add_module() { \
@@ -121,11 +121,11 @@ define ModuleAutoLoad
 	if [ -n "$$$$$$$$modules" ]; then \
 		mkdir -p $(2)/etc/modules.d; \
 		mkdir -p $(2)/CONTROL; \
-		echo "#!/bin/sh" > $(2)/CONTROL/postinst; \
-		echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst; \
-		echo ". /lib/functions.sh" >> $(2)/CONTROL/postinst; \
-		echo "insert_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst; \
-		chmod 0755 $(2)/CONTROL/postinst; \
+		echo "#!/bin/sh" > $(2)/CONTROL/postinst-pkg; \
+		echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst-pkg; \
+		echo ". /lib/functions.sh" >> $(2)/CONTROL/postinst-pkg; \
+		echo "insert_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst-pkg; \
+		chmod 0755 $(2)/CONTROL/postinst-pkg; \
 	fi
 endef
 

+ 7 - 4
package/base-files/files/lib/functions.sh

@@ -154,10 +154,13 @@ config_list_foreach() {
 }
 
 insert_modules() {
-	[ -d /etc/modules.d ] && {
-		cd /etc/modules.d
-		sed 's/^[^#]/insmod &/' $* | ash 2>&- || :
-	}
+	for m in $*; do
+		if [ -f /etc/modules.d/$m ]; then
+			sed 's/^[^#]/insmod &/' /etc/modules.d/$m | ash 2>&- || :
+		else
+			modprobe $m
+		fi
+	done
 }
 
 default_prerm() {