=================================================================== RCS file: /cvs/openbsd/fw_update/fw_install.sh,v retrieving revision 1.123 retrieving revision 1.124 diff -u -r1.123 -r1.124 --- openbsd/fw_update/fw_install.sh 2021/12/24 17:57:54 1.123 +++ openbsd/fw_update/fw_install.sh 2021/12/24 18:19:00 1.124 @@ -1,5 +1,5 @@ #!/bin/ksh -# $OpenBSD: fw_install.sh,v 1.123 2021/12/24 17:57:54 afresh1 Exp $ +# $OpenBSD: fw_install.sh,v 1.124 2021/12/24 18:19:00 afresh1 Exp $ # # Copyright (c) 2021 Andrew Hewus Fresh # @@ -117,7 +117,7 @@ fi } -devices_needing_firmware() { +firmware_in_dmesg() { local _d _m _line _dmesgtail _last='' _nl=$( echo ) # When we're not in the installer, the dmesg.boot can @@ -168,6 +168,24 @@ done } +detect_firmware() { + local _devices _last='' _d + + set -sA _devices -- $( + firmware_in_dmesg + for _d in $( installed_firmware '*' '-firmware-' '*' ); do + echo "$( firmware_devicename "$_d" )" + done + ) + + [ "${_devices[*]:-}" ] || return 0 + for _d in "${_devices[@]}"; do + [[ $_last = $_d ]] && continue + echo $_d + _last="$_d" + done +} + add_firmware () { local _f="${1##*/}" _pkgname local _tmpdir="$( tmpdir "${DESTDIR}/var/db/pkg/.firmware" )" @@ -340,7 +358,7 @@ "$ALL" && usage 22 else "$VERBOSE" && echo -n "Detecting firmware ..." - set -sA devices -- $( devices_needing_firmware ) + set -sA devices -- $( detect_firmware ) "$VERBOSE" && { [ "${devices[*]:-}" ] && echo " found." || echo " done." ; } fi