Хотя я могу использовать lsmod
для отображения активных в данный момент модулей ядра, как я могу узнать, какие драйверы статически встроены в ядро И в настоящее время активны?
3 ответа
Вы можете сделать cat /lib/modules/$(uname -r)/modules.builtin
Из документа ядра
modules.builtin
В этом файле перечислены все модули, встроенные в ядро. Это используется modprobe, чтобы не дать сбой при попытке загрузить что-то встроенное.
Если у вашего linux есть /proc/config.gz
Это имеет все встроенные модули. Скопируйте его в другое место и разархивируйте. Откройте файл, все с «= M» построен как модуль. Все с "= Y" статически построено.
hwinfo выведет список «Driver:», проверьте указанный выше файл, чтобы убедиться, что он статически собран.
К вашему сведению: все статически построенные драйверы всегда загружаются в память и готовы к действию. Без соответствующего оборудования они ничего не будут делать, а будут использовать память.
ls /sys/module
Кажется, содержит все встроенные и внешние модули.
Но он также содержит некоторые записи, которые на самом деле не являются модулями: https://unix.stackexchange.com/questions/225706/are-modules-listed-under-sys-module-all-the-loaded-modules
ТОДО: прочитайте исходный код и более точно поймите, что там находится.
Преимущество этого метода заключается в том, что вы не полагаетесь на возможность найти конфигурацию ядра в /boot
или /proc/config.gz
.