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

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

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

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> 
  • Как я могу понять, что потребляет память?
  • Определить, какой драйвер загружен для подключенного чипа UART?
  • Что такое высокая память и низкая память в Linux?
  • Как прерывание клавиатуры заканчивается как сигнал процесса
  • Выключена на 1 год в GNU?
  • Ошибка загрузки ядра 4.5.0-rc1 на зашифрованном жестком диске
  • Что такое linux долгосрочные ядра поддержки?
  • Когда следует сохранять отладочные символы в модулях ядра?
  • Как установить веб-камеру на Debian?
  • Как я могу установить perf 3.4.25?
  • ACPI (расширенная конфигурация и конфигурация питания) отсутствует в 2.6.38.8?
  • Interesting Posts

    Использует ли QEMU / KVM инструкции Intel AES для зашифрованных изображений qcow2, если у них есть хост-процессор?

    скрипт init.d не запускается при загрузке

    Webdav не будет подключаться: 405 Метод не разрешен

    как установить параметр подсистемы sftp -s в файле конфигурации

    Использует ли ksh88 число как десятичное с использованием синтаксиса 10 # n?

    Есть ли способ вернуться несколько раз в bash?

    ` <defunct>` с несуществующими детьми -> Любой способ их сбора?

    Присоедините два файла с соответствующими столбцами

    Как определить новый размер для resize2fs?

    Сервер Linux Cpu, память, своп, значение очереди запуска для отображения в процентах

    Является ли символическая / софт-ссылка похожей на ярлык / псевдоним на рабочем столе?

    Удаленный запуск Magic Sys Rq

    Невозможно скомпилировать ядро ​​Linux для платы ARM

    Управление привилегией пользователя времени ColdFusion на CentOS cPanel

    Ошибочно думать, что правило преуспело из-за 0-размерного файла, сгенерированного перенаправлением вывода

    Linux и Unix - лучшая ОС в мире.