Index: Makefile.am =================================================================== --- Makefile.am (wersja 11461) +++ Makefile.am (kopia robocza) @@ -11,6 +11,11 @@ crypttab \ sysctl.conf +firmwaredir = /lib/firmware + +firmware_SCRIPTS = \ + firmware-loader.sh + profiledir = @sysconfdir@/profile.d profile_DATA = \ @@ -26,6 +31,7 @@ EXTRA_DIST = \ $(sysconf_DATA) \ $(profile_DATA) \ + $(firmware_SCRIPTS) \ $(sbin_SCRIPTS) \ $(bin_SCRIPTS) Index: firmware-loader.sh =================================================================== --- firmware-loader.sh (wersja 0) +++ firmware-loader.sh (wersja 10422) @@ -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