
Я работаю над ядром 2.6.37, я сделал несколько загружаемых модулей вместо статических для оптимизации ядра,
Моя задача — загрузить какой-то модуль после запуска приложения, что я успешно и делаю,
В любой встроенной системе при инициализации системы скрипт modpobe модули из указанного файла, такого как etc/modules. Поэтому я удалил имя модуля, чтобы он не загружался при инициализации файловой системы, а загружался после запуска приложения. Скорее всего, приоритет уровня выполнения был изменен с 35 на 99.
Теперь мой модуль ядра Wi-Fi загружается за 1-2 секунды, поэтому я попытался удалить имя модуля Wi-Fi и его зависимости, но модули Wi-Fi загружаются при инициализации файловой системы. При проверке скрипта rcS скрипт udev запускает триггер udevadm, который загружает модуль, хотя это должен делать modprobe.
/sbin/udevadm trigger --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
может ли кто-нибудь подсказать, как избежать загрузки модуля Wi-Fi?
решение1
Это не идеальный ответ на мой вопрос, но скорее обходной путь,
Я создал черный список модулей [он остановит автозагрузку при инициализации файловой системы] и modprobe после запуска моего приложения.
кошка /etc/modprobe.d/blacklist.conf
#внести в черный список те модули, автозагрузка которых должна быть прекращена
черный список wl18xx
если у кого-то есть лучший ответ, пожалуйста, поделитесь.
спасибо и привет, GBiradar