Gentoo Logo

Konfiguracja serwera X

Spis treści:

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

(Obsługa klawiatury i myszki)
INPUT_DEVICES="keyboard mouse"
(Dla kart Nvidia)
VIDEO_CARDS="nvidia"
(LUB, dla kart ATI Radeon)
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
(Jeśli X nie uruchamia się prawidłowo lub konfiguracja się nie udaje, należy użyć poniższego polecenia)
# 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
  # Wycinamy kawałek tekstu w celu zwiększenia czytelności
  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
(Na koniec należy wcisnąć CTRL-C)

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.



Drukuj

Zaktualizowano 14 kwietnia 2009

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 24 lipca 2012. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Podsumowanie: Xorg to serwer X pozwalający użytkownikom na korzystanie z aplikacji w środowisku graficznym. Ten tekst wyjaśnia czym jest Xorg oraz omawia proces jego instalacji i konfiguracji.

Sven Vermeulen
Autor

Joshua Saddler
Redaktor

Łukasz Damentko
Tłumaczenie

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.