Dlaczego jeden wygodny pakiet zmienił się w 300 mniejszych? Proces ten jest realizowany przez twórców X.Org. Rozdzielają oni wszystkie pakiety na pomniejsze, a my jedynie podążamy za nimi.
Powodów, dla których pakiet został podzielony i zmienił się sposób jego budowania budowania jest co najmniej kilka:
Aby stare pakiety nie wchodziły nam w drogę, najpierw pozbędziemy się starego xorg-x11, a dopiero potem zainstalujemy modularne X. Nie jest to niezbędne, ale ułatwi nam migrację.
Krok pierwszy: pozbycie się starego X
Tworzymy kopię bezpieczeństwa starego X, by mieć możliwość powrotu do wersji 6.x. Warto również zainstalować jakąś przeglądarkę internetową działającą w konsoli, taką jak na przykład links lub lynx. Przyda się ona do czytania tego opisu gdy środowisko X nie będzie dostępne.
Listing 2.1: Wykonanie kopii zapasowej starego xorg-x11 |
# emerge gentoolkit # quickpkg xorg-x11 |
Usuwamy starą, monolityczną instalację. W tym momencie należy wyłączyć serwer X, w innym wypadku podczas aktualizacji komputer się zawiesi.
Listing 2.2: Usuwanie monolitycznej instalacji |
# emerge -Ca xorg-x11 virtual/x11
|
Jeśli /usr/X11R6 nie jest dowiązaniem do /usr, usuwamy ten katalog i zaczynamy od początku. Najpierw jednak zapisujemy listę pakietów tam zainstalowanych.
Listing 2.3: Tworzenie listy pakietów |
# if [[ ! -L /usr/X11R6 ]]; \
then equery belongs /usr/X11R6 > ~/usr-x11r6-packages \
&& rm -rf /usr/X11R6; fi
|
Jeśli istnieje katalog /usr/lib/X11/xkb (/usr/lib64/X11/xkb dla użytkowników 64-bitowych procesorów), należy go usunąć wraz z całą zawartością. Inaczej nie zainstaluje się pakiet xkeyboard-config.
Krok drugi: instalacja modularnego X
Aby korzystać z Direct Rendering, należy aktywować dri we flagach USE. Standardowo powinna być włączona.
Następnie decydujemy, jakie sterowniki chcemy zainstalować. Są one zależne od naszej konfiguracji sprzętowej. Jeśli posiadamy sprawny plik /etc/X11/xorg.conf, wystarczy wykonać tylko poniższe polecenie, by dowiedzieć się jakich sterowników potrzebujemy:
Listing 2.4: Sprawdzanie potrzebnych sterowników |
# grep Driver /etc/X11/xorg.conf
Driver "kbd"
Driver "mouse"
Driver "radeon"
|
Listing 2.5: Checking available drivers |
# emerge --verbose --pretend xorg-x11
[ebuild R ] x11-base/xorg-x11-7.0-r1 USE="-xprint" INPUT_DEVICES="keyboard
mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300
-elographics -evdev -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics% -tek4957
-ur98 -vmmouse -void" VIDEO_CARDS="i128 mga radeon savage -apm -ark -chips
-cirrus -cyrix -dummy -fbdev -fglrx% -glint -i740 -i810 -imstt -mach64
-neomagic -newport -nsc -nv -nvidia% -r128 -rendition -s3 -s3virge
-siliconmotion -sis -sisusb -sunbw2 -suncg14 -suncg3 -suncg6 -sunffb -sunleo
-suntcx -tdfx -tga -trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB
|
INPUT_DEVICES i VIDEO_CARDS ustawiamy w /etc/make.conf, tak by odpowiadały naszej konfiguracji. Minimalne ustawienia dla powyższego przykładu byłby następujące: INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="radeon". Jeśli nie ustawimy pierwszej lub drugiej zmiennej, xorg-x11 zainstaluje wszystkie możliwe sterowniki tego typu. Jako sterowniki zapasowe, można dodać vesa i fbdev do VIDEO_CARDS.
Następnie instalujemy metapakiet. Spowoduje to instalację serwera X oraz najczęściej używanych aplikacji, dając nam do dyspozycji sprawną implementację X:
Listing 2.6: Instalacja modularnego metapakietu |
# emerge xorg-x11 # etc-update # revdep-rebuild # [[ -e ~/usr-x11r6-packages ]] && emerge $(<~/usr-x11r6-packages) |
Uwaga: Jeśli zależy nam na minimalnej instalacji, instalujemy po prostu xorg-server. Pakiet ten zawiera wszystko, co umożliwi uruchomienie serwera X. |
Należy pamiętać, że to polecenie spowoduje minimalną instalację i że rzeczy takie jak xcursor-themes, nie będą instalowane standardowo. Na przykład, jeśli zmienialiśmy nasz cursor na whiteglass, redglass lub handhelds, instalujemy xcursor-themes. Jeśli korzystaliśmy z kursora gentoo, gentoo-blue lub gentoo-silver, instalujemy gentoo-xcursor.
Uwaga: Jeżeli mamy zainstalowane modularne X, zewnętrzne sterowniki (takie jak nvidia-glx i wacom oraz niektóre aplikacje vnc) mogą nie działać, jeżeli instalują się do /usr/lib/modules zamiast do /usr/lib/xorg/modules. Wiele z nich będzie miało możliwość wykrywania modularnych X w procesie instalacyjnym, więc wymagają one jedynie przeinstalowania po instalacji modularnego X. Wiele z zewnętrznych sterowników posiada flagę USE dlloader, którą należy włączyć, a następnie przebudować sterowniki. |
'emerge -u world' chce instalować xorg-x11 6.x lub virtual/x11
Zdarza się to dlatego, że drzewo portage jeszcze nie jest w pełni przygotowane do obsługi modularnych zależności. Można nas w tym wspomóc, czytając opis przenoszenia programów na modularne X i nadsyłając poprawki do opiekunów poszczególnych pakietów. Opiekunowie są wymienieni w pliku metadata.xml w tym samym katalogu, w którym jest pakiet, a program herdstat pozwoli przyspieszyć ich wyszukiwanie.
Jeśli używamy modularnego X na systemie opartym o stabilną gałąź drzewa Portage, mogą wystąpić problemy. Wiele pakietów działa z modularnymi X tylko w wersjach niestabilnych, więc możliwe jest, że niezbędne będzie dodanie niektórych pakietów do /etc/portage/package.keywords.
Co się stało ze wszystkimi flagami USE?
Wiele flag USE z xorg-x11-6.8 zniknęło, kilka zostało przeniesionych na 7.0. Pojawiło się również kilka nowych.
| Flaga USE | Co się z nią stało w X 7.0? |
| 3dfx | W 7.0 powoduje dopisanie glide-v3 do zależności pakietu X |
| 3dnow, mmx, sse | Te flagi są standardowo włączone w czasie budowania pakietu, ponieważ ich obsługa jest sprawdzana w momencie uruchomienia. |
| bitmap-fonts, truetype-fonts, type1-fonts | Metapakiet xorg-x11 instaluje tylko niewielką ilość najczęściej używanych i wymaganych czcionek. Można samodzielnie zainstalować dodatkowe czcionki z katalogu media-fonts/. |
| cjk | Należy zainstalować font-misc-misc i font-sony-misc z włączoną flagą nls, by uzyskać japońskie czcionki w JISX0201. Więcej znajduje się w pakiecie font-jis-misc. Chińskie czcionki są w font-isas-misc, koreańskie w font-daewoo-misc. |
| dlloader | X 7.0 standardowo używa dlloader, a elfloader nie działa |
| doc | Przeniesione do app-doc/xorg-docs |
| dmx | Wbudowane w xorg-server, o ile nie użyto flagi minimal |
| font-server | Można samodzielnie doinstalować xfs |
| ipv6 | Przeniesiono do oddzielnych pakietów korzystających z ipv6. Można również uruchomić flagę globalnie, jeśli zachodzi taka potrzeba. |
| minimal | By uzyskać ten sam efekt należy zainstalować pakiet xorg-server zamiast metapakietu xorg-x11. By uniknąć budowania Xdmx, Xvfb i Xnest można włączyć flagę minimal w xorg-server. Jeśli potrzebujemy czegoś jeszcze mniejszego, warto zainteresować się x11-base/kdrive. |
| nls | W 7.0 użycie flagi nls powoduje instalację wszystkich wersji czcionek różnych od ISO-8859-1. |
| nocxx | Nie ma jeszcze swojego odpowiednika w X 7.0 |
| opengl | Zmienia nazwę na "dri" i wciąż uruchamia Direct Rendering w xorg-server i wielu sterownikach. Niezależnie czy DRI jest włączona, czy nie, wciąż jest zapewnione programowe wsparcie 3D przy pomocy Mesa. |
| pam | Przeniesione do indywidualnych pakietów korzystających z pam, takich jak xorg-server i xdm |
| sdk | X 7.0 musi zainstalować SDK, w konsekwencji modularyzacji |
| static | Nie ma sensu budować statycznego serwera, jeżeli cała reszta jest modularna, ponieważ sterownik by sobie z tym nie poradził. |
| xprint | Metapakiet instaluje libXp. W innych aplikacjach uruchamia wsparcie dla xprint. Większość osób nie chce tego uruchamiać. |
| xv | Przestała być opcjonalna, ponieważ nie zaoszczędza zbyt wiele miejsca i powoduje problemy z pakietami oczekującymi, że ta flaga będzie włączona. |
Co się stało z plikami konfiguracyjnymi?
W pakiecie X.Org 6.8 znajdującym się w drzewie, wszystkie pliki konfiguracyjne i skrypty umieszczone były w katalogu /etc/X11. W modularnym X.Org jego deweloperzy zmienili lokalizacje tych plików, przez co pliki konfiguracyjne znajdują się dalej w katalogu /etc/X11 natomiast skrypty i domyślne konfiguracje zostały umieszczone w katalogu /usr/lib/X11 (lub /usr/lib64/X11) i /usr/share/X11.
Ponieważ posiadamy zabezpieczenie plików konfiguracyjnych (CONFIG_PROTECT), wszystkie nasze pliki z X.Org 6.8 prawdopodobnie cały czas będą w katalogu /etc/X11.
Ponieważ katalogi te nie znajdują się w zmiennej CONFIG_PROTECT, ważnym jest, aby każde zmiany przeprowadzane na domyślnych plikach konfiguracyjnych były robione poprzez przekopiowanie odpowiednich plików do katalogu /etc/X11, a wszelkie ich aktualizacje były przeprowadzane w tym katalogu. Drugim, lecz nie zalecanym, sposobem jest dodanie nowych lokalizacji do zmiennej CONFIG_PROTECT. Poniżej prezentujemy dwa przykłady:
Listing 3.1: Dostosowywanie procesu uruchamiania XDM-a |
Należy, przekopiować plik Xsetup_0 do katalogu /etc tak, aby był chroniony. # cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/ Plik edytujemy dostosowując go do własnych potrzeb. Następnie, edytujemy xdm-config aktualizując ścieżki do tego pliku. # nano /etc/X11/xdm/xdm-config Zmieniamy następujące linijki: ! The following three resources set up display :0 as the console. DisplayManager._0.setup: /usr/lib/X11/xdm/Xsetup_0 DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole ...na takie: ! The following three resources set up display :0 as the console. DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0 DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole |
Uwaga: Na systemach korzystających z bibliotek 64-bitowych, potrzebna będzie zmiana lib na lib64. |
W tym przykładzie dodanym przez Joe Womacka, zajmiemy się zmianami ustawień xterm. Można to zrobić globalnie lub dla konkretnego użytkownika.
Listing 3.2: Dostosowywanie app-defaults/XTerm-color globalnie |
Podobnie jak w przykładzie powyżej, tworzymy kopię pliku w /etc ponieważ jest on chroniony przed zapisem: # cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/ Przerabiamy plik według naszych potrzeb. Następnie należy skonfigurować ścieżkę dostępu XFILESEARCHPATH dla Xt. Należy to zrobić w pliku znajdującym się w katalogu /etc/env.d: # echo '# To wprowadza zmiany dla całego systemu.' >> /etc/env.d/10xpaths # echo 'XFILESEARCHPATH=/etc/X11/%T/%N:/usr/share/X11/%T/%N' >> /etc/env.d/10xpaths |
Listing 3.3: Dostosowywanie app-defaults/XTerm-color lokalnie |
Istnieją dwa sposoby na dokonanie tego: 1) Ustawić katalog app-defaults dla użytkownika # echo '# To wprowadza zmiany dla użytkownika w $HOME/app-defaults' >> /etc/env.d/10xpaths # echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths 2) Stworzyć plik .Xdefaults lub .Xresources kopiując ustawienia, które chcemy zmienić. Ten przykład zmienia kolor kursora wszystkich Xtermów na pomarańczowy, uruchamiany jako powłoka logowania, dodaje dekorację paska przewijania, i buffer przewijania o wielkości 1000 linii wstecz: # echo '! Xterm defaults' >> .Xresources # echo 'XTerm*CursorColor: orange' >> .Xresources # echo 'XTerm*loginShell: true' >> .Xresources # echo 'XTerm*scrollBar: true' >> .Xresources # echo 'XTerm*saveLines: 1000' >> .Xresources Następnie należy zrestartować X lub wpisać poniższe polecenie, aby zmiany odniosły skutek. # xrdb -merge $HOME/.Xresources |
Uwaga: Aby dowiedzieć się więcej o XFILESEARCHPATH i XUSERFILESEARCHPATH należy zapoznać się z dokumentem dostępnym pod adresem http://www.faqs.org/faqs/x-faq/part2/section-22.html. Aby zasięgnąć dalszych informacji o pliku .Xresources należy przejrzeć http://tldp.org/HOWTO/XWindow-User-HOWTO/moreconfig.html#XRESOURCES. |
Zgłaszano nam, że:
Ponowne uruchomienie akceleracji 3D
Programy te, zawarte są w pakiecie x11-apps/mesa-progs. mesa-progs jest instalowane przez pakiet x11-base/xorg-x11 automatycznie.
Listing 3.4: Włączanie informacji diagnostycznych |
# grep -e EE -e WW /var/log/Xorg.0.log # LIBGL_DEBUG=verbose glxinfo |
Automatyczne wykrywanie protokołu myszki
Opcja "Protocol" "auto" w xorg.conf dla naszej myszy, może nie zadziałać. Należy ustawić "Protocol" "ExplorerPS/2" lub "IMPS/2" by działało kółko myszki.
Pojawiają się błędy dotyczące braku libbitmap lub libpcidata
Należy się upewnić, że żaden wpis ModulePath nie istnieje w /etc/X11/xorg.conf.
Jeżeli instalowaliśmy modularne X na nowej instalacji Gentoo, w systemie może nie być obecne dowiązanie symboliczne /usr/X11R6 -> /usr. Pakiet x11-base/xorg-x11 upewni się, czy symlink istnieje podczas procesu instalacji.
Można nas wesprzeć w poprawianiu pakietów instalujących się w /usr/X11R6 poprzez tworzenie poprawek i nadsyłanie nam ich.
Listing 3.5: Pakiety, które instalują się w /usr/X11R6 |
# cat ~/usr-x11r6-packages # emerge --pretend $(< ~/usr-x11r6-packages ) |
XKB nie działa, nie można zmienić VT, itd.
Listing 3.6: Odszukiwanie zmian w XKB |
Przeszukujemy /var/log/Xorg.0.log w poszukiwaniu tej informacji: (WW) Couldn't load XKB keymap, falling back to pre-XKB keymap Jeśli ten błąd się nie pojawia, znaczy to, że XKB działa prawidłowo. # grep Xkb /etc/X11/xorg.conf Option "XkbModel" "logibik" Option "XkbLayout" "dvorak" Option "XkbOptions" "ctrl:swapcaps" Po pierwsze, należy zobaczyć co zmieniło się w naszym układzie. Znajduje się to w katalogu symbols/pc directory. # cd /usr/share/X11/xkb/symbols/ Jeśli zainstalowaliśmy xkbdata zamiast xkeyboard-config, szukamy w katalogu pc/. # ls *dvorak* Nic się nie pokazało. # ls *us* us Następnie szukamy wiariantu xkb_symbols o nazwie dvorak. # grep xkb_symbols.*dvorak us xkb_symbols "dvorak" { To oznacza, że w xorg.conf potrzebujemy Option "XkbLayout" "us" i Option "XkbVariant" "dvorak". Jeśli próbujemy sprawdzić te ustawienia przy użyciu setxkbmap i wciąż otrzymujemy błąd # setxkbmap -model logibik -layout us -variant dvorak -option "ctrl:swapcaps" Może to oznaczać, że model klawiatury również uległ zmianie # cd /usr/share/X11/xkb/rules/ # grep logibik xorg.lst Jeśli nic się nie pojawia po wydaniu powyższej komendy, oznacza to, że dany model został usunięty. Można sprawdzić inne, jemu podobne: # grep logi* xorg.lst logiaccess Logitech Access Keyboard logicdit Logitech Cordless Desktop iTouch logicdp Logitech Cordless Desktop Pro logicdpa Logitech Cordless Desktop Pro (alternate option) logicdpa2 Logitech Cordless Desktop Pro (alternate option2) logicdo Logitech Cordless Desktop Optical logicfn Logitech Cordless Freedom/Desktop Navigator logicdn Logitech Cordless Desktop Navigator logidak Logitech Deluxe Access Keyboard logiitc Logitech iTouch Cordless Keyboard (model Y-RB6) logiik Logitech Internet Keyboard logiitc Logitech iTouch Cordless Keyboard (model Y-RB6) logiik Logitech Internet Keyboard logiink Logitech Internet Navigator Keyboard logiultrax Logitech Ultra-X Keyboard Model "logiik" wygląda podobnie, więc sprawdzamy go przy użyciu setxkbmap. # setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps" Jeśli powyższe zadziałało, zmieniamy wpis XkbModel. Po zakończeniu, wszystko powinno działać |
Materiał udostępniany na podstawie licencji Creative Commons - Attribution / Share Alike.