[HOW TO] Kompilacja Otwartych Sterowników

Awatar użytkownika
makson
Redaktor
Redaktor
Posty: 1539
Rejestracja: 23 mar 2009, 07:10
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: XFCE
Architektura: x86_64

[HOW TO] Kompilacja Otwartych Sterowników

Post autor: makson » 07 maja 2012, 20:41

Poniższy poradnik instruuje, jak krok po kroku skompilować wszystkie elementy otwartych sterowników do kart graficznych na Ubuntu 12.04. Sterowniki te to najświeższe - niestabilne wersje - wprost z repozytoriów git developerów. Przygotowałem go tak szczegółowo, że nawet osobie niewiedzącej o co chodzi, po przepisaniu wszystkich komend powinno wszystko działać. Jeżeli chcecie zapoznać się z teorią otwartych sterowników to polecam ten artykuł.
1. Przygotowanie środowiska
Instalujemy biblioteki niezbędne do kompilacji:

Kod: Zaznacz cały

sudo apt-get build-dep libgl1-mesa-dri libdrm2 xserver-xorg-video-ati xserver-xorg-video-intel xserver-xorg-video-nouveau

Kod: Zaznacz cały

sudo apt-get install git libcairo2-dev mesa-utils libxcb-glx0-dev
Bardzo ważnym elementem sterowników opartych o Gallium3D jest kompilator llvm. Chcemy do kompilacji użyć najnowszej wersji (3.0) więc:

Kod: Zaznacz cały

sudo apt-get --purge remove llvm

Kod: Zaznacz cały

sudo ln -s /usr/bin/llvm-config-3.0 /usr/bin/llvm-config
2. libdrm

Ważnym elementem otwartych sterowników jest libdrm będący interfejsem do mechanizmów DRM jądra systemu. Najnowszą niestabilną wersję pobierzemy wprost z drzewa git:

Kod: Zaznacz cały

cd ~/Pobrane

Kod: Zaznacz cały

git clone git://anongit.freedesktop.org/mesa/drm
I kompilujemy:

Kod: Zaznacz cały

cd drm

Kod: Zaznacz cały

./autogen.sh

Kod: Zaznacz cały

./configure --enable-vmwgfx-experimental-api --prefix=/usr/local

Kod: Zaznacz cały

make

Kod: Zaznacz cały

sudo make install
3. Kompilacja Mesa3D
Pobieramy i kompilujemy najnowszą niestabilną Mesa wprost z drzewa git mesa master.

Kod: Zaznacz cały

cd ~/Pobrane

Kod: Zaznacz cały

git clone git://anongit.freedesktop.org/mesa/mesa

Kod: Zaznacz cały

cd mesa

Kod: Zaznacz cały

./autogen.sh

Kod: Zaznacz cały

./configure --enable-texture-float --with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast --with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast
Uwaga! Po "--with-dri-drivers=" wymieniamy te sterowniki oparte o klasyczną Mesa, które chcemy instalować. Po "--with-gallium-drivers=" wymieniamy te sterowniki oparte o Gallium3D, które chcemy instalować. Możemy podać wszystkie tak jak w przykładzie powyżej, lub tylko jeden, który nas interesuje.

Kod: Zaznacz cały

make
Następnie trzeba podmienić biblioteki ze sterownikami Mesa. Gdy nasz sterownik oparty jest o klasyczną Mesa to:

Kod: Zaznacz cały

echo -e "LIBGL_DRIVERS_PATH=$HOME/Pobrane/mesa/lib" >> ~/.pam_environment
gdy o Gallium3D to:

Kod: Zaznacz cały

echo -e "LIBGL_DRIVERS_PATH=$HOME/Pobrane/mesa/lib/gallium" >> ~/.pam_environment
Teraz 32 bitowcy:

Kod: Zaznacz cały

