Niestety jak do tej pory po llvmpipe nie ma ani śladu w repozytoriach Ubuntu (nawet 11.04), ani nawet w repozytoriach xorg-edgers, mimo iż w np. Fedora 15 alpha jest to nawet domyślny sterownik w przypadku braku sterownika Mesy do danej karty graficznej. Informacje w internecie o samodzielnym zastosowaniu llvmpipe są bardzo fragmentaryczne, a jest to dość trudna procedura.
Ten tutorial będzie miał zastosowanie do przypadków, gdy nie ma sensownych sterowników dla posiadanej karty graficznej - dotyczy to głównie producentów SIS i VIA, lub też uszkodzonych kart graficznych, co uniemożliwia ich prawidłowe działanie.
Należy pamiętać, że aktualne sterowniki open-source dla kart Intel, ATI, NVIDIA są znacząco wydajniejsze niż llvmpipe.
Jeżeli wynik komendy:
Kod: Zaznacz cały
glxinfo | grep OpenGL
Kod: Zaznacz cały
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 1.4 (2.1 Mesa 7.7.1)
OpenGL extensions:
Uwaga 1. Sterownik llvmpipe nie rozwiąże problemu niskiej rozdzielczości na kartach SIS. W tym celu trzeba przygotować odpowiedni moduł xorga zgodnie z tym tutorialem. Dopiero po tym zabiegu można znacząco poprawić wydajność grafiki na komputerach z układami SIS stosując llvmpipe z niniejszego przewodnika.
Uwaga 2. Jakkolwiek autor tutorialu za wszelką cenę spróbuje uprościć proces instalacji sterownika llvmpipe, to jednak jest on dość skomplikowany i wymaga głębokich zmian w systemie. Osoby podejmujące się tego wyzwania powinny znać obsługę Ubuntu i kompilację z polecenia ‘make’, przynajmniej w stopniu podstawowym. Jeżeli nie wiesz co robisz, to nie rób tego! Autor nie ponosi odpowiedzialności, za wszelkie szkody wynikające ze stosowania niniejszego tutorialu.
Sposób ten został wypróbowany na laptopie z kartą SIS Mirage 3, procesorem Intel Core 2 Duo i Ubuntu 10.04 64bit podnosząc wydajność grafiki 10 krotnie.
W związku z tym, że llvmpipe w najnowszej Mesie (7.10) dostało sporego przyśpieszenia. Warto skorzystać właśnie z tej Mesy. Dlatego tutorial dzielę na 3 części. Użytkownicy Ubuntu 10.04 i 10.10 powinni wykonać wszystkie 3 kroki. Użytkownicy Ubuntu 11.04 mogą od razu przejść do kroku trzeciego. Ten tutorial nie ma zastosowania dla użytkowników innych wersji Ubuntu.
1. Instalacja najnowszego jądra systemu 2.6.38 - wymaganego przez najnowszą Mesę
2. Instalacja Mesa 7.10.1
3. Kompilacja i przygotowanie sterownika llvmpipe.
1. Instalacja kernela 2.6.38
Ponieważ kernel 2.6.38 będzie zastosowany w Ubuntu 11.04, to można pójść na łatwiznę i ściągnąć ze strony Ubuntu Package od razu jądro przygotowane dla Ubuntu (natty).
Pobieramy pliki:
linux-image-2.6.38-6-generic.deb
linux-headers-2.6.38-6.deb
linux-headers-2.6.38-6-generic.deb
dla naszej architektury (i386 - 32 bity, amd64 - 64 bity).
Pakiety instalujemy następnie dwuklikiem.
Jeżeli wszystko się udało, to wypada zrestartować komputer. W menu GRUB należy wybrać jądro 2.6.38 (domyślnie będzie zaznaczone). Uruchomić na nim system i sprawdzić, czy wszystko stabilnie działa. Jeżeli tak to sprawdzamy wynik komendy:
Kod: Zaznacz cały
uname -a
Kod: Zaznacz cały
Linux komputer 2.6.38-6-generic #44~lucid1-Ubuntu SMP Tue Jan 25 19:17:25 UTC 2011 x86_64 GNU/Linux
2. Instalacja Mesa 7.10.1
I w tym przypadku też możemy pójść na łatwiznę i użyć Mesa 7.10.1 z Ubuntu 11.04. W tym celu pobieramy ze strony Ubuntu Package następujące pakiety:
libgl1-mesa-dri.deb
libgl1-mesa-glx.deb
libglu1-mesa.deb
mesa-utils.deb
libdrm-intel1.deb
libdrm-radeon1.deb
libdrm-nouveau1a.deb
plymouth.deb
libplymouth2.deb
libncursesw5
Uwaga tym razem spotkamy się z pewnymi problemami z zależnościami, ale spróbujemy z nich sprytnie wybrnąć. Najnowsza Mesa ma w wymaganiach najnowsze sterowniki drm dla kart ATI, Intel i NVIDIA. Zaczynamy więc od instalacji tych paczek. libdrm-intel1.deb i libdrm-radeon1.deb powinny się zainstalować bez żadnego problemu dwuklikiem. Niesty libdrm-novueau1a.deb nie może istnieć, jednocześnie z obecnym już w Ubuntu 10.04 libdrm-novueau1, a próba odinstalowania tego drugiego z zależnościami spowoduje odinstalowanie prawie całego systemu. Dlatego należy odinstalować libdrm-novueau1 bez sprawdzania zależności komedną:
Kod: Zaznacz cały
sudo dpkg -r xserver-xorg-video-all
sudo dpkg -r libdrm-novueau1
Kod: Zaznacz cały
sudo dpkg -i /sciezka/do/pobranego/libdrm-novueau1a.deb
Można sobie z tym poradzić instalując plymoth z Ubuntu 11.04 poleceniem:
Kod: Zaznacz cały
sudo dpkg -i /sciezka/do/pobranego/plymoth.deb
sudo dpkg -i /sciezka/do/pobranego/libplymoth2.deb
sudo dpkg -i /sciezka/do/pobranego/libncursesw5.deb
Teraz instalacja samej Mesy nie powinna stanowić problemu. Wystarczy dwuklik na pliki libgl1-mesa-dri.deb, libglu1-mesa.deb, libgl-mesa-glx.deb, mesa-utils.deb wcześniej pobrane. Następnie restartujemy komputer (uruchamiamy oczywiście na jądrze 2.6.38 ) i w terminalu wpisujemy:
Kod: Zaznacz cały
glxinfo | grep OpenGL
Kod: Zaznacz cały
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 1.4 (2.1 Mesa 7.10.1)
OpenGL extensions:
3. Kompilacja i przygotowanie sterownika llvmpipe
Próżno jest szukać llvmpipe w jakimkolwiek repozytorium Ubuntu. Ten sterownik niestety trzeba będzie sobie samemu skompilować.
Najpierw trzeba przygotować komputer do kompilacji, po przez instalację niezbędnych bibliotek komendą:
Kod: Zaznacz cały
sudo apt-get install build-essential autoconf libxt-dev libxi-dev libxmu-dev llvm llvm-dev libffi-dev xutils-dev
llvmpipe wymaga też nieobecnego w Synapticu udis86. Pobieramy z tej strony udis86-1.7.tar.gz.
Rozpakowujemy pobrane archiwum. Uruchamiamy termial, przechodzimy do katalogu z rozpakowanym udis86-1.7 i wykonujemy komendy:
Kod: Zaznacz cały
./configure
make
sudo make install
Archiwum rozpakowujemy, przechodzimy w terminalu do katalogu z rozpakowaną Mesą i wykonujemy polecenia:
Kod: Zaznacz cały
./configure
make realclean
make linux-llvm
Ostatnią rzeczą, jaka nam pozostaje jest ustawienie nowo-skompilowanego sterownika llvmpipe jako domyślnego sterownika. W tym celu należy edytować plik ‘/etc/ld.so.conf’ komendą:
Kod: Zaznacz cały
sudo gedit /etc/ld.so.conf
Kod: Zaznacz cały
’/home/uzytkownik/Pobrane/Mesa/lib/gallium/’
include /etc/ld.so.conf.d/*.conf
Kod: Zaznacz cały
sudo ldconfig
Kod: Zaznacz cały
glxinfo | grep OpenGL
Kod: Zaznacz cały
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe
OpenGL version string: 2.1 Mesa 7.10.1
OpenGL extensions:
Tutorial był pisany z pamięci. Podczas tworzenia tego tekstu mogło mi coś umknąć. Wszelkie uwagi proszę przesyłać na priva, a będę na bieżąco aktualizował ten poradnik.