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

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

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

  • Автоматическое обновление системы Debian
  • Ядерная паника после создания ядра в Red Hat Linux?
  • Проблема подключения с внешним хранилищем usb3 в Linux (проблема драйвера UAS)
  • Узнайте, какие исходные файлы ядра были использованы при компиляции ядра
  • Что означает «предупреждение: переопределение: VZ_FAIRSCHED изменяется состояние выбора» означает?
  • Конфигурация ядра для материнской платы ASUS P8Z77-V
  • Fedora 26 на USB-накопителе обновил ядро ​​4.11.8 до 4.11.9 больше не загружается
  • Несоответствие модуля ядра 4.9
  • 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 - лучшая ОС в мире.