NVIDIA открыла исходный код модулей ядра видеодрайверов для ядра Linux
По информации VideoCardz, NVIDIA открыла исходный код всех модулей ядра своих проприетарных видеодрайверов для ядра Linux. Компания опубликовала разработки на GitHub под лицензиями MIT и GPLv2.
Для сторонних разработчиков стала доступна возможность сборки модулей ядра NVIDIA для архитектур x86_64 или aarch64 на системах с ядром Linux 3.10 и более новыми выпусками.
Согласно пояснению NVIDIA, о формировании пакетов на основе открытых модулей компании уже заявили разработчики из Canonical (Ubuntu), Red Hat и SUSE.
По пояснению OpenNET, представленная открытая кодовая база NVIDIA применяется при формировании проприетарных драйверов, в частности используется в опубликованной бета-версии 515.43.04. При этом первичным является закрытый репозиторий, а предложенная открытая кодовая база будет обновляться для каждого выпуска проприетарных драйверов в форме слепка после определённой обработки и чистки. История отдельных изменений не предоставляется, доступен только общий коммит для каждой версии драйвера.
Вдобавок у сообщества разработчиков есть возможность отправки pull-запросов для продвижения своих исправлений и изменений в код модулей, но эти изменения не будут отражаться в виде отдельных изменений в открытом репозитории NVIDIA, а будут вначале интегрироваться в основной закрытый репозиторий и только потом переноситься с остальными изменениями в открытый. Для участия в разработке кода с NVIDIA требуется подписание соглашение о передаче компании имущественных прав на передаваемый код (Contributor License Agreement).
OpenNET выяснил, что «прошивки и используемые в пространстве пользователя библиотеки, такие как стеки CUDA, OpenGL и Vulkan, остаются проприетарными».
Эксперты Phoronix рассказали, что данные драйвера с открытым исходным кодом NVIDIA будут поддерживать только графические процессоры Turing и более новые. Пользователям с видеочипами до Turing остается использовать существующие проприетарные драйверы или драйвер Nouveau DRM.
26 февраля СМИ сообщили, что NVIDIA проводит расследование и анализирует масштабы и последствия кибератаки. Позже стало известно, что хакеры LAPSU$ взломали внутреннюю сеть NVIDIA и скопировали более 1 ТБ критичных данных компании. NVIDIA пыталась хакнуть хакеров и зашифровать скопированные конфиденциальные данные для предотвращения их распространения. Ей почти удалось это сделать, но хакерам помог бекап.
28 февраля хакеры из LAPSU$ рассказали, что в украденных данных NVIDIA есть драйверы, схемы, прошивки и алгоритм для ограничителя хеширования RTX 30. Они начали распространять часть утечки в открытом доступе.
1 марта NVIDIA признала факт взлома внутренней сети хакерами.
2 марта хакеры из LAPSU$ потребовали от NVIDIA незамедлительно перевести все драйверы GeForce для Windows, macOS и Linux в разряд открытого ПО и начать распространять их под свободной лицензией.
В 2012 году Линус Торвальдс открыто выразил свое отношение к NVIDIA из-за нежелания компании сотрудничать разработчиками Linux.
NVIDIA опубликовала свободные драйверы для ядра Linux
Компания NVIDIA сообщила о публикации свободных модулей ядра, реализующих поддержку видеокарт поколения Turing и новее. Исходный код открыт под двойной лицензией MIT/GPLv2. Прошивка (GSP firmware) и компоненты, работающие в пространстве пользователя (включая реализации OpenGL и Vulkan), остаются закрытыми.
Заявляется, что драйверы готовы для применения в датацентрах, а поддержка рабочих станций на данный момент находится в стадии тестирования.
После стабилизации API/ABI драйверы планируется включить в основную ветку ядра Linux.
Если кто-то может написать нормальную новость, сделайте это плз, у меня руки копыта дрожат
derlafff ★★★★★ ( 11.05.22 23:33:46 MSK )
Последнее исправление: derlafff 11.05.22 23:34:01 MSK (всего исправлений: 2)
Или я туплю и открыли то, что уже и так по сути было открыто?
В кои-то веки хорошие новости. Даже не верится.
Note that the kernel modules built here must be used with gsp.bin firmware and user-space NVIDIA GPU driver components from a corresponding 515.43.04 driver release. This can be achieved by installing the NVIDIA GPU driver from the .run file using the --no-kernel-modules option. E.g., sh ./NVIDIA-Linux-[. ].run --no-kernel-modules
Фирмварь и юзерспейс все еще закрытые. Насколько это плохо? Мб у них большая часть всего кода работает в юзерспейсе?
Nouveau (open-source community) prospects around this new kernel driver — Eventually, yes, Nouveau may make use of this code being opened today. Asking about it to NVIDIA, they say that hopefully Nouveau will be able to utilize the GSP firmware / open kernel modules but first will likely take time for the GSP firmware interface to be stabilized and other factors. Thus in the future when this kernel driver is in better shape, Nouveau’s Mesa code may end up interfacing with this kernel driver as an alternative to the Nouveau DRM kernel driver that is in rather rough shape for hardware newer than the GTX 600/700 Kepler series. Plus for this kernel code to be upstreamed, it would need an open user-space – i.e. Nouveau Mesa code short of NVIDIA deciding later to open up their user-space libraries.
Другими словами, это нереально круто, хоть и не позволяет прямщас запилить полностью опенсорсный юзерспейс.
Компания NVIDIA открыла исходный код графических драйверов для Linux
NVIDIA опубликовала исходный код модулей ядра Linux для драйвера R515. Благодаря данному шагу разработчики могут обеспечить более глубокую интеграцию, повышенную стабильности и безопасность для дистрибутивов Linux
Исходный код был опубликован в GitHub-репозитории NVIDIA по модели двойного лицензирования, которая сочетает в себе лицензии GPL и MIT, что делает модули легально распространяемыми.
Драйвер R515 поддерживает все модели видеокарт, построенных на архитектуре Turing и Ampere и выпущенных после 2018 года, в том числе серии GeForce 30 и GeForce 20, GTX 1650 и 1660, а также A series, Tesla и Quadro RTX.
По словам производителя графических процессоров данное решение позволит улучшить работу продуктов на платформе Linux и упростит процессы отладки и интеграции в дистрибутивы Linux, а также будет способствовать повышению активности сообщества
Разработчики могут инспектировать исходный код и анализировать, как планирование событий ядра взаимодействует с их рабочей нагрузкой для более быстрой отладки. Кроме того, разработчики корпоративного ПО теперь могут без особых сложностей интегрировать драйверов в ядро Linux, настроенное для их проекта.
Ранее компания NVIDIA подвергалась резкой критике за отказ следовать более открытому подходу и делиться исходным кодом с сообществом, поэтому этот шаг был предпринят после многих лет давления.
Компании Red Hat, SUSE и Canonical отреагировали на эту новость, выпустив краткие заявления, в которых подчеркнули преимущества данного решения NVIDIA:
Синди Голдберг (Cindy Goldberg), вице-президент по Silicon Alliances в Canonical заявила:
Новые модули графического ядра от NVIDIA упростят установку и улучшат уровень безопасности для геймеров, разработчиков технологий машинного обучения и пользователей облачных вычислений, использующих Ubuntu.
Canonical теперь сможет предоставить улучшенную поддержку разработчикам, занимающимся технологиями искусственного интеллекта и машинного обучения, обеспечив еще более тесную интеграцию с графическими процессорами NVIDIA в Ubuntu.
Что это означает для экосистемы Linux?
Хотя данный шаг NVIDIA безусловно является дружественным, скептики утверждают, что компания перенесла значимые фрагменты кода в прошивку прежде, чем открыть исходный код драйверов.
Энтузиаст и разработчик Гектор Мартин (Hector Martin) написал в своем твиттере:
Я считаю, что это хорошо как с точки зрения лицензирования, так и с точки зрения пользователей, потому что двоичный объект будет изолирован с помощью IOMMU, а это чистая победа для практических целей.
Но ни о какой цифровой свободе пока речь не идет. Большое количество кода остается скрытым.
Драйверы пользовательского режима останутся закрытыми и будут публиковаться с готовыми двоичными файлами, поэтому большая часть графического драйвера по-прежнему имеет закрытый исходный код.
Процесс разработки не делает драйверы NVIDIA частью ядра Linux, но это не означает, что шаг NVIDIA не имеет особенного значения для мира Linux.
Опубликованный исходный код может помочь разработчикам открытого драйвера Nouveau для устройств NVIDIA улучшить свой код и значительно повысить его производительность.
Раньше разработчикам приходилось полагаться на реверс-инжиниринг и собственные предположения. Теперь они могут изучить функциональные возможности графического процессора, в частности управление тактовыми частотами и температурным режимом, чтобы внедрить целевые улучшения в свой открытый драйвер.
Директор направления графики в Red Hat Кристиан Шаллер (Christian Schaller) опубликовал сообщение в блоге, в котором пояснил, что решение NVIDIA изначально не окажет серьезного влияния на драйверы и дистрибутивы Linux.
Однако в долгосрочной перспективе бинарный драйвер (с закрытым исходным кодом) начнет использовать API-интерфейсы ядра только под лицензией GPL, а стандартная поддержка новых наборов микросхем в дистрибутивах Linux значительно улучшится.
Что касается драйвера Nouveau, Шаллер не ожидает немедленных преимуществ, но в долгосрочной перспективе данный шаг принесет много положительных результатов.
Таким образом, open-source сообщество получит драйвер ядра и прошивку, позволяющие изменить тактовую частоту графического процессора и добиться той производительности, которую пользователи ожидают от видеокарт NVIDIA. Драйвер с открытым исходным кодом сможет получить доступ к прошивки и обновлениям ядра и сможет работать с новыми поколениями графических процессоров NVIDIA.
NVIDIA открыла исходный код своих драйверов под Linux
Проприетарные драйвера видеокарт NVIDIA для GNU/Linux долгое время были недоступны для изучения их содержимого. Теперь же компания опубликовала исходный код модулей ядра драйверов. «Исходники» доступны в репозитории на GitHub и распространяются под лицензиями MIT и GPLv2, то есть их можно свободно модифицировать и распространять.
Такой шаг позволит легче работать с видеокартами NVIDIA, а также может повысить безопасность драйвером и улучшить интеграцию с Linux. Разработчики из Canonical, Red Hat и SUSE уже рассказали о планах распространения пакетов с опенсорсными модулями для своих дистрибутивов.
Код доступен для всех драйверов, начиная с релиза 515.43.04. Он доступен для GPU на архитектуре Turing (16-я и 20-я серия GeForce) и Ampere (30-я серия GeForce). Для профессиональных карт, предназначенных для работы в дата-центрах, код уже «отполирован» и готов к стабильной работе. «Исходники» карт для рабочих станций и линейки GeForce пока находятся в альфа-стадии. Больше функциональности и стабильности для них появится со следующими релизами. Цель NVIDIA — в конечном итоге полностью заменить закрытые драйвера новыми, опенсорсными.
Драйвер умеет работать с библиотеками пользовательского окружения: CUDA, OpenGL и Vulkan. Однако они все ещё закрыты, и при этом их версия должна соответствовать версии драйвера — не получится использовать стек библиотек из прошлого релиза.