Могу ли я определить, было ли построено собственное ядро ​​с поддержкой модулей?

Мне предоставили поставщика минимальную установку Linux. Из ответа на предыдущий вопрос я обнаружил, что можно построить ядро ​​с поддержкой модуля или без него. У меня есть устройство CANBUS, которое мне нужно подключить, которое поставляется с драйверами в виде файлов .ko. Я хотел бы иметь возможность установить их с предоставленными сценариями установки, но сначала мне нужно знать, было ли мое ядро ​​построено с поддержкой модуля – возможно ли это обнаружить это из командной строки?

Когда я запускаю lsmod он ничего не возвращает, поэтому я знаю, что в данный момент там нет файлов .ko, но разве это означает, что ядро ​​не позволит мне установить файл .ko?

  • В новой сенсорной панели Elantech отсутствует мультитач (последнее ядро)
  • патчи ядра - зная, когда их делать
  • Выполните проверку модуля aes-ni и aes в ядре linux
  • Зачем изменять ядро ​​Linux вместо создания модуля ядра?
  • Процесс в режиме пользователя переключается в режим ядра. Тогда у процесса будут права root?
  • Как отлаживать зависание системы?
  • Исполнение версии модуля ядра
  • Кнопка мыши перестает работать с перерывами
  • 2 Solutions collect form web for “Могу ли я определить, было ли построено собственное ядро ​​с поддержкой модулей?”

    Если у вас есть файловая система /proc , файлы /proc/modules существуют тогда и только тогда, когда ядро, если оно скомпилировано с поддержкой модуля. Если файл существует, но он пуст, ваше ядро ​​поддерживает модули, но в настоящий момент они не загружаются. Если файл не существует, ваше ядро ​​не может загрузить какой-либо модуль.

    Технически возможно иметь загружаемую поддержку модуля без /proc . Вы можете проверить наличие системных вызовов init_module и delete_module в двоичном коде ядра. Это может быть непросто, если у вас есть только сжатый двоичный файл (например, vmlinuz или uImage ). См. Раздел Как распаковать vmlinuz в vmlinux? для vmlinuz . После того, как вам удалось распаковать основную часть ядра, sys_init_module поиск строки sys_init_module .

    Обратите внимание: если модули поддерживаются, вам понадобятся дополнительные файлы для компиляции ваших собственных модулей: заголовки ядра . Это файлы заголовков C ( *.h ), некоторые из которых генерируются при компиляции ядра (поэтому вы не можете просто взять их из источника ядра). См. Что содержит исходное дерево ядра? Связано ли это с заголовками ядра Linux?

    Большинство дистрибутивов где-то хранят текстовый файл с конфигурацией ядра. В системе Debian вы найдете его в /boot/config-<kernel_version> .

    Затем вы можете просто запустить grep в этом файле:

     grep CONFIG_MODULES /boot/config-<kernel_version> 
    Linux и Unix - лучшая ОС в мире.