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
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to