Технология DMA-BUF не может быть использована в проприетарных видеодрайверах без перелицензирования
Проблема состоит в том, что 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 такой метод не подходит, так как код драйвера, содержащего бинарные компоненты, работает на уровне ядра.
Источник: http://www.opennet.ru/opennews/art.shtml?num=35067
|
0 | Tweet | Нравится |
|