SVN: rc-scripts/trunk: firmware-loader.sh rc.d/rc.sysinit

zbyniu zbyniu at pld-linux.org
Tue Jul 21 20:25:32 CEST 2009


Author: zbyniu
Date: Tue Jul 21 20:25:31 2009
New Revision: 10422

Added:
   rc-scripts/trunk/firmware-loader.sh   (contents, props changed)
Modified:
   rc-scripts/trunk/rc.d/rc.sysinit
Log:
- added firmware-loader.sh for autoload firmware on systems w/o udev


Added: rc-scripts/trunk/firmware-loader.sh
==============================================================================
--- (empty file)
+++ rc-scripts/trunk/firmware-loader.sh	Tue Jul 21 20:25:31 2009
@@ -0,0 +1,26 @@
+#!/bin/sh -e
+
+FIRMWARE_DIRS="/lib/firmware/updates/$(uname -r) /lib/firmware/updates \
+               /lib/firmware/$(uname -r) /lib/firmware"
+
+err() {
+	echo "$@" >&2
+	logger -t "${0##*/}[$$]" "$@" 2>/dev/null || true
+}
+
+if [ ! -e /sys$DEVPATH/loading ]; then
+	err "firmware loader misses sysfs directory"
+	exit 1
+fi
+
+for DIR in $FIRMWARE_DIRS; do
+	[ -e "$DIR/$FIRMWARE" ] || continue
+	echo 1 > /sys$DEVPATH/loading
+	cat "$DIR/$FIRMWARE" > /sys$DEVPATH/data
+	echo 0 > /sys$DEVPATH/loading
+	exit 0
+done
+
+echo -1 > /sys$DEVPATH/loading
+err "Cannot find  firmware file '$FIRMWARE'"
+exit 1

Modified: rc-scripts/trunk/rc.d/rc.sysinit
==============================================================================
--- rc-scripts/trunk/rc.d/rc.sysinit	(original)
+++ rc-scripts/trunk/rc.d/rc.sysinit	Tue Jul 21 20:25:31 2009
@@ -203,7 +203,11 @@
 	fi
 
 	if ! is_no "$START_UDEV"; then
-		[ -x /sbin/start_udev ] && /sbin/start_udev
+		if [ -x /sbin/start_udev ]; then
+			/sbin/start_udev
+		elif [ -x /lib/firmware/firmware-loader.sh ]; then
+			/sbin/sysctl -e -w kernel.hotplug=/lib/firmware/firmware-loader.sh
+		fi
 	fi
 
 	# Unmount the initrd, if necessary


More information about the pld-cvs-commit mailing list