sudo mv /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.back
sudo cp ~/Pobrane/mesa/lib/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2
sudo mv /usr/lib/i386-linux-gnu/libGLU.so.1.3.08000 /usr/lib/i386-linux-gnu/libGLU.so.1.3.08000.back
sudo cp ~/Pobrane/mesa/lib/libGLU.so.1.3.08000 /usr/lib/i386-linux-gnu/libGLU.so.1.3.08000
sudo cp ~/Pobrane/mesa/lib/libglsl.so /usr/lib/i386-linux-gnu/
sudo cp ~/Pobrane/mesa/lib/libdricore.so /usr/lib/i386-linux-gnu/
I 64 bitowcy:

Kod: Zaznacz cały

sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.back
sudo cp ~/Pobrane/mesa/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2
sudo mv /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.08000 /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.08000.back
sudo cp ~/Pobrane/mesa/lib/libGLU.so.1.3.08000 /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.08000
sudo cp ~/Pobrane/mesa/lib/libglsl.so /usr/lib/x86_64-linux-gnu/
sudo cp ~/Pobrane/mesa/lib/libdricore.so /usr/lib/x86_64-linux-gnu/
4. Kompilacja sterowników DDX do Xorga
Chociaż zdecydowana większość ciekawych zmian w otwartych sterownikach ma miejsce w przestrzeni DRI, to jednak można też skompilować sobie najnowsze sterowniki DDX dla X-Servera prosto z drzewa Git.

Jeżeli mamy kartę graficzną Radeon to pobieramy kod sterownika:

Kod: Zaznacz cały

cd ~/Pobrane
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-ati
cd xf86-video-ati
Dla kart graficznych Intela:

Kod: Zaznacz cały

cd ~/Pobrane
git clonegit://anongit.freedesktop.org/xorg/driver/xf86-video-intel
cd xf86-video-intel
Dla kart graficznych Nvidia:

Kod: Zaznacz cały

cd ~/Pobrane
git clone git://anongit.freedesktop.org/nouveau/xf86-video-nouveau
cd xf86-video-nouveau
Dla kart graficznych SIS:

Kod: Zaznacz cały

cd ~/Pobrane
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-sis
cd xf86-video-sis
Dla kart graficznych Chrome:

Kod: Zaznacz cały

cd ~/Pobrane
git clone git://anongit.freedesktop.org/openchrome/xf86-video-openchrome
cd xf86-video-openchrome
Uniwersalne sterowniki, które powinny działać na każdej karcie graficznej, ale nie zapewniają akceleracji 2D.
Frame Buffer:

Kod: Zaznacz cały

cd ~/Pobrane
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-fbdev
cd xf86-video-fbdev
lub VESA:

Kod: Zaznacz cały

cd ~/Pobrane
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-vesa
cd xf86-video-vesa
Następnie kompilujemy sterownik:

Kod: Zaznacz cały

./autogen.sh --prefix=/opt/xorg
make
sudo make install
Edytujemy lub tworzymy plik xorg.conf

Kod: Zaznacz cały

sudo gedit /etc/X11/xorg.conf
Umieszczamy w pliku następującą treść:

Kod: Zaznacz cały

Section "Files"
        ModulePath "/opt/xorg/lib/xorg/modules,/usr/lib/xorg/modules"
EndSection
Restartujemy komputer i system powinien wstać na nowoskompilowanych sterownikach.
5. Uwagi końcowe
1. Nie zapomnij o rozszerzeniu możliwości otwartych sterowników o obsługę S3TC:

Kod: Zaznacz cały

sudo add-apt-repository ppa:makson96/mesa
sudo apt-get update
sudo apt-get install libtxc-dxtn0
2. Jest bardzo fajne i proste graficzne narzędzie do konfiguracji otwartych sterowników. Doinstalujesz je poleceniem:

Kod: Zaznacz cały

sudo apt-get install driconf
3. Użytkownicy 64 bitowych systemów macie pecha. 32 bitowe aplikacje (większość komercyjnych gier) będzie nadal korzystać z 32 bitowej wersji Mesa (która przyjdzie wraz z bibliotekami "ia32libs" i będzie to zwykła systemowa Mesa). Kompilacja krzyżowa 32 bitowej Mesa wychodzi poza zakres tego poradnika.
Miałem Linuksa, zanim stało się to modne.
ODPOWIEDZ

Wróć do „Hardware-Multimedia”