Сотрудник NVIDIA начал обсуждение вопроса, как компания может улучшить поддержку ядра Linux
Стефан Варрен (Stephen Warren), разработчик ядра Linux из компании NVIDIA, развернул в списке рассылки Kernel Summit дискуссию о том, что компании следует сделать, чтобы улучшить поддержку ядра Linux. Стефан указал на то, что в своем комментарии в Google+ Линус Торвальдс подчеркнул, что вклад NVIDIA в разработку ядра в основном связан с обеспечением поддержки Tegra SoC. В связи с этим, сотрудникам компании интересно в каких ещё областях NVIDIA может участвовать в разработке ядра, за исключением больного вопроса поддержки связанного с графикой оборудования, код для которого компания пока не может открыть.В итоге, вопрос сводится к тому, что если NVIDIA будет помогать в разработке базовых компонентов ядра Linux, то сможет ли такая деятельность повысить имидж компании в сообществе и компенсировать закрытый код драйверов и неразглашение спецификаций, связанных с графическими процессорами. В качестве областей, в которых может помогать NVIDIA, отмечаются любые разработки, связанные с поддержкой архитектуры ARM и развитием интерфейсов для унификации поддержки сложных и модульных встраиваемых систем.
Несколько известных разработчиков ядра уже отреагировали на сообщение Стефана. Ted Ts'o, создавший файловые системы ext2, ext3 и ext4, высказал пожелание по обеспечению возможности работы с проприетарным драйвером NVIDIA в экспериментальных ветках ядра. В настоящее время поддержка новых ядер выходит с некоторой задержкой, что мешает разработчикам ядра, использовать и тестировать драйвер NVIDIA на их системах, если на них используются экспериментальные версии ядра. Для сборки модуля ядра драйвера NVIDIA также используются только стандартные средства дистрибутивов, что вызывает дополнительные проблемы в ситуации использования нестандартных настроек. В связи с этим Ted Ts'o предлагает обеспечить возможность сборки модуля NVIDIA из одной Git-ветки с ядром Linux.
Мэтью Гаррет (Matthew Garrett) посоветовал прекратить развитие отдельного модуля ядра для взаимодействия с проприетарным графическим драйвером, переместив всю специфичную логику, реализованную в виде блоба, на сторону работающего в пространстве пользователя драйвера. На уровне ядра для обеспечения взаимодействия с видеокартой предлагается использовать возможности модуля nouveau.
По крайней мере такой подход поможет избавиться от наличия двух модулей ядра для одних и тех же видеокарт, позволит перейти NVIDIA на использование стандартных механизмов ядра (в настоящее время модуль NVIDIA слабо вписывается в инфраструктуру ядра, так как не дублирует многие уже доступные интерфейсы), а также будет способствовать обеспечению поддержки в nouveau методов взаимодействия с видеокартами. Для NVIDIA выгода такого подхода состоит ещё и в том, что удастся избежать проблем при использовании драйвера на системах с включенным режимом безопасной загрузки UEFI, при котором в Fedora Linux смогут быть загружены только компоненты ядра, заверенные корректной цифровой подписью разработчика дистрибутива. Для загрузки сторонних модулей ядра от пользователя потребуется значительно больше усилий, связанных с отключением режима безопасной загрузки или использованием своих проверочных ключей.
© OpenNet