version 1.82, 2021/12/12 20:24:53 |
version 1.84, 2021/12/18 20:40:36 |
|
|
} |
} |
|
|
devices_needing_firmware() { |
devices_needing_firmware() { |
local _d _m _grep _dmesgtail _last='' |
local _d _m _line _dmesgtail _last='' |
|
|
# When we're not in the installer, the dmesg.boot can |
# When we're not in the installer, the dmesg.boot can |
# contain multiple boots, so only look in the last one |
# contain multiple boots, so only look in the last one |
_dmesgtail=$( sed -n 'H;/^OpenBSD/h;${g;p;}' /var/run/dmesg.boot ) |
sed -n 'H;/^OpenBSD/h;${g;p;}' /var/run/dmesg.boot | |
|
grep -e "^[a-z][a-z]*[0-9]" -e " not configured " | { \ |
|
_m=0 |
|
set -A _dmesgtail |
|
while read -r _line; do |
|
_dmesgtail[$_m]="$_line" |
|
let _m=$_m+1 |
|
done |
|
|
grep -v '^[[:space:]]*#' "$FWPATTERNS" | |
grep -v '^[[:space:]]*#' "$FWPATTERNS" | |
while read -r _d _m; do |
while read -r _d _m; do |
_grep="grep" |
[ "$_d" = "$_last" ] && continue |
[ "$_last" = "$_d" ] && continue |
[ "$_m" ] || _m="^${_d}[0-9] at " |
[ "$_m" ] || _m="^${_d}[0-9][0-9]* at " |
|
[ "$_m" = "${_m#^}" ] && _grep="fgrep" |
|
|
|
echo "$_dmesgtail" | $_grep -q "$_m" || continue |
if [ "$_m" = "${_m#^}" ]; then |
echo "$_d" |
_m="*$_m" |
_last="$_d" |
else |
done |
_m="${_m#^}" |
|
fi |
|
|
|
for _line in "${_dmesgtail[@]}"; do |
|
if [[ $_line = ${_m}* ]]; then |
|
echo "$_d" |
|
_last="$_d" |
|
fi |
|
done |
|
done |
|
} |
} |
} |
|
|
firmware_filename() { |
firmware_filename() { |