1#!/bin/sh -e 2 3FIRMWARE_DIRS="/lib/firmware /usr/local/lib/firmware" 4 5err() { 6 echo "$@" >&2 7 if [ -x /bin/logger ]; then 8 /bin/logger -t "${0##*/}[$$]" "$@" 9 fi 10} 11 12if [ ! -e /sys$DEVPATH/loading ]; then 13 err "udev firmware loader misses sysfs directory" 14 exit 1 15fi 16 17for DIR in $FIRMWARE_DIRS; do 18 [ -e "$DIR/$FIRMWARE" ] || continue 19 echo 1 > /sys$DEVPATH/loading 20 cat "$DIR/$FIRMWARE" > /sys$DEVPATH/data 21 echo 0 > /sys$DEVPATH/loading 22 exit 0 23done 24 25echo -1 > /sys$DEVPATH/loading 26err "Cannot find firmware file '$FIRMWARE'" 27exit 1 28