![Как работать с модулями с закрытым исходным кодом при настройке новой сборки ядра](https://rvso.com/image/23915/%D0%9A%D0%B0%D0%BA%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%82%D1%8C%20%D1%81%20%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D0%BC%D0%B8%20%D1%81%20%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%BC%20%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%BC%20%D0%BA%D0%BE%D0%B4%D0%BE%D0%BC%20%D0%BF%D1%80%D0%B8%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9%20%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8%20%D1%8F%D0%B4%D1%80%D0%B0.png)
Я нашел эту команду очень полезной:
make localmodconfig
Однако наличие некоторых драйверов/модулей с закрытым исходным кодом является проблемой, поскольку эта команда не может найти подходящий метод для включения параметров конфигурации, связанных с моим программным обеспечением с закрытым исходным кодом.
У меня такой вопрос: например, если у меня fglrx
установлен модуль, как мне настроить сборку ядра?
решение1
Драйверы с закрытыми исходными кодами не являются частью дистрибутива исходного кода ядра Linux и, как таковые, не могут быть случайно собраны с использованием makefile ядра Linux.
Обычно они поставляются производителем отдельно в виде пакета файлов, включая необходимые скрипты для запуска в соответствии с предоставленными инструкциями для правильной установки драйвера в системе.
В частном случае (теперь устаревшего)фирменный драйвер fglrx, необходимые файлы будут упакованы в .rpm и предоставят:
Файл readme или набор страниц документации,
совместимый с DRI модуль драйвера для поддержки 2D,
совместимый с DRI модуль драйвера для поддержки OpenGL,
модуль ядра (предварительно скомпилированные двоичные файлы плюс исходный код/библиотека для самостоятельной сборки)
и прочие другие утилиты
В качестве альтернативы и в зависимости от вашего дистрибутива Linux и того, насколько широко распространено используемое оборудование, соответствующий репозиторий может предлагать некий специальный пакет, который может установить фирменный драйвер, прибегнув к инструкциям специального менеджера пакетов, например, относительно драйвера fglrx в те времена, когда он не был объявлен устаревшим:
emerge media-video/ati-drivers # gentoo portage way
apt-get install fglrx-driver # debian way
Это, кстати, предпочтительный метод, поскольку он обеспечивает идеальную интеграцию с уже установленным программным обеспечением, в конечном итоге предлагает обновления зависимостей (зависимостей) и позволяет менеджеру пакетов в конечном итоге предлагать обновления драйверов, если они доступны.
Некоторые параметры ядра CONFIG_* могут потребовать корректировки для корректной работы проприетарного драйвера. Это особенно актуально, когда альтернативы проприетарному драйверу с открытым исходным кодом компилируются в ядре, что приводит к конфликтным ситуациям.
Как это могло бы произойти с драйвером fglrx, еслиCONFIG_DRM_RADEON=[y]
Все лучшие дистрибутивы будут документировать эти требования в деталях. Конечно, если в этот момент потребуются какие-либо изменения, ядро придется пересобрать.