26

Хотя я могу использовать lsmod для отображения активных в данный момент модулей ядра, как я могу узнать, какие драйверы статически встроены в ядро И в настоящее время активны?

3 ответа3

27

Вы можете сделать cat /lib/modules/$(uname -r)/modules.builtin

Из документа ядра

modules.builtin

В этом файле перечислены все модули, встроенные в ядро. Это используется modprobe, чтобы не дать сбой при попытке загрузить что-то встроенное.

7

Если у вашего linux есть /proc/config.gz

Это имеет все встроенные модули. Скопируйте его в другое место и разархивируйте. Откройте файл, все с «= M» построен как модуль. Все с "= Y" статически построено.

hwinfo выведет список «Driver:», проверьте указанный выше файл, чтобы убедиться, что он статически собран.

К вашему сведению: все статически построенные драйверы всегда загружаются в память и готовы к действию. Без соответствующего оборудования они ничего не будут делать, а будут использовать память.

0
ls /sys/module

Кажется, содержит все встроенные и внешние модули.

Но он также содержит некоторые записи, которые на самом деле не являются модулями: https://unix.stackexchange.com/questions/225706/are-modules-listed-under-sys-module-all-the-loaded-modules

ТОДО: прочитайте исходный код и более точно поймите, что там находится.

Преимущество этого метода заключается в том, что вы не полагаетесь на возможность найти конфигурацию ядра в /boot или /proc/config.gz .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .