Русская Википедия:Графическое оборудование и Свободное программное обеспечение

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Файл:Linux kernel and OpenGL video games.svg
Схема рендеринга: ОС Linux и приложения, использующие OpenGL.
Файл:Linux Graphics Stack 2013.svg
Графический стек Linux

Свободное программное обеспечение (СПО) может быть использовано с разнообразным графическим оборудованием, в основном благодаря проекту X.Org. Существуют разные уровни поддержки оборудования — от полностью поддерживаемого до неподдерживаемого. Некоторые производители оборудования не предоставляют драйверов со свободным исходным кодом или техническую документацию для написания независимыми разработчиками драйверов с поддержкой 3D-ускорения, и поддержка продуктов этих компаний может быть ограниченной: могут предоставляться только бинарные драйверы (так называемые блобы), или же недостаток документации может вынуждать разработчиков свободных драйверов к обратной разработке оборудования, или же поддержки не будет совсем. В таких случаях бинарные драйверы противоречат философии СПО, качеству и безопасности ПО. Также это может привести к тому, что распространение ядра линукс вместе с закрытым ПО может оказаться незаконным.

Известный источник о быстродействии, http://www.free3d.org Шаблон:Wayback, собирает информацию о быстродействии 3D, высылаемую пользователями. Phoronix также занимается сравнением быстродействия свободных драйверов.

Поддержка свободным программным обеспечением

В общем случае, видеодрайвер vesa поддерживает без графического ускорения работу большинства видеокарт, с разрешениями экрана, заданными в BIOS производителем.

ATI/AMD

Проприетарный драйвер от ATI (ныне AMD) называется fglrx и распространяется как часть пакета AMD Catalyst Linux, который можно загрузить из интернета или получить из репозиториев некоторых дистрибутивов.

Свободный драйвер «radeon» представляет поддержку 2D, Xv и 3D-ускорения для видеокарт от Radeon 7000 (R100) до Radeon HD 7000 (архитектура Southern Islands). Также он известен как драйвер «ati»[1].

Для видеокарт серии HD7700 и выше, основанных на новой архитектуре GCN, применяется свободный драйвер RadeonSI, который пока менее функционален, чем драйвер R600g[2].

ATI выпускала спецификации для некоторых чипсетов в 2007—2009 годах. AMD также участвует в разработке и поддержке драйвера radeon.

Nvidia

В прошлом, Nvidia предоставляла документацию для чипов серии RIVA TNT и старее, предоставляя частично свободный и частично обфусицированный[3][4] драйвер nv для X.Org. 26 марта 2010 года объявила о прекращении поддержки новых GPU в драйвере nv. Существует проект свободных драйверов nouveau, в котором благодаря обратной разработке задействовано 3D-ускорение с помощью Gallium 3D. Матрица возможностей драйвера nouveau представлена на сайте проекта[5].

Для Nvidia tegra существует проприетарный драйвер (как часть Linux For Tegra Шаблон:Wayback). В апреле 2012 г., в связи с «производственной необходимостью», Nvidia совместно с партнёром Avionic Design GmbH начали работать над продвижением свободного драйвера в ядро Linux[6][7].

Intel

У Intel длительная история выпуска свободных драйверов для их графических ядер. Написанием драйверов занимается сторонний исполнитель Tungsten Graphics.

Есть только одно исключение: встроенная графика GMA 500/600 и GMA 3600/3650, используемая в процессорах Atom, — это не целиком собственный продукт от Intel[8] (там графические ядра PowerVR лицензированные у Imagination Technologies, а значит возможность появления свободных драйверов определяет именно эта фирма).

Существует две версии X.Org драйвера, драйвер xorg-video-i810, который поддерживает i810 и некоторые более старые модели и обновлённый драйвер xf86-video-intel Шаблон:Wayback, который изначально поддерживал те же модели, но в новых версиях 2.0 и 2.1 добавлена поддержка G33, Q33 и Q35.

Matrox

Для поддержки ОС Unix и Linux, Matrox выпустила только бинарные драйверы для большинства своих продуктов, а также драйверы с частично доступным исходным кодом для видеокарт на основе чипа G550, работающие совместно с блобами. В дополнение к закрытым драйверам, сообщество разработчиков DRI выпустило полностью GPL-совместимые драйверы для большого числа видеокарт Matrox[9].

ARM

Шаблон:Main ARM разрабатывает графические ускорители Mali и продаёт лицензии как на программные блоки, так и аппаратные (см. IP-cores). 21 января 2012 года Phoronix сообщил, что Luc Verhaegen с помощью обратной разработки пишет драйвер Lima для Mali-200 и Mali-400[10]. Драйвер был представлен на выставке FOSDEM 4 февраля 2012 года.

В мае 2013 года на основе Ubuntu появилась сборка «Picuntu» с работающим ускорением графики для устройств на SoC Rockchip RK 3066 с GPU Mali-400[11].

Imagination Technologies

Шаблон:Main Imagination Technologies разрабатывают GPU PowerVR и продают их как IP-cores. Производитель не предоставляет ни свободного драйвера, ни документации к своей продукции. Фонд свободного программного обеспечения поместил в список высокоприоритетных проектов обратную разработку драйвера PowerVR.

Qualcomm

Шаблон:Main Qualcomm разрабатывают и производят GPU Adreno, чаще всего как часть системы на кристалле Snapdragon. В 2012 году Phoronix и Slashdot сообщили, что Rob Clark занимается обратной разработкой GPU Qualcomm Adreno (ранее называвшееся ATI Imageon), которое используется в мобильной платформе Snapdragon. Свободный драйвер, названный Freedreno, опубликован на GitHub. В 2012 году была завершена работа над шейдерным ассемблером и была продемонстрирована работа с текстурами и затенением по Фонгу. В марте 2013 г. Freedreno был добавлен[12] в Mesa (свободную реализацию графического API OpenGL).

Vivante

Шаблон:Main Лицензируемые GPU от Vivante широко используются в различных системах на кристалле (Marvell Armada, Rockchip 2918, Freescale i.MX6, …[13]), но свободный драйвер производителем не предоставляется. В 2013 году был начат открытый проект Etna_viv[14] по написанию такого драйвера (также методами обратной разработки). Автором проекта является Владимир Дж. Ван-дер-Лан из Нидерландов. Он выкладывает сообщения по данной теме в своём блоге, а сам проект размещён на GitHub Шаблон:Wayback, где имеется своя специализированная Вики[15]. Целью проекта является разработка полноценных драйверов Mesa/Gallium3D. В рамках данного проект уже создан драйвер OpenGL ES 2.0 для версий 3D GPU с одним пиксельным конвейером (ядра GC1000 и ниже), его надёжности и функциональности достаточно для запуска таких игр, как Quake 3 Arena[16], Descent 2 rebirth и Шаблон:Нп1[17]. Тем не менее проект находится на начальной стадии развития и автор призывает к помощи в развитии проекта[18][19].

Broadcom

Шаблон:Main Broadcom разрабатывают и производят GPU VideoCore, который используется, к примеру, в Raspberry Pi. Код драйвера сделали свободным в октябре 2012 года, однако прошивка видеокарты остаётся проприетарной.[20]

Другие производители

SiS и VIA проявляют ограниченный интерес.

[[|en]] (DisplayLink) анонсировал свободный проект libdlo, с упором на поддержку USB-видеокарт в Linux и на других платформах. Код доступен под лицензией LGPL.

Открытое аппаратное обеспечение

Примечания

Шаблон:Примечания

Ссылки

  • www.omgubuntu.co.uk/2011/01/ubuntu-graphics-driver-overview/# — An overview of graphic card manufacturers and how well they work with Ubuntu (копия Шаблон:Wayback)

  1. Описание драйвера radeon Шаблон:Wayback на сайте freedesktop.org
  2. Шаблон:Cite web
  3. README.RIVATNTШаблон:Недоступная ссылка, 11/18/98: «NVIDIA forced The XFree86 Project to replace the sources we had with sources that were partly run through the C preprocessor in order to remove some of the names that NVIDIA thought might give away IP from NVIDIA. This resulted in unreadable and unmaintainable code.»
  4. Пример обфускацииШаблон:Недоступная ссылка
  5. Шаблон:Cite web
  6. Ошибка цитирования Неверный тег <ref>; для сносок tegra2_adddrm не указан текст
  7. Ошибка цитирования Неверный тег <ref>; для сносок tegra2_drmkms не указан текст
  8. Ответ Intel по поводу поддержки GMA 3600 в линукс Шаблон:Wayback
  9. Шаблон:Cite web
  10. Шаблон:Cite web
  11. Шаблон:Cite web
  12. Шаблон:Cite web
  13. Ошибка цитирования Неверный тег <ref>; для сносок github.com_1 не указан текст
  14. Ошибка цитирования Неверный тег <ref>; для сносок opennet.ru_1 не указан текст
  15. Ошибка цитирования Неверный тег <ref>; для сносок github.com_2 не указан текст
  16. Ошибка цитирования Неверный тег <ref>; для сносок quake3_etnaviv не указан текст
  17. Ошибка цитирования Неверный тег <ref>; для сносок etnaviv_morenews не указан текст
  18. Ошибка цитирования Неверный тег <ref>; для сносок etnavivhelpneed не указан текст
  19. Ошибка цитирования Неверный тег <ref>; для сносок etnavivhelpneed_en не указан текст
  20. Шаблон:Cite web