Kod: Zaznacz cały
Spis treści:
0. Uwagi wstępne
1. Czynności preinstalacyjne
2. Kompilacja i instalacja
3. Czynności postinstalacyjne
Wszystkie czynności przedstawione w arcie wykonywane były na Slackware 11, karta graficzna ATI Radeon Xpress 200M,i pod kątem używania kart ATI (i sterowników do nich) pisane jest to FAQ. Oczywiście wszystko powinno działać także na sterownikach Nvidii.
Przed przystąpieniem do pracy ostrzegam, ze potrzeba dużo samozaparcia i cierpliwości.
Oczywiście autor nie bierze odpowiedzialności za skutki uboczne podjemowanych działan i ew. bałagan na dysku
1. Czynności preinstalacyjne
UWAGA! Warto zmienić initlevel na 3 (logownie w konsoli) w razie, gdyby coś podczas pierwszego startu poszło nie tak.
Przede wszystkim ściągamy paczki ze źródłami z ftp://ftp.freedesktop.org/pub/xorg/X11R7.1/src/. Lepiej nie przebierać w dostępnych plikach z bibliotekami (katalog libs) ani aplikacjami (kat. apps) (chyba, że mamy pewność, że nie przydadzą nam się i chcemy jak najbardziej odchudzić nasze X'y). Z kolei jeśli chodzi o sterowniki i czcionki, mamy pełną swobodę (oczywiście w pewnych granicach - sterowniki myszki czy klawiatury lepiej sciągnąć ). Przy ściąganiu zachowujemy strukturę katalogów.
UWAGA! Sterownik evdev nie kompiluje się z kernel-headers z jąder 2.4. Konieczne jest ich uaktualnienie!
Kolejnym krokiem jest ściągnięcie Mesy (http://sourceforge.net/project/showfiles.php?group_id=3)(zakładam, że chcemy mieć obsługę DRI), wersja 6.5 jest bezpieczna pod względem kompatybilności z Xorg 7.1.0 (dokładnie 6.5! nie 6.5.2, 6.5.1 ), oraz bibliotekę librm (http://dri.freedesktop.org/libdrm/), o ile nie posiadam jej jeszcze w naszym systemie. Należy też zwrócić uwagę na wersję biblioteki freetype, jeśli korzystamy z serii 2.2.*, to należy ją downgradeować do serii 2.1.*, w przeciwnym wypadku mogą wystąpić problemy.
Bibliotekę libdrm kompilujemy i instalujemy przed przejściem do następnych kroków.
Jeśli mamy już wszystkie źródła, warto zainteresowaś się skryptem, który w elegancki sposób pomoże przebrnąć przez proces kompilacji i instalacji tylu różnych paczek. Znajdziemy go tu: http://gitweb.freedesktop.org/?p=xorg/u ... arballs.sh. Zapisujemy go w folderze z paczkami, które dopiero ściągneliśmy.
UWAGA! Jeśli nie zdecydowaliśmy się ściągnięcie wszystkich paczek ze źródłami, należy zahaszować odpowiadające im linijki w pliku build-from-tarballs.sh, inaczej skrypt wyrzuci komunikat błędu.
Przed kompilacją struktura katalogu powinna przedstawiać się nastepująco:
Kod: Zaznacz cały
../
Mesa-6.5
app
build-from-tarballs.sh
data
doc
driver
font
lib
proto
util
xserver
W funkcji build odszukujemy w okolicach 50 linii fragment:
Kod: Zaznacz cały
if test "$1" = "xserver" && test "$2" = "xorg-server" && test -n "$MESAPATH"; then
MESA=-"-with-mesa-source=${MESAPATH}"
else
MESA=
fi
>>>> tu wstawiamy nasz warunek <<<<
eval sh configure --prefix=${PREFIX} ${MESA} ${QUIET:+--quiet} \
${CACHE:+--cache-file=}${CACHE} ${CONFFLAGS} || failed configure $1 $2
Kod: Zaznacz cały
if test "$1" = "driver"; then
PREFIX=/usr
else
PREFIX=${REAL_PREFIX}
fi
Kod: Zaznacz cały
*)
PREFIX=$1
>>>> tu dopisujemy <<<<
;;
Kod: Zaznacz cały
REAL_PREFIX=$1
Dodatkowo mozemy wstępnie zainstalować Xserver w katalogu pomocniczym, aby potem łatwo utworzyć paczkę tgz, wystarczy w tej samej funckji zmodyfikować wpis:
Kod: Zaznacz cały
$SUDO env LD_LIBRARY_PATH=$LD_LIBRARY_PATH make install || \
failed install $1 $2
Kod: Zaznacz cały
$SUDO env LD_LIBRARY_PATH=$LD_LIBRARY_PATH make install DESTDIR=/* ścieżka */ || \
failed install $1 $2
Kompilować będziemy tak, aby nowy Xserver znajdował się domyślnie w katalogu /usr/X11R7 (co pozwoli nam zachować stare X'y w razie niepowodzenia).
Jako root w katalogu ze źródłami wydajemy polecenia:
Kod: Zaznacz cały
$ export PATH=/usr/X11R7/bin:/bin:/usr/bin // chyba, że podstawowe polecenia są w innym katalogu
$ PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig:$PKG_CONFIG_PATH ./build-from-tarballs.sh -m ../../Mesa-6.5 /usr/X11R7
Jeśli mieliśmy mniej szczęścia, i dostaliśmy błąd, to aby ponownie nie przechodzić przez kompilację XX bibliotek i aplikacji, możemy zahaszować odpowiednie linijki w pliku build-from-tarballs.sh - znajdujaą się one na końcu pliku i mają postać build_/* rodzina paczek */. Oczywiście haszujemy tylko do tego momentu, do którego kompilacja przebiegała prawidłowo
UWAGA! Możliwe, że dostaniemy błąd przy kompilacji aplikacji xdriinfo, należy wtedy wcześniej ręcznie zainstalować Mesę (albo po prostu darować sobie ten programik).
UWAGA! Jesli modyfikowaliśmy ścieżkę instalacji zapomocą parametru DESTDIR= należy odpowiednio zmienić ścieżkę przy PKG_CONFIG_PATH i PATH.
Ew. eksport zmiennych PKG_CONFIG_PATH oraz PATH możemy dopisać do skryptu build-from-tarballs.sh gdzieś na początku. Wyglądałoby to mniej więcej tak:
Kod: Zaznacz cały
PATH=/usr/X11R7/bin:/bin:/usr/bin
PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig:$PKG_CONFIG_PATH
Aby w pełni móc korzystać z dobrodziejstw nowego Xservera, należy nieco zmodyfikować pliki konfiguracyjne.
Oczywiście warto wcześniej stworzyć ich kopie zapasowe.
a) /etc/X11/xorg.conf
W sekcji "Files" zmieniamy ścieżki do czcionek - z X11R6 na X11R7.
Jeśli zmodyfikowaliśmy skrypt instalacyjny według zaleceń (czyli paczki z rodziny driver instalowane są w /usr/lib/xorg/modules), to zmieniamy wartość zmiennej ModulePath na:
Kod: Zaznacz cały
ModulePath "/usr/lib/xorg/modules"
Dodajemy linijkę ze ścieżką do nowych bibliotek, czyli
Kod: Zaznacz cały
/usr/X11R7/lib
c) /etc/profile
Zamieniamy każde wystąpienie X11R6 na X11R7.
d) symboliczne linki
Przechodzimy do katalogu /usr i wykonujemy następujące operacje:
Kod: Zaznacz cały
$ rm -r X11
$ ln -s /usr/X11R7 X11
$ cd /usr/include
$ rm X11 GL
$ ln -s /usr/X11R7/include/X11 X11
$ ln -s /usr/X11R7/include/GL GL
$ cd /usr/lib
$ rm X11
$ ln -s /usr/X11R7/lib X11
Kod: Zaznacz cały
$ cd /usr/share/aclocal
$ /usr/X11R7/bin/lndir /usr/X11R7/share/aclocal