LINUX.ORG.RU

История изменений

Исправление Zubok, (текущая версия) :

Да, он по ходу дела сначала ищет просто файлы *.fw. Если не находит, то ищет deb (это по коду выше видно - он сначала $files смотрит и только потом уже deb). А вот список файлов *.fw в files он собирает из dmesg, что видно по коду ниже.

files=""

        # The linux kernel and udev no longer let us know via
        # /dev/.udev/firmware-missing and /run/udev/firmware-missing
        # which firmware files the kernel drivers look for.  Check
        # dmesg instead.  See also bug #725714.
        fwlist=/tmp/check-missing-firmware-dmesg.list
        dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\2 \3/p' > $fwlist
        while read module fwfile ; do
            log "looking for firmware file $fwfile requested by $module"
            if [ ! -e /lib/firmware/$fwfile ] ; then
                if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
                    log "listed in $DENIED"
                    continue
                fi
                files="${files:+$files }$fwfile"
                modules="$module${modules:+ $modules}"
            fi
        done < $fwlist

Исправление Zubok, :

Да, он по ходу дела сначала ищет просто файлы *.fw. Если не находит, то ищет deb (это по коду выше видно - он сначала $files смотрит и только потом уже deb). А вот список файлов fw он собирает из dmesg, что видно по коду ниже.

files=""

        # The linux kernel and udev no longer let us know via
        # /dev/.udev/firmware-missing and /run/udev/firmware-missing
        # which firmware files the kernel drivers look for.  Check
        # dmesg instead.  See also bug #725714.
        fwlist=/tmp/check-missing-firmware-dmesg.list
        dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\2 \3/p' > $fwlist
        while read module fwfile ; do
            log "looking for firmware file $fwfile requested by $module"
            if [ ! -e /lib/firmware/$fwfile ] ; then
                if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
                    log "listed in $DENIED"
                    continue
                fi
                files="${files:+$files }$fwfile"
                modules="$module${modules:+ $modules}"
            fi
        done < $fwlist

Исправление Zubok, :

Да, он по ходу дела сначала ищет просто файлы *.fw. Если не находит, то ищет deb (это по коду выше видно - он сначала $files смотрит и только птом уже deb). А вот список файлов fw он собирает из dmesg, что видно по коду ниже.

files=""

        # The linux kernel and udev no longer let us know via
        # /dev/.udev/firmware-missing and /run/udev/firmware-missing
        # which firmware files the kernel drivers look for.  Check
        # dmesg instead.  See also bug #725714.
        fwlist=/tmp/check-missing-firmware-dmesg.list
        dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\2 \3/p' > $fwlist
        while read module fwfile ; do
            log "looking for firmware file $fwfile requested by $module"
            if [ ! -e /lib/firmware/$fwfile ] ; then
                if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
                    log "listed in $DENIED"
                    continue
                fi
                files="${files:+$files }$fwfile"
                modules="$module${modules:+ $modules}"
            fi
        done < $fwlist

Исправление Zubok, :

Да, он по ходу дела сначала ищет просто файлы *.fw. Если не находит, то ищет deb (это по коду выше видно). А вот список файлов fw он собирает из dmesg, что видно по коду ниже.

files=""

        # The linux kernel and udev no longer let us know via
        # /dev/.udev/firmware-missing and /run/udev/firmware-missing
        # which firmware files the kernel drivers look for.  Check
        # dmesg instead.  See also bug #725714.
        fwlist=/tmp/check-missing-firmware-dmesg.list
        dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\2 \3/p' > $fwlist
        while read module fwfile ; do
            log "looking for firmware file $fwfile requested by $module"
            if [ ! -e /lib/firmware/$fwfile ] ; then
                if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
                    log "listed in $DENIED"
                    continue
                fi
                files="${files:+$files }$fwfile"
                modules="$module${modules:+ $modules}"
            fi
        done < $fwlist

Исправление Zubok, :

Да, он по ходу дела сначала ищет просто файлы fw. Если не находит, то ищет deb (это по коду выше видно). А вот список файлов fw он собирает из dmesg, что видно по коду ниже.

files=""

        # The linux kernel and udev no longer let us know via
        # /dev/.udev/firmware-missing and /run/udev/firmware-missing
        # which firmware files the kernel drivers look for.  Check
        # dmesg instead.  See also bug #725714.
        fwlist=/tmp/check-missing-firmware-dmesg.list
        dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\2 \3/p' > $fwlist
        while read module fwfile ; do
            log "looking for firmware file $fwfile requested by $module"
            if [ ! -e /lib/firmware/$fwfile ] ; then
                if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
                    log "listed in $DENIED"
                    continue
                fi
                files="${files:+$files }$fwfile"
                modules="$module${modules:+ $modules}"
            fi
        done < $fwlist

Исходная версия Zubok, :

Да, он по ходу дела сначала ищет просто файлы fw/ Если не находит, то ищет deb (это по коду выше видно). А вот список файлов fw он собирает из dmesg, что видно по коду ниже.

files=""

        # The linux kernel and udev no longer let us know via
        # /dev/.udev/firmware-missing and /run/udev/firmware-missing
        # which firmware files the kernel drivers look for.  Check
        # dmesg instead.  See also bug #725714.
        fwlist=/tmp/check-missing-firmware-dmesg.list
        dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\2 \3/p' > $fwlist
        while read module fwfile ; do
            log "looking for firmware file $fwfile requested by $module"
            if [ ! -e /lib/firmware/$fwfile ] ; then
                if grep -q "^$fwfile$" $DENIED 2>/dev/null; then
                    log "listed in $DENIED"
                    continue
                fi
                files="${files:+$files }$fwfile"
                modules="$module${modules:+ $modules}"
            fi
        done < $fwlist