Компания NVIDIA столкнулась (http://lists.freedesktop.org/archives/dri-devel/2012-October...) с труднопреодолимым препятствием в процессе обеспечения в проприетарном драйвере для 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 также не могут использовать проприентарные драйверы для видеоподсистем многочисленных одночиповых систем, используемых в мобильной технике.
Для выхода из сложившегося тупика, представители NVIDIA предложили (http://lists.freedesktop.org/archives/dri-devel/2012-October...) перевести DMA-BUF в категорию внешних интерфейсов ядра, экспортируемых в группе EXPORT_SYMBOL. Алан Кокс, известный разработчик ядра, указал (http://lists.freedesktop.org/archives/dri-devel/2012-October...) на то, что смена статуса API возможна, но требует получения согласия от всех разработчиков, код которых использован в реализации DMA-BUF.
Подключившиеся к дискуссии представители компании Red Hat показали (http://lists.freedesktop.org/archives/dri-devel/2012-October...), что не всё так просто и для предоставления возможности использования DMA-BUF в проприетарных драйверах требуется изменение лицензии на реализацию DMA-BUF, что может быть сделано только при получении согласия от разработчиков как минимум всей графической подсистемы ядра. Получить согласия только от автора кода DMA-BUF недостаточно, так как данная технология тесно переплетается с другими подсистемами ядра. Так как технология DMA-BUF положена в основу будущей спецификации DRI3, то данный интерфейс без перелицензирования также не будет доступен для проприетарных драйверов.
URL: http://linux.slashdot.org/story/12/10/11/1918251/alan-cox-to...
Новость: https://www.opennet.ru/opennews/art.shtml?num=35067