Упростите: grep
завершает ненулевое значение, если ничего не находит (или вы можете проверить, TODOS
содержит что-либо в оболочке с помощью теста -n "$ TODOS"
).
#!/bin/sh
TODOS=$(grep -R 'TODO:' ./src)
if [ $? -eq 0 ]; then
echo not ok
echo $TODOS
else
echo ok
fi
Я прочитал исходники ядра, особенно drivers/base/firmware_class.c
, и обнаружил, что
CONFIG_FW_LOADER_USER_HELPER
активирует вариант загрузки прошивки udev
(очевидно, только для загружаемых модулей, когда работает udev). Но, как упоминалось на LKML, это, похоже, устаревший метод.
Более того, прошивка, необходимая встроенным модулям, загружается из initramfs
посредством fw_get_filesystem_firmware()
через kernel_read()
, если быть точным.
Можно встроить образы встроенного ПО в само ядро, используя параметры конфигурации ядра CONFIG_FIRMWARE_IN_KERNEL
, CONFIG_EXTRA_FIRMWARE_DIR
и CONFIG_EXTRA_FIRMWARE
. Это может быть полезно в тех случаях, когда вы не можете или не хотите предоставлять прошивку из пользовательского пространства во время выполнения (например, когда рассматриваемая прошивка требуется для доступа к загрузочному устройству, и вы не хотите использовать initrd).
Вот более подробное объяснение доступных опций загрузки прошивки: https://wiki.tizen.org/wiki/Usage_and_Mechanism_of_kernel_function_%22request_firmware()%22#Load_firmware_from_kernel_image