Tak wiec zaczynamy:)
DODALEM NOWEGO SECURITY-FIX'a, mozna go znalezc pod adresem: http://xorg.freedesktop.org/releases/X11R6.9.0/patches/
Sprawa z DRI i w ogole zamyka sie do zaladowania odpowiednich modulow jadra i odpowiedniej rekompilacji Xorg. Z jadrem bedziecie musieli sobie sami poradzic (ja podam tylko co jest potrzebne), a Xorga skompiluje za was BDT!
1. Jadro
Bedziecie potrzebowali w miare nowego jadra z serii 2.6.x. W Slackware current jest aktualnie dostepne jadro 2.6.15.6 (wczoraj wyszlo 2.6.15.7). Takie jadro bedzie OK, aczkolwiek mozecie sobie zalepic 2.6.16 (lub 2.6.16.1).
skim ty bedziesz potrzebowal:
Kod: Zaznacz cały
<*> /dev/agpgart (AGP Support)
<*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<M> Intel 830M, 845G, 852GM, 855GM, 865G
<M> i830 driver
Siro musialby zaznaczyc zamiast i830 driver
Interesujace was moduly beda sie nazywaly:
-
i830 -- skim;
-
i915 -- Siro.
Wystarczy dodac odpowiednie wpisy
modprobe do /etc/rc.d/rc.modules, tak aby owe moduly ladowale byly przy starcie.
I to by bylo na tyle jesli chodzi o czesc ,,jadrowa'
2. BDT
O BDT w skrocie:
BDT (skrot od Beton Development ToolKit) to zestaw skryptow
napisanych w jezyku (skryptowym) powloki Bash. BDT pozwala
na zautomatyzowanie budowy pakietow: latwe tworzenie paczek
dla nowych aplikacji, zarzadzanie wersja oraz modyfikacje
pakietow. Narzedzie to sklada sie z dwoch skryptow:
bb_launch i bb_backup. Pierwszy z nich ma za zadanie:
*) dostarczyc odpowiednie srodowisko do wykonania BetonBuild
Scripts (BBS);
*) umozliwic autoamtyczna, kaskadowa, budowe pakietow;
*) obsluzyc bledy zwiazane z wykonaniem skryptow BBS.
Z kolei bb_backup odpowiada za tworzenie kopii bezpieczenstwa
skryptow BBS oraz gotowych pakietow.
Skrytpy BBS spelniaja zadanie podobne do skryptow typu SlackBuild.
Skrypty SlackBuild sa wykorzystywane w dystrybucji Slackware, BDT
moze rowniez byc wykorzystywane zamiennie w tej dystrybucji lub
moze posluzyc do budowy wlasnej dystybucji. Wewnatrz skryptow BBS
odbywa sie caly proces tworzenia pakietu, od rozpakowania zrodla
po finalne zlorzenie w paczke. BDT do budowy pakietow wykorzystuje
system pakietow Slackware, tj. dostarcza paczki w formacie *.tgz.
Jak to odpalic:
-- instalujemy paczke z BDT:
-- konfiguracja BDT zamyka sie do edycji pliku /etc/beton_devel.conf - ustawiamy tutaj odpowiednie drzewo katalogow, z ktorych korzysta BDT.
Do kompilacji Xorg bedzie potrzebne ok 1GB wolnego miejsca na dysku. Tworzymy wiec katalog o nazwie, powiedzmy,
devel:
Pozniej ustawiamy zmienna
BETON_PFX na ten katalog, czyli:
I to wlasciwie wystarczy, reszta drzewa zostanie zrobiona na podstawie tego prefixu.
Kolejnym krokiem jest ustawienie architektury, dla ktorej maja byc budowane paczki -- odpowiada za to opcja
BETON_OPT. Proponuje ustawic tutaj
i686. Mozna oczywiscie dopisac swoja architekture, jak np. pentium4, prescott, athlon-xp, ..., ale wtedy trzeba bedzie wyedytowac skrypty BBS (x11.bb,freetype2.bb, fontconfig.bb). Nie jest to nic trudnego, wystarczy dopisac swoja architekture wraz z flagami optymalizacji na poczatku. Skrypt ma juz wpisane kilka architektur, wiec jesli jest tam twoja, to nie musisz nic dopisywac:
Kod: Zaznacz cały
# Set proper compile flags
if [ "$ARCH" = "i486" ]; then
BCFLAGS="-O2 -mtune=i486 -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=i486 -pipe"
elif [ "$ARCH" = "i586" ]; then
BCFLAGS="-O2 -mtune=i586 -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=i586 -pipe"
elif [ "$ARCH" = "i686" ]; then
BCFLAGS="-O2 -mtune=i686 -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=i686 -pipe"
elif [ "$ARCH" = "pentium4" ]; then
BCFLAGS="-O2 -mtune=pentium4 -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=pentium4 -pipe"
elif [ "$ARCH" = "athlon" ]; then
BCFLAGS="-O2 -mtune=athlon -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=athlon -pipe"
elif [ "$ARCH" = "athlon-xp" ]; then
BCFLAGS="-O2 -mtune=athlon-xp -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=athlon-xp -pipe"
elif [ "$ARCH" = "prescott" ]; then
BCFLAGS="-O2 -mtune=prescott -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -mtune=prescott -pipe"
else
BCFLAGS="-O2 -gstabs+ -fomit-frame-pointer -pipe"
BCXXFLAGS="-O2 -pipe"
fi
UWAGA: Jesli uzywacie kompilatora GCC w wersji ponizej 3.4.4, to musiscie zmienic opcje optymalizacji z mtune na march w uzywanych skryptach (x11.bb, freetype2.bb, fontconfig.bb)!!!
Zmienna
BETON_TARGET powinna byc ustawiona na
slackware-linux. Za ilosc jednoczesnych watkow kompilacji odpowiada
BB_JARG -- jesli nie masz komputera wieloprocesorowego lub nie posiadasz HT w procku, to najlepiej bedzie jak ustawisz tutaj wartosc
1.
-- teraz czas na umieszczenie zrodel i skryptow w odpowiednich miejscach. Tworzymy czesc potrzebnego drzewa katalogow, tj. te katalogi opiswane przez zmienne:
BETON_SCRIPTS, BETON_SRC, BETON_MAT.
Nastepnie rozpakowujemy skrypty BBS:
Jest tam wiele innych skryptow, nie tylko do Xorg.
Umieszczamy odpowiednie rzeczy w odpowiednich miejscach:
Kod: Zaznacz cały
cd BDT_PACK
cp materials/* $BETON_MAT
tar zxvf bb_backup-2006-02-20.tar.gz
cp bb_backup-2006-02-20/*.bb $BETON_SCRIPTS
gdzie:
-- $BETON_MAT, to katalog podany w pliku konfiguracyjnym dla zmiennej BETON_MAT;
-- $BETON_SCRIPTS, to katalog podany w pliku konfiguracyjnym dla zmiennej BETON_SCRIPTS.
W katalogu BETON_MAT/x11 sa przechowywane wszystkie niezbedne pliki do budowy Xorg, wrzuc tam tez dwa security-fixy
x11r6.9.0-geteuid.diff, x11r6.9.0-mitri.diff. Trzeba jeszcze wyedytowac plik x11.bb, tak aby ladowal te latki:
Kod: Zaznacz cały
cat $BETON_MAT/x11r6.9.0-geteuid.diff | patch -p0 --backup --verbose --suffix=.orig -E || exit 9
cat $BETON_MAT/x11r6.9.0-mitri.diff | patch -p0 --backup --verbose --suffix=.orig -E || exit 9
Linijke ta dodaj ponizej ostatnije linijki z ,,patchowaniem'', tj. ponizej:
Kod: Zaznacz cały
zcat $BETON_MAT/x11.buildxterm.diff.gz | patch -p1 --backup --verbose --suffix=.orig -E || exit 9
Zawarty w skrypcie x11.bb przykladowy plik host.def (cos jak configure przy kompilacji innych programow) jest zrobiony specjalnie pod rodzine ukladow graficznych oblugiwanych przez sterownik i810, czyli zarowno 852GM, jak i 915G. Nie musisz nic tam zmieniac, chyba, ze chcesz.
Na koncu wrzucasz pobrane zrodla do katalogu podanego w BETON_SRC.
Wlasciwie mamy wszystko gotowe. Teraz nalezy usunac stare freetype i fontconfig:
Kod: Zaznacz cały
rm -rf /usr/include/freetype2 \
/usr/X11R6/include/freetype2 \
/usr/X11R6/include/ft2build.h \
/usr/lib/libfreetype.* \
/usr/X11R6/lib/libfreetype.*
rm --verbose -f \
/usr/lib/pkgconfig/fontconfig.pc \
/usr/bin/fontconfig-config \
/usr/lib/libfontconfig.* \
/usr/X11R6/lib/pkgconfig/fontconfig.pc \
/usr/X11R6/bin/fontconfig-config \
/usr/X11R6/lib/libfontconfig.* \
/usr/X11R6/man/man?/fc-*
rm --verbose -rf \
/usr/include/fontconfig \
/usr/X11R6/include/fontconfig
Jak odpalac skrytpy BBS:
Opis dostepnych opcji znajdziesz wydajac polecenie
bb_launch -h.
Czynnosci wykonujemy jako root, przy wylaczonych X'ach!!!
1) Kompilujemy freetype2:
BDT wyswietli qpe informacji na temat skryptu i spyta czy rozpoczac budowe pakietu, odpowiadamy oczywiscie 'y'!
Po zakonczeniu kompilacji instalujemy nowa paczke, bedzie sie znajdowala w katalogu podanym przez zmienna BETON_PACKAGE.
2) Fontconfig:
Rowniez instalujemy nowa paczke.
3) Na koniec Xorg
Troche to potrwa, u mnie ok 30min. Jesli sie wszystko ladnie skompiluje, to trzeba zrobic tzw. total reinstall, tj. odinstalowac (removepkg) freetype, fontconfig i stare x11. Pozniej instalujemy jeszcze raz freetype i fontconfig, a na koncu x11.
Jesli chodzi o konfiguracje, to wazne jest zeby w xorg.conf znalazly sie:
Kod: Zaznacz cały
Section "Module"
Load "record"
Load "extmod"
Load "dbe"
Load "dri"
Load "glx"
Load "xtrap"
Load "freetype"
Load "type1"
EndSection
i oczywiscie
Kod: Zaznacz cały
Section "DRI"
Group "video"
Mode 0666
EndSection
Mam nadzieje, ze opisalem to w miare jasno. Po tych operacjach DRI bedzie dzialalo na pewno, a sam X Server bedzie dzialal o wiele szybciej.
POWODZENIA I POZDRAWIAM