diff -ruN hotplug-2004_03_29.orig/etc/hotplug/firmware.agent hotplug-2004_03_29/etc/hotplug/firmware.agent --- hotplug-2004_03_29.orig/etc/hotplug/firmware.agent 2004-03-26 23:34:34.000000000 +0100 +++ hotplug-2004_03_29/etc/hotplug/firmware.agent 2004-06-06 17:05:35.000000000 +0200 @@ -19,8 +19,8 @@ . ./hotplug.functions # DEBUG=yes export DEBUG -# directory of the firmware files -FIRMWARE_DIR=/usr/lib/hotplug/firmware +# directories with the firmware files +FIRMWARE_DIRS="/lib/firmware /usr/lib/hotplug/firmware" # mountpoint of sysfs SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts) @@ -40,13 +40,16 @@ sleep 1 fi - if [ -f "$FIRMWARE_DIR/$FIRMWARE" ]; then + for DIR in $FIRMWARE_DIRS; do + [ -e "$DIR/$FIRMWARE" ] || continue echo 1 > $SYSFS/$DEVPATH/loading - cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS/$DEVPATH/data + cat "$DIR/$FIRMWARE" > $SYSFS/$DEVPATH/data echo 0 > $SYSFS/$DEVPATH/loading - else - echo -1 > $SYSFS/$DEVPATH/loading - fi + exit + done + + # the firmware was not found + echo -1 > $SYSFS/$DEVPATH/loading ;;