Konfiguracja serwera X
1.
Czym jest serwer X?
Środowisko graficzne kontra konsola
Przeciętny użytkownik boi się wpisywania poleceń. Znacznie prostsze wydaje mu
się wskazanie celu myszką i kliknięcie na nim odpowiednim przyciskiem. Czemu
zatem nie pozwolić im w Gentoo pracować właśnie w ten sposób? Cóż, pozwalamy im
na to. Linux posiada wiele świetnie wyglądających interfejsów i środowisk, które
każdy z użytkowników może zainstalować w celu usprawnienia pracy.
Jest to z pewnością jedna z największych niespodzianek dla nowych użytkowników,
kiedy okazuje się, że graficzny interfejs, którym się posługują jest jedynie
kolejną aplikacją działającą w systemie. Nie jest częścią jądra ani
żadnych innych ważnych wewnętrznych części systemu. Jest za to na pewno potężnym
narzędziem znacznie poszerzającym graficzne możliwości każdego komputera.
W związku z tym, że standardy są bardzo ważną rzeczą, utworzono także standard
rysowania i przemieszczania okien na ekranie, współpracy z użytkownikiem poprzez
myszkę i klawiaturę oraz innych podstawowych aspektów działania takiego
środowiska. Nazwano go systemem X Window, którego nazwę często skraca się
do zwrotu X11 lub po prostu X. System ten jest wykorzystywany na
platformach UNIX, Linux oraz na wielu innych do nich podobnych.
Opartą na standardzie X11 aplikacją, która pozwala użytkownikom Linuksa na
korzystanie ze środowiska graficznego jest Xorg-X11, który został jakiś czas
temu odłączony od projektu XFree86. Osoby rozwijające XFree86 zdecydowały się na
zmianę licencji na niekompatybilną z GPL, dlatego zalecamy korzystanie z
Xorg-X11. W oficjalnym drzewie Portage nie ma już ebuildów XFree86.
Projekt X.org
Projekt X.org to grupa osób, które stworzyły
i zarządzają ogólnodostępną i posiadającą otwarte źródła implementacją systemu
X11.
Xorg to interfejs pomiędzy sprzętem i programami graficznymi, które użytkownik
zamierza uruchomić. Jest to ponadto aplikacja mogąca działać w sieci i
umożliwiająca zdalne uruchamianie aplikacji graficznych z innych komputerów.
2.
Instalowanie Xorg
Przed instalacją Xorga należy skonfigurować dwie ważne zmienne w pliku
/etc/make.conf.
Pierwsza zmienna nazywa się VIDEO_CARDS i zawiera nazwy sterowników do
kart graficznych jakich zamierzamy używać. Najczęściej pojawiają się tu wpisy
nvidia dla kart Nvidia i fglrx dla kart ATI. Są to firmowe
sterowniki dostarczane przez producentów sprzętu. Użytkownicy preferujący
otwarte sterowniki powinni wpisać do zmiennej nv zamiast nvidia i
radeon zamiast fglrx. Użytkownicy sterownika nv muszą
jednak pamiętać, że jego użycie oznacza brak jakiegokolwiek przyspieszenia
sprzętowego. Otwarty sterownik radeon oraz radeonhd posiada pełną
obsługę 3D tylko dla starszych kart, a z nowymi nie współpracuje zbyt dobrze.
Zmienna VIDEO_CARDS może zawierać kilka nazw sterowników, ich lista
powinna być rozdzielona spacjami.
Druga zmienna ma nazwę INPUT_DEVICES i jest wykorzystywana do
zdefiniowania sterowników urządzeń wejścia jakich zamierza się używać. Zwykle
wystarcza wpis o treści keyboard mouse. Jeżeli używamy dodatkowych
urządzeń wejścia, takich jak na przykład touchpad firmy Synaptics, należy
pamiętać o dodaniu go do zmiennej INPUT_DEVICES.
Teraz należy zdecydować jakich sterowników zamierza się używać oraz dopisać je
do odpowiednich zmiennych w pliku /etc/make.conf:
Listing 2.1: Przykładowe wpisy w pliku make.conf |
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="nvidia"
VIDEO_CARDS="fglrx"
|
Więcej informacji na temat konfiguracji kart nVidii i ATI znajduje się w
tekstach Konfiguracja kart nVidia w
Gentoo i Praca z kartami ATI w
Gentoo. Można posłużyć się tymi tekstami w celu wybrania odpowiednich
sterowników do posiadanej karty.
Uwaga:
Sugerowane ustawienia dotyczą większości użytkowników, ale na pewno nie
zadziałają wszędzie. W takim przypadku należy wpisać polecenie emerge -pv
xorg-server, sprawdzić wszystkie możliwe ustawienia zmiennych i wybrać
odpowiednie dla posiadanego sprzętu sterowniki. Przykład dotyczy architektury
amd64 i xorg-server-1.2.
|
Listing 2.2: Wyświetlanie wszystkich dostępnych opcji |
# emerge -pv xorg-server
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] x11-base/xorg-server-1.2.0-r3 USE="dri nptl xorg (-3dfx) -debug
-dmx -ipv6 -kdrive -minimal -sdl -xprint" INPUT_DEVICES="keyboard mouse -acecad
-aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -evdev
-fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax
-penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse -void -wacom"
VIDEO_CARDS="nvidia -apm -ark -chips -cirrus -cyrix -dummy -epson -fbdev -fglrx
-glint -i128 (-i740) -i810 (-impact) (-imstt) -mach64 -mga -neomagic (-newport)
(-nsc) -nv -r128 -radeon -rendition -s3 -s3virge -savage -siliconmotion -sis
-sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)
-tdfx -tga -trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB
|
Po ustawieniu zmiennych można przystąpić do instalacji pakietu Xorg.
Listing 2.3: Instalowanie Xorg |
# emerge xorg-x11
|
Po zakończeniu procesu instalacji należy odświeżyć kilka zmiennych
środowiskowych przed przejściem do konfiguracji X. Służą do tego polecenia
env-update i source /etc/profile. W żaden sposób nie zakłócą one
normalnej pracy systemu.
Listing 2.4: Odświeżanie zmiennych środowiskowych |
# env-update
# source /etc/profile
|
3.
Konfigurowanie Xorg
Plik xorg.conf
Konfiguracja Xorg znajduje się w pliku o nazwie xorg.conf w
katalogu /etc/X11. Pakiet Xorg-X11 zawiera przykładowy plik
konfiguracyjny, /etc/X11/xorg.conf.example, który można
wykorzystać jako podstawę do tworzenia własnej konfiguracji. Znajduje się w
nim mnóstwo komentarzy, a jeszcze więcej informacji o jego składni można
znaleźć na jego stronie man.
Listing 3.1: Czytanie strony man xorg.conf |
# man 5 xorg.conf
|
Życzymy miłej lektury wszystkim, którzy przystąpili do czytania tego manuala,
a z resztą grupy przechodzimy do metod automatycznego generowania tego pliku.
Domyślnie: Automatyczna konfiguracja xorg.conf
Xorg jest w stanie samodzielnie wykryć parametry pracy. W większości
przypadków wystarcza później zmiana kilku linii dotyczących rozdzielczości,
aby poprawnie uruchomić środowisko. Więcej informacji o lepszym dostosowywaniu
pliku konfiguracyjnego do swoich potrzeb można znaleźć w zasobach wymienionych
na końcu tego tekstu. Po pierwsze utworzymy działający plik konfiguracyjny Xorg.
Listing 3.2: Generowanie pliku xorg.conf |
# Xorg -configure
|
Naprawdę warto przeczytać ostatnie linie wyświetlone na ekranie po tym jak
Xorg zakończy sprawdzanie sprzętu. Jeśli nie uda się to w którymś momencie,
konieczne będzie ręczne napisanie pliku xorg.conf. Jeśli jednak
automatyczna konfiguracja nie zawiedzie, zostanie utworzony plik
/root/xorg.conf.new gotów do testowania. I właśnie teraz zajmiemy
się jego testowaniem.
Listing 3.3: Testowanie pliku xorg.conf |
# X -config /root/xorg.conf.new
|
Jeśli wszystko pójdzie dobrze, pojawi się prosty czarno-biały obraz. Można
sprawdzić czy myszka działa poprawnie oraz czy rozdzielczość jest odpowiednia.
Jeśli pojawią się błędy dotyczące "/dev/mouse" należy zmienić adres urządzenia
myszki na /dev/input/mice we wpisie "InputDevice" pliku
xorg.conf. Jeśli chodzi o rozdzielczość, niełatwo zgadnąć jaka
dokładnie została ustawiona, ale na pewno zauważa się kiedy jest ona za niska.
Środowisko można zamknąć w dowolnym momencie za pomocą kombinacji klawiszy
Ctrl-Alt-Backspace.
Alternatywnie: Półautomatyczne generowanie xorg.conf
Xorg zawiera narzędzie o nazwie xorgconfig, które może przeprowadzić
użytkownika przez proces konfiguracji zadając mu serię pytań dotyczących
komputera (model karty graficznej, układ klawiszy klawiatury...). Program
opierając się na podanych odpowiedziach utworzy odpowiedni plik
xorg.conf.
Listing 3.4: Półautomatyczne generowanie pliku xorg.conf |
# xorgconfig
|
Inne narzędzie, również wchodzące w skład Xorg, xorgcfg, najpierw
uruchamia skrypt Xorg -configure, a następnie uruchamia serwer X w celu
przeprowadzenia dodatkowej konfiguracji.
Listing 3.5: Użycie xorgcfg |
# xorgcfg
# xorgcfg -textmode
|
Kopiowanie xorg.conf
Jeśli nie chcemy przy każdym uruchomieniu serwera X wpisywać polecenia X
-config, musimy przekopiować plik xorg.conf.new w miejsce
/etc/X11/xorg.conf. Dzięki temu znacznie uprościmy uruchamianie
serwera, wystarczające będzie wpisanie polecenia X lub startx.
Listing 3.6: Kopiowanie xorg.conf |
# cp /root/xorg.conf.new /etc/X11/xorg.conf
|
Używanie startx
Polecenie startx służy do uruchamiania serwera X. Jest to skrypt
uruchamiający sesję X, która zajmuje się uruchamianiem serwerów X, a na
nich innych aplikacji graficznych. Decyzja na temat tego jaka aplikacja
graficzna ma zostać uruchomiona jest podejmowana na zasadach następującego
algorytmu:
-
Jeśli w katalogu domowym użytkownika znajduje się plik o nazwie
.xinitrc to zostaną uruchomione polecenia znajdujące się w nim
-
Jeśli nie istnieje, zostanie odczytana zawartość zmiennej XSESSION i
zostaną uruchomione sesje z katalogu /etc/X11/Sessions/.
Zmienną XSESSION można skonfigurować w pliku /etc/rc.conf,
dzięki czemu stanie się ona domyślną dla wszystkich użytkowników danego
systemu.
-
Jeśli wszystko powyższe zawiedzie, zostanie uruchomiony domyślny prosty
menedżer okien o nazwie twm
Listing 3.7: Uruchamianie X |
# startx
|
Jeśli coś co pojawia się przed oczami użytkownika po wydaniu tego polecenia jest
bardzo brzydkie to najprawdopodobniej jest to właśnie twm. W celu
zakończenia sesji twm należy wpisać polecenie exit lub wcisnąć Ctrl-D w
jednym z terminali, które pojawią się po uruchomieniu serwera. Można również
bezpośrednio wyłączyć X session kombinacją klawiszy Ctrl-Alt-Backspace. Jest to
nie do końca czysta metoda, ale na pewno też nic nie zepsuje.
4.
Dodatkowa konfiguracja xorg.conf
Ustawianie rozdzielczości
Jeśli pojawia się nieodparte wrażenie, że rozdzielczość ekranu jest niewłaściwa,
trzeba sprawdzić dwie linie w pliku konfiguracyjnym. Przede wszystkim ważna jest
sekcja Screen zawierająca spis wszystkich dostępnych rozdzielczości, o
ile jakieś są dostępne, na których może działać serwer X. Domyślnie nie ma w
niej żadnego wpisu, a Xorg wylicza rozdzielczość na podstawie innej sekcji,
zatytułowanej Monitor.
Xorg sprawdza wartości HorizSync i VertRefresh w sekcji
Monitor i na ich podstawie wylicza właściwą rozdzielczość. Na razie
pozostawimy te ustawienia tak jak są. Jeśli znajdujące się nieco niżej
proponowane zmiany w sekcji Screen nie dadzą oczekiwanych rezultatów,
trzeba będzie sprawdzić w instrukcji monitora jego dokładne dane techniczne i
wpisać do pliku konfiguracyjnego ich poprawne wartości. Jest dostępne narzędzie,
które zostało napisane dla wyszukiwania wartości HorizSync i
VertRefresh, nazywa się sys-apps/ddcxinfo-knoppix.
Ostrzeżenie:
Nie należy wpisywać obu wartości dotyczących parametrów technicznych na
wyczucie, bez skonsultowania się z odpowiednią specyfikacją techniczną monitora.
Ich złe ustawienie prowadzi do błędów związanych ze złym zakresem synchronizacji
i może prowadzić nawet do spalenia się monitora.
|
Kolejny krok to zmiana rozdzielczości. W poniższym przykładzie wyciętym z pliku
/etc/X11/xorg.conf dodaliśmy wpisy Modes i
DefaultDepth, dzięki czemu serwer X będzie się uruchamiał z 24-bitową
głębią kolorów w rozdzielczości 1024x768. Co do poniższego wycinka nie należy go
przepisywać dosłownie, wartości niemal na pewno będą się różniły od tych
pożądanych w konkretnym przypadku.
Listing 4.1: Zmiany w sekcji Screen pliku /etc/X11/xorg.conf |
Section "Screen"
Identifier "Default Screen"
Device "S3 Inc. ProSavage KN133 [Twister K]"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
|
Na koniec testujemy czy zmiany dokonane w ustawieniach rozdzielczości były
prawidłowe, poprzez uruchomienie serwera X (poleceniem startx).
Konfigurowanie klawiatury
Aby skonfigurować w X ustawienie dotyczące międzynarodowej klawiatury, należy
udać się do sekcji InputDevice pliku konfiguracyjnego i dodać w niej
opcję XkbLayout z kodem pożądanego układu klawiatury. W przykładzie
pokażemy jak skonfigurować polski układ klawiszy. Wybranie innego jest prostą
sprawą, wystarczy wpisać w odpowiednim miejscu inny kod państwa.
Listing 4.2: Zmiana konfiguracji układu klawiszy |
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "pl"
EndSection
|
Konfigurowanie myszki
Jeśli myszka nie działa, po pierwsze trzeba sprawdzić czy została wykryta przez
jądro. Pliki urządzeń myszek to /dev/input/mouse0 (lub
/dev/input/mice - jeśli posiada się ich kilka). W niektórych
przypadkach korzysta się także z /dev/psaux. W każdym z przypadków
zmieniająca się w trakcie poruszania myszką zawartość pliku będzie świadczyła o
tym, że urządzenie działa poprawnie. Sama treść nie ma znaczenia, ważne, że coś
się zmienia przy poruszaniu myszką. Aby zakończyć test wystarczy wcisnąć
Ctrl-C.
Listing 4.3: Sprawdzanie plików urządzenia |
# cat /dev/input/mouse0
|
Jeśli myszka uparcie nie jest wykrywana, należy sprawdzić czy wszystkie
niezbędne moduły są załadowane.
Kiedy myszka wreszcie zostanie załadowana, należy wypełnić odpowiedni wpis dla
nazwy urządzenia w sekcji InputDevice. W poniższym przykładzie
skonfigurujemy dodatkowo jeszcze dwie opcje: Protocol (czyli nazwę
protokołu jaka ma być używana - dla większości użytkowników poprawny jest wpis
PS/2 lub IMPS/2) oraz ZAxisMapping (dającą możliwość korzystania z kółka
myszki (jeśli takie się posiada)).
Listing 4.4: Konfigurowanie myszki w Xorg |
Section "InputDevice"
Identifier "TouchPad Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "IMPS/2"
Option "ZAxisMapping" "4 5"
EndSection
|
Na koniec należy po prostu wpisać polecenie startx i cieszyć się jego
rezultatami :). Gratulujemy, serwer X działa teraz prawidłowo. Kolejnym
krokiem jest usunięcie tego brzydkiego domyślnego menedżera okien i
zainstalowanie jakiegoś znacznie bardziej użytecznego programu tego typu
(czasem nawet niemal kompletnego środowiska) takiego jak GNOME czy KDE. Nie
jest to już jednak tematem tego tekstu.
5.
Zasoby
Tworzenie i dostosowywanie xorg.conf
Po pierwsze należy zapoznać się z man xorg.conf, w którym znajdują się
kompletne informacje na temat składni pliku konfiguracyjnego. Warto mieć go
otwartego i konsultować się z nim podczas edycji pliku konfiguracyjnego.
Należy pamiętać o pliku /etc/X11/xorg.conf.example, który może
zostać przez nas użyty jako podstawa do napisania własnego pliku
xorg.conf.
Na stronie X.org znajdzie również FAQ, który jest ciekawym dodatkiem do
pozostałej dokumentacji dostępnej na stronie.
W sieci znajduje się wiele różnych opisów dotyczących konfigurowania pliku
xorg.conf. Poniżej wymienimy tylko kilka z nich, więcej można
znaleźć za pomocą Google. W związku z
tym, że pliki xorg.conf i XF86Config (plik dla systemu
XFree86) używają tej samej składni, można się posłużyć także informacjami i
dokumentacją dotyczącą XF86Config.
Inne zasoby
Po instalacji Xorga warto zapoznać się z innymi opisami dotyczącymi pracy z Gentoo na stacjach roboczych.
Znajdują się tam teksty opisujące konfigurację różnych pakietów środowiska X.
W przypadku aktualizacji xorg-server do wersji 1.5 z wcześniejszych należy
przeczytać przewodnik
migracji.
Materiał udostępniany na podstawie licencji Creative Commons -
Attribution / Share Alike.
|