Технология DMA-BUF не может быть использована в проприетарных видеодрайверах без перелицензирования
12 октября 2012 года
Компания NVIDIA столкнулась с труднопреодолимым препятствием в процессе обеспечения в проприетарном драйвере для Linux поддержки технологии Optimus, дающей возможность на лету переключаться между встроенной энергоэффективной видеокартой на базе GPU Intel и дискретной картой NVIDIA. Для обеспечения поддержки горячего переключения между видеокартами требуется использование интерфейса DMA-BUF, интегрированного в ядро Linux, начиная с версии 3.5 и позволяющего организовать совместное использование буферов между несколькими драйверами (использование DMA-BUF требуется для организации записи во фреймбуфер драйвера Intel).
Проблема состоит в том, что DMA-BUF отнесён к категории внутренних интерфейсов ядра, который экспортируется в группе EXPORT_SYMBOL_GPL, ограничивающей возможность использования только для модулей ядра, распространяемых под лицензией GPL. Так как драйвер NVIDIA является проприетарным, он не имеет доступа к интерфейсам группы EXPORT_SYMBOL_GPL и технологии DMA-BUF в частности. DMA-BUF также не могут использовать проприентарные драйверы для видеоподсистем многочисленных одночиповых систем, используемых в мобильной технике. Кроме того, так как технология DMA-BUF положена в основу будущей спецификации DRI3, то данный интерфейс не сможет быть реализован проприетарными драйверами.
Для выхода из сложившегося тупика, представители NVIDIA предложили перевести DMA-BUF в категорию внешних интерфейсов ядра, экспортируемых в группе EXPORT_SYMBOL. Алан Кокс, известный разработчик ядра, указал на то, что смена статуса API возможна, но требует получения согласия от всех разработчиков, код которых использован в реализации DMA-BUF.
Подключившиеся к дискуссии представители компании Red Hat показали, что не всё так просто и для предоставления возможности использования DMA-BUF в проприетарных драйверах требуется изменение лицензии на реализацию DMA-BUF, что может быть сделано только при получении согласия от разработчиков как минимум всей графической подсистемы ядра. Получить согласия только от автора кода DMA-BUF недостаточно, так как данная технология тесно переплетается с другими подсистемами ядра.
Для обхода ограничения доступа к GPL-компонентам ядра некоторые производители проприетарных драйверов используют поставляемый под GPL модуль-обвязку, транслирующий вызовы к бинарному драйверу, работающему в пространстве пользователя. В случае с NVIDIA такой метод не подходит, так как код драйвера, содержащего бинарные компоненты, работает на уровне ядра.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.