VIA Unichrome в Linux

Предлагаю вашему вниманию статью, в которой поделюсь опытом сборки 3D драйверов для интегрированых видеокарт VIA Unichrome, установленых на материнских платах с чипсетами: CLE266, KM400/KN400, K8M8000, PM800/CN400.

[Юрий Винник (yurav AT ukwest.net)]

Для сборки драйверов VIA Unichrome нам понадобятся:
  1. Сами драйвера и библиотеки скачанные с http://unichrome.sourceforge.net, а именно следующие файлы:

    unichrome-X-rXX.tar.gz - где ХХ - это номер релиза драйверов. Релиз берите самый последний. На момент выхода статьи последний релиз был равен 30.

    opensource_ubranch_YYYYMMDD.tbz2 - где YYYYMMDD - это дата сборки.

  2. Кроме того нам понадобяться исходники Вашего ядра и исходники XFree86 или X.Org. Весия Х-ов должна быть не ниже 4.4.0.Если исходники XFree86 входят в состав Вашего дистрибутива, то считайте Вам повезло, если же нет, то придётся выкачивать их из Интернета. Кроме того, нужно следить за тем чтобы версия установленой у Вас X-ов и исходников совпадали, если они не будут совпадать, это конечно не смертельно, но тогда придеться переустанавливать те Х-ы которые вы соберете из исходников поверх Ваших старых.

  3. Ещё надо качнуть DRI драйвера VIA для вашего ядра с сайта: http://dri.freedesktop.org/snapshots/. Берите самые свежие. :-) Снимки CVS с этого сайта имеют вид: via-YYYYMMDD-linux.i386.tar.bz2, где YYYYMMDD - это дата создания.

  4. Еще в Вашей системе должны быть установлены следующие пакеты:
    gcc
    automake
    autoconf
    flex
    bison
    libpng
    libpng-devel
    zlib
    zlib-devel
    
Теперь приступаем к самому главному: сборке и установке всего этого добра. :-) Зайдите в систему под пользователем root и проделайте следующие шаги:
  1. Сперва установим драйвера ядра.Ядро должно быть не ниже версии 2.4.х. Распакуйте файл via-YYYYMMDD-linux.i386.tar.bz2 в какой-нибудь каталог и запустите скрипт install.sh. Установка должна пройти автоматически, от Вас требуэться только нажимать Enter. :-) Если всё пройдет удачно, то драйвер будет установлен в /lib/modules/2.х.x/kernel/drivers/char/drm/. Зарегестрируйте драйвер выполнив команду: depmod -a.

  2. Теперь самая длинная часть процесса. :-) Распакуйте исходники XFree86 (или X.Org). Перейдите в каталог ~/xc и выполните команду: make World. Имейте в виду что процесс сборки Х-ов из исходников довольно длительный. Все зависит от скорости процессора и количества оперативной памяти. У меня на AMD Sempron 2300 с 256 Mb RAM сборка заняла около часа. Если всё прошло успешно и без ошибок переходите в каталог /xc/programs/Xserver/hw/xfree86/drivers в подкаталоге "via" сотрите все файлы, вместо них перепишите файлы из архива unichrome-X-rXX.tar.gz Далее вернитесь в каталог /xc/programs/Xserver/hw/xfree86/drivers и выполните команду пересоздания make файлов: make Makefiles. После это опять перейдите в католог /xc/programs/Xserver/hw/xfree86/drivers/via и выполните команды: make и make install (от имени пользователя root) ПРИМЕЧАНИЕ:Если версия Х-ов которые Вы только что собрали, не совпадает с установленными у Вас в системе, то эти драйвера работать не будут. :-( Но выход есть! Для этого нужно переписать свежесобранные Вами Х-ы поверх установленых. Для этого просто перейдите в каталог /xc и выполните команду make install, но перед этим сохраните Ваш конфигурационный файл Х-в из каталога /etc/X11 с названием XF86Config или xorg.conf если у вас стоит X.Org. После инсталяции Х-ов перепишите сохраненный Вами файл на его законное место, чтобы по-новому не настраивать параметры монитора, миши и т.п. Конечно, если у Вас есть желание и время, то можно резервную копию этого файла не делать, а настроить Ваши Х-ы по-новому...

  3. Перейдите в каталог /usr/X11/lib и перепишите в него файл libGL.so.1.2 из архива opensource_ubranch_YYYYMMDD.tbz2, если Ваша система не понимает файл с расширением .tbz2, то переименуйте его с расширением .tar.bz2 - это должно помочь. :-) Далее перейдите в каталог /usr/X11/lib/modules/dri и перепишите в него файл unichrome_dri.so, создайте на него симлинк в том же каталоге с именем via_dri.so.

  4. Теперь внесём изменения в конфигурационный файл Х-ов. Переходим в каталог /etc/X11/ и открываем в любом редакторе файл XF86Config (или xorg.conf). Добавляем строки: Load "glx" и Load "dri" в секции Module. Далее описывает свойства драйвера видеокарты следующим образом:
    Section "Device"
      Identifier "VIA Unichrome"
      Driver "via"
      VendorName "VIA"
      BoardName "Unichrome (KM400)"
      Option "DisableIRQ"
      Option "AllowInsecureDRI"
    EndSection
    
    Потом в секции Screen меняем значение Device {что-там у Вас} на Device "VIA Unichrome". Добавляем ещё одну секцию в любом месте файла для организации доступа к DRI:
    Section "DRI"
      Mode 0666
    EndSection
    
Сохраняем файл, пляшем с бубном :-) и перезагружаем систему. Вот и всё! После этого, если всё прошло без ошибок, у Вас должна появиться поддержка 3D.

[ опубликовано 14/03/2005 ]

Юрий Винник (yurav AT ukwest.net) - VIA Unichrome в Linux   Версия для печати