Część czwarta
Graficzne interfejsy użytkownika
W tej części:
Instalacja i konfiguracja XFree86
Wabi
Ghostscript i Ghostview
Rozdział 22.
Instalacja i konfiguracja XFree86
Tim Parker
W tym rozdziale:
Co to jest XFree86?
Dystrybucja oprogramowania XFree86
Konfiguracja XFree86
Pliki Xconfig i XF86Config
Plik .xinitrc
Większość użytkowników Linuxa chce używać wchodzącego w skład wielu dystrybucji systemu X, który udostępnia graficzny interfejs użytkownika. Wersja rozprowadzana z Linuxem została zaprojektowana w MIT i nazywa się XFree86. Jest ona dostępna również dla niektórych innych platform UNIX-owych. Jest przystosowana do współpracy z wieloma urządzeniami instalowanymi w komputerach PC.
Na rynku istnieją przynajmniej dwie główne wersje systemu XFree86 dla Linuxa: w skład niektórych dystrybucji wchodzi wersja 2.X, która jest nieco starsza od wersji 3.X oferowanej w większości nowszych dystrybucji. W tym rozdziale przyjrzymy się instalowaniu i konfigurowaniu obu tych wersji, choć większość przykładów dotyczyć będzie wersji 3.X.
|
Ważne jest, byś zrozumiał cały proces instalacji XFree86 przed jego rozpoczęciem. W niektórych przypadkach nieprawidłowa konfiguracja może skończyć się nawet uszkodzeniem sprzętu (konkretnie monitora lub karty graficznej). |
Co to jest XFree86?
XFree86 to dostępna na licencji public domain wersja systemu X11, zaprojektowana przez MIT. Prawa autorskie do niej posiada MIT Consortium. Ze względu na to, że twórcy systemu Linux starają się, aby w skład systemu nie wchodziły elementy wymagające posiadania odrębnej licencji, nie jest ona częścią systemu operacyjnego. Działa na komputerach klasy PC nie tylko pod kontrolą Linuxa, ale i z innymi systemami UNIX-owymi.
Obecnie spotyka się kilka wersji XFree86. Najpopularniejsze są wersje 2.X, oparte na standardzie X11 Release 5 (w skrócie X11R5). Najnowsze wersje mają numery 3.X i oparte są na X11 Release 6 (X11R6). Wersje o innych numerach pobocznych to przeważnie wersje poprawione i nieznacznie zmienione; mogą być one instalowane tylko na istniejącą już wersję o takim samym numerze głównym. Przykładowo, jeśli posiadasz wersję XFree86 v2.1 i załadowałeś z Internetu wersję 2.1.1, musisz ją instalować na istniejącej wersji 2.1, a nie jako samodzielny system, ponieważ wersje te nie zawierają wszystkich plików potrzebnych do działania systemu.
|
Nie używaj wersji XFree86 o numerze 2.0. Zawiera ona kilka poważnych błędów. Zamiast niej użyj wersji 2.1 lub 2.1.1. Wersje 1.0 nie są nawet w połowie tak przyjemne w obsłudze i stabilne jak 2.X i 3.X, więc ich również nie powinieneś używać. |
Teraz trochę o terminologii. Oficjalną nazwą omawianego interfejsu graficznego jest X. Często i niepoprawnie nazywa się go również X Window lub X Windows (co zdecydowanie zbyt mocno pachnie produktami firmy Microsoft). Zwykle terminy X, X11, XFree86 i X Window mogą być używane zamiennie, ale raczej wystrzegaj się nazwy X Windows. Jej użycie jest jednym z prostszych sposobów rozzłoszczenia weterana systemów UNIX-owych i pokazania się z nie najlepszej strony.
Na początku powstawania systemu XFree86 narosło wokół niego kilka problemów, głównie z powodu braku dostatecznie szczegółowych informacji z X Consortium (instytucji kontrolującej standard X). By je rozwiązać, zawiązano instytucję o nazwie XFree86 Project Inc., która weszła w skład X Consortium, co pozwoliło na dostęp do informacji o nowych wersjach standardu X jeszcze przed ich opublikowaniem. XFree86 jest teraz znakiem handlowym XFree86 Project Inc.
Wiele linuxowych wersji XFree86 zawiera katalogi i odniesienia do produktu o nazwie X386. Była to wcześniejsza wersja X11R5 dla komputerów PC. W spadku po niej XFree86 przejął nazewnictwo plików i katalogów. Są to dziś jednak dwa zupełnie oddzielne systemy.
XFree86 wymaga co najmniej 8 MB pamięci RAM i 16 MB całkowitej pamięci wirtualnej. Innymi słowy, jeśli posiadasz 8 MB pamięci RAM, potrzebujesz jeszcze co najmniej 8 MB partycji wymiany. Jeśli posiadasz 16 MB RAM-u, użycie partycji wymiany nie jest konieczne, ale jest zalecane ze względów bezpieczeństwa, szczególnie jeśli zamierzasz używać aplikacji wymagających dużych ilości pamięci. Jeśli planujesz wykorzystywać system X naprawdę intensywnie, powinieneś mieć w swoim systemie co najmniej 32 MB pamięci wirtualnej (najlepiej co najmniej 16 MB fizycznej pamięci RAM i co najmniej 16 MB partycji wymiany).
Wersje 2.X systemu XFree86 mogą być skonfigurowane tak, by działały już przy 4 MB pamięci RAM, lecz zarówno konfiguracja, jak i późniejsze działanie są wolne i raczej nie warto zawracać sobie nimi głowy. Wersje 3.X nie działają poprawnie przy 4 MB RAM-u (tzn. da się je uruchomić, ale działają tak wolno, że trudno to nazwać działaniem poprawnym). Działają dobrze już przy 8 MB pamięci RAM, ale zalecane jest 16 lub 32 MB.
Dystrybucja oprogramowania XFree86
Większość wersji XFree86 dostarczanych jest jako część dystrybucji Linuxa na płytach CD-ROM. W tym rozdziale przyjmiemy, że posiadasz właśnie taki CD-ROM (choć podane dalej informacje stosują się również prawie w całości do wersji rozprowadzanych przez sieć czy na dyskietkach).
Oprogramowanie XFree86 zwykle umieszczane jest w katalogach o nazwach x1, x2, x3 itd. lub w archiwach o podobnych nazwach. Aplikacje dla tego systemu umieszczane są w katalogach xap1, xap2 itd. lub też w archiwach, których nazwy zaczynają się od litery X. Zwykle w każdym katalogu znajduje się plik tekstowy opisujący zastosowanie zawartych w nim plików.
Zanim zainstalujesz system X, powinieneś sprawdzić, czy będzie on działał poprawnie z już zainstalowanym oprogramowaniem. Zwykle wymagana jest odpowiednia wersja jądra, biblioteki libc oraz ld.so. Plik tekstowy dołączony do dystrybucji powinien rozwiać wszystkie wątpliwości. Jeśli instalujesz system X dostarczony na tym samym CD-ROM-ie, co reszta systemu, możesz spokojnie darować sobie sprawdzanie wersji.
Oprogramowanie może zostać zainstalowane ręcznie przez rozpakowanie każdego z archiwów. Rozpakowane pliki muszą znaleźć się w określonych katalogach. Jest to jednak długotrwały i nużący proces, o wiele wygodniej jest więc użyć programu instalacyjnego, takiego jak setup.
Katalogi używane przez wersje 2.X systemu XFree86 pokrywają się w zasadzie z tymi używanymi w X386. W większości systemów katalogiem głównym jest /usr/X386. Aby zachować spójność, wersje X11R5 i X11R6 zwykle tworzą odpowiednie dowiązania, dzięki czemu pliki mogą zawsze zostać łatwo zlokalizowane.
|
Wersje 3.X nie znajdują się już w katalogu /usr/X386. Zostały przeniesione do katalogu o nazwie /usr/X11R6. Jeśli uaktualniasz starszą wersję X, pamiętaj o tym i po instalacji albo utwórz odpowiednie dowiązania, albo całkowicie usuń starą wersję. Pamiętaj też o zmianie ścieżek przeszukiwania. |
|
Aby uprościć i ujednolicić strukturę katalogów, zwykle tworzone jest dowiązanie o nazwie usr/X11, wskazujące na katalog zawierający system X. Sprawdź, jakie dowiązania są stworzone w Twoim systemie, sprawdź również czy zmienna środowiskowa PATH zawiera odniesienie do tego katalogu. |
Wybór serwera X
Przed zainstalowaniem systemu XFree86 musisz zdecydować, jakiego typu serwera będziesz używał. Serwery XFree86 to rodzaj sterowników dla kart graficznych. Wybór złego typu sterownika może spowodować nieprawidłowe zachowanie się systemu (a w niektórych przypadkach nawet uszkodzenie karty graficznej lub monitora). Upewnij się więc, że wybrany sterownik odpowiada zainstalowanemu w Twoim komputerze sprzętowi.
Istnieje kilka typów serwerów XFree86, a ich nazwy mówią, dla jakich typów kart graficznych są one przeznaczone. Wraz z większością wersji dostępne są serwery obsługujące następujący sprzęt:
XF86_Mono monochromatyczne karty graficzne (serwer ogólny);
XF86_VGA16 16 kolorowe karty VGA (serwer ogólny);
XF86_SVGA kolorowe karty SVGA (serwer ogólny);
XF86_S3 akcelerowany serwer dla kart opartych na S3;
XF86_Mach8 akcelerowany serwer dla kart opartych na Mach8;
XF86_Mach32 akcelerowany serwer dla kart opartych na Mach32;
XF86_8514 akcelerowany serwer dla kart opartych na 8514/A.
Serwery ogólne nie zawierają instrukcji specyficznych dla jakiegoś rodzaju kart, powinny więc działać ze wszystkimi kartami spełniającymi dane założenia. Na przykład, serwer XF86_S3 zawiera kod, który działa poprawnie tylko w przypadku użycia karty opartej na układach S3. Zajrzyj do dokumentacji swojej karty graficznej (lub użyj jakiegoś programu diagnostycznego), aby dowiedzieć się, jakie układy zainstalowane są w Twojej karcie. Zdarza się, że do wersji XFree86 dołączone są również inne typy serwerów, więc powinieneś poszukać w ich dokumentacji informacji o kompatybilności z używanym przez Ciebie sprzętem.
Serwery ogólne działają z większością kart obsługujących standard VGA i SVGA. Ponieważ zawierają one tylko najbardziej podstawowe instrukcje pozwalające na komunikowanie się z kartą, nie będą dostępne żadne rozszerzenia oferowane przez dany model karty. Z tego właśnie powodu opracowane zostały serwery akcelerowane, specyficzne dla określonego typu urządzeń, ale za to pozwalające wykorzystać w pełni ich możliwości.
|
Zainstalowanie nieprawidłowego sterownika karty graficznej może spowodować uszkodzenie jej i monitora! Jeśli nie masz pewności, którego serwera powinieneś użyć, użyj jednego z typów ogólnych. Większość modeli kart graficznych potrafi z nimi bez problemów współpracować. |
Większość dystrybucji XFree86 zawiera predefiniowane w plikach konfiguracyjnych ustawienia dla standardowych kart VGA. Są to ustawienia bezpieczne, ale mimo wszystko powinieneś przejrzeć pliki konfiguracyjne przed pierwszym uruchomieniem systemu X.
Nazwa używanego serwera jest zmieniana przez modyfikację dowiązania symbolicznego o nazwie /usr/X386/bin/X. Możesz w każdej chwili zmienić typ serwera przez określenie nowej nazwy pliku, na który dowiązanie to będzie wskazywać. Przykładowo: jeśli używasz serwera VGA, a w systemie zainstalowana jest karta SVGA, możesz zmienić serwer za pomocą poleceń:
rm /usr/X386/bin/X
ln -s /usr/X386/bin/XF86_SVGA /usr/X386/bin/X
Pierwsze polecenie usuwa istniejące dowiązanie, drugie tworzy je na nowo, z tym że teraz wskazuje ono na serwer /usr/X386/bin/XF86_SVGA. Nazwy katalogów mogą być nieco inne, w zależności od używanej wersji (jeśli utworzone zostały odpowiednie dowiązania, nie ma to żadnego znaczenia).
Ręczna instalacja XFree86
Jak wspomniano wcześniej, system XFree86 może zostać zainstalowany ręcznie. Dzięki temu możliwe jest umieszczenie plików w innych niż domyślne lokalizacjach. Niektórzy użytkownicy przeprowadzają instalację ręczną, ponieważ pozwala im ona zorientować się dokładnie, co dzieje się w każdym jej etapie. Jest to doskonała metoda na poznanie systemu XFree86 w całej jego złożoności, ale może zabrać naprawdę dużo czasu.
Aby ręcznie zainstalować system X, musisz rozpakować odpowiednie archiwa do właściwych katalogów poleceniem gzip. Proces ten nie jest skomplikowany.
Zaloguj się jako root.
Utwórz katalog /usr/X386. Może on już istnieć - niektóre programy instalacyjne tworzą go automatycznie.
Przejdź do katalogu /usr/X386.
Za pomocą poleceń gzip i tar rozpakuj i zainstaluj wszystkie pliki wchodzące w skład pakietu X. Składnia polecenia, które należy wydać w tym celu, jest następująca:
gzip -dc rozpakowywany_plik | tar xvof -
Powtórz ten proces dla każdego ze składników pakietu X, który chcesz zainstalować. Będziesz tym celu musiał przejść do każdego z katalogów wchodzących w skład dystrybucji i rozpakować wszystkie zawarte w tych katalogach archiwa.
Opcje programu tar użyte w podanym wyżej poleceniu powodują, że plikom przypisywany jest odpowiedni właściciel oraz że na ekranie wyświetlane są dodatkowe informacje. Po rozpakowaniu wszystkich plików do odpowiednich katalogów możesz kontynuować proces konfiguracji.
Instalowanie XFree86 za pomocą skryptu
Większość użytkowników preferuje jednak instalację automatyczną. Jest to metoda szybsza i mniej podatna na błędy. Z tego powodu większość dystrybucji oprogramowania X zawiera odpowiednie programy instalujące.
Program instalacyjny systemu Linux zwykle daje możliwość automatycznego zainstalowania XFree86. Jeśli zdecydowałeś się na takie rozwiązanie, wszystkie pliki są już na właściwych miejscach. Jeśli podczas instalacji nie miałeś możliwości zdecydowania, czy chcesz zainstalować system X, odpowiednie pliki mogły zostać zainstalowane automatycznie. Sprawdź, czy w katalogach /usr/X386/bin lub /usr/X11R5/bin znajdują się pliki. Jeśli jest ich tam dość sporo, oznacza to, że system X został zainstalowany.
Nawet jeśli system XFree86 został zainstalowany automatycznie, nie oznacza to, że można go już używać. Należy go jeszcze odpowiednio skonfigurować za pomocą takich, programów jak ConfigFX86 czy fx86config, lub też edytując ręcznie plik Xconfig albo XF86Config (w zależności od wersji XFree86). W przypadku instalacji automatycznej pliki te są zwykle skonfigurowane tak, by można było uruchomić system X z kartami VGA lub SVGA, nie zaszkodzi jednak sprawdzić, jakie dane znajdują się w tych plikach przed uruchomieniem XFree86.
Zmienna środowiskowa PATH
Ważne jest, by pliki wykonywalne systemu X były dostępne w ścieżce przeszukiwania, określonej wartością zmiennej path lub PATH (w zależności od interpretera poleceń). Miejsce, w którym znaleźć można definicję tej zmiennej, również zależy do tego, jakiego interpretera poleceń używasz. Do definicji tej zmiennej należy dodać katalogi /usr/X386/bin (dla wersji 2.X) albo /usr/X11R6/bin (dla wersji 3.X).
Przykładowo, jeśli używasz powłoki bash, polecenia inicjalizujące zmienne środowiskowe zapisane są w pliku .profile znajdującym się w katalogu domowym każdego użytkownika. Jeśli jesteś zalogowany jako root, możesz również posiadać własną kopię tego pliku lub używać systemowego pliku domyślnego /etc/profile (nazwa tego pliku nie zaczyna się od kropki - konwencja ta oznacza, że ten plik konfiguracyjny jest dostępny dla wszystkich użytkowników).
Jeśli katalog zawierający pliki wykonywalne systemu X nie wchodzi w skład definicji ścieżki przeszukiwania, należy ją zmodyfikować. Przykładowy wpis w pliku .profile może wyglądać tak:
PATH="/sbin:/usr/bin:/bin:/usr/X11/bin:/usr/openwin/bin"
Składnia polecenia definiującego ścieżki przeszukiwania jest nieco inna w przypadku powłoki tcsh. Plikiem konfiguracyjnym tego interpretera jest plik o nazwie .login lub .csh.login, a odpowiednie polecenie ma postać:
set path = ( /sbin /usr/bin /bin /usr/X11/bin /usr/openwin/bin . )
Oczywiście nazwy katalogów w Twoim systemie mogą być nieco inne od przykładowych, ale po tym, jak dodasz do nich ścieżkę dostępu do katalogu XFree86 i zalogujesz się ponownie, pliki wykonywalne systemu X powinny być dostępne dla interpretera poleceń.
Konfigurowanie XFree86
Zanim będzie można uruchomić XFree86, należy wprowadzić jeszcze kilka informacji konfiguracyjnych. Jest to część procesu instalacji sprawiająca użytkownikom najwięcej kłopotów, a poprawne wprowadzenie wszystkich danych do plików konfiguracyjnych tak, by system X działał bez zarzutu, może być dość złożone. Poniżej zamieścimy więc instrukcje pozwalające krok po kroku przejść przez ten proces.
Wraz z wieloma dystrybucjami Linuxa dostarczany jest program ConfigFX86 lub fx86config. Upraszcza on znacząco proces konfiguracji, o ile w systemie zainstalowany jest jeden z obsługiwanych modeli kart graficznych. Ich lista dostępna jest w pliku Hardware HOWTO. Jeśli plik taki nie został dołączony do dystrybucji, której używasz, możesz zdobyć go w większości węzłów FTP i BBS. Upewnij się, że plik dotyczy używanej przez Ciebie wersji Linuxa. Więcej informacji o programach ConfigFX86 i fx86config znaleźć możesz w podrozdziale Używanie programów ConfigFX86 i fx86config” (w niektórych przypadkach możesz również podać tym programom dość informacji, by skonfigurowały X do współpracy z kartą, która nie jest obsługiwana - ten temat omówiony jest dokładniej w następnym podrozdziale).
Jeśli Twoja karta nie jest wyszczególniona w pliku Hardware HOWTO, a nie chcesz używać sterowników ogólnych, musisz skonfigurować system XFree86 ręcznie. Nawet jeśli uda Ci się zaprzęgnąć do tego wymienione wyżej programy, możliwe, że i tak konieczne będzie wprowadzenie pewnych modyfikacji do plików konfiguracyjnych.
Dane konfiguracyjne systemu X w wersji 2.X zapisane są w większości w pliku Xconfig, natomiast wersje 3.X używają do tego celu plików Xconfig lub XF86Config. Niestety, dokumentacja dotycząca zawartych w tych plikach ustawień jest rozrzucona po kilku plikach. W większości przypadków powinieneś zajrzeć do plików README, VideoModes.doc, README.Config oraz README.Linux. Powinieneś również przeczytać strony man dotyczące programów Xconfig, XF86Config, XFree86 i XFree86kbd. Na koniec powinieneś jeszcze przejrzeć strony man dotyczące serwera, którego zamierzasz użyć (wydrukowanie dokumentacji ułatwi Ci dostęp do niej).
Jeśli chcesz skompletować dane potrzebne do skonfigurowania plików Xconfig i XF86Config, musisz znać następujące informacje:
rodzaj serwera, którego zamierzasz używać;
typ myszki przyłączonej do komputera i port, do którego jest ona podłączona;
model karty graficznej i typ zastosowanych w niej układów (chipset); jeśli nie wiesz, jakie układy zainstalowane są na karcie graficznej, poszukaj odpowiednich informacji w dokumentacji karty lub uruchom jakiś program diagnostyczny (np. SuperProbe dla Linuxa lub MSD dla systemu DOS);
marka i model monitora, którego używasz, oraz jego wielkość; dobrze jest również znać maksymalne dopuszczalne częstotliwości odświeżania poziomego i pionowego, które zwykle są podane w instrukcji obsługi;
typ używanej klawiatury - jeżeli jest to klawiatura „inna niż wszystkie”; większość użytkowników posiada klawiatury w standardzie U.S, ale zdarzają się też inne modele.
Jeśli nie posiadasz którejś z tych informacji i nie potrafisz ich zdobyć, powinieneś przejrzeć dokumentację dostarczaną z XFree86, umieszczoną zwykle w katalogu /usr/ X11/lib/X11/doc (który może być dowiązaniem do katalogu /usr/X386/lib/X11/doc lub /usr/X11R6/lib/X11/doc). Zawiera ona informacje o wielu typach kart graficznych i monitorów wraz z prawidłowymi danymi konfiguracyjnymi (takimi jak na przykład częstotliwości odświeżania dla monitorów, które zawsze trudno określić, ponieważ instrukcja gdzieś się zapodziała...).
Po zdobyciu tych informacji jesteś gotowy do rozpoczęcia konfiguracji plików Xconfig i XF86Config.
Gdzie umieścić pliki Xconfig i XF86Config
Pliki Xconfig i XF86Config mogą zostać umieszczone w kilku różnych miejscach w systemie plików. Zwykle znajdują się one w katalogu /usr/X386/lib/X11, w którym można również znaleźć pliki przykładowe. Jeśli masz dostęp do tego katalogu, jest to dobre miejsce dla Twoich plików konfiguracyjnych (ściślej rzecz ujmując pliki te odczytywane są z katalogu /usr/X11R6/lib/X11 lub /etc, ale ponieważ zwykle katalog /usr/X386 jest dowiązaniem do katalogu /usr/X11R6, obie ścieżki dostępu wskazują na to samo miejsce; w dokumentacji również można natknąć się na odniesienia do katalogu X11R6, ale dopóki utworzone jest dowiązanie /usr/X386, możesz używać obu wersji ścieżek dostępu).
|
Nie musisz martwić się o to, czy powinieneś używać pliku Xconfig czy XF86Config, o ile nie przeprowadzasz instalacji ręcznej. Skrypty instalacyjne same skonfigurują odpowiedni plik. Jeśli instalujesz X ręcznie, użyj pliku Xconfig w przypadku systemu w wersji 2.X i XF86Config w przypadku wersji 3.X. |
Jeśli nie możesz używać katalogu /usr/X386/lib/X11 (na przykład ponieważ nie masz prawa zapisu do tego katalogu albo jest on zainstalowany gdzieś na serwerze zdalnym) lub też nie chcesz go używać (gdy zamierzasz stworzyć konfigurację tylko dla siebie, niedostępną dla innych użytkowników), możesz umieścić pliki konfiguracyjne w katalogu /etc lub w swoim katalogu domowym. Umieszczenie ich w katalogu /etc oznacza, że będą one dostępne dla wszystkich użytkowników.
Możesz również utworzyć osobne pliki konfiguracyjne dla różnych komputerów, zapisując je w katalogu /usr/X386/lib/X11 z dołączoną do nazwy pliku nazwą komputera. Przykładowo, do danych konfiguracyjnych zapisanych w pliku o nazwie Xconfig.merlin dostęp mogą mieć tylko użytkownicy logujący się z komputera o nazwie merlin.
W systemie Linux plik Xconfig zwykle umieszczany jest w katalogu /etc. Ponieważ pozostałe pliki systemu X umieszczane są w innych katalogach, należy stworzyć dowiązanie wskazujące na plik /etc/Xconfig w katalogu /usr/X386/lib/X11 lub w katalogu domowym. Dzięki temu system X będzie mógł prawidłowo odnaleźć plik konfiguracyjny.
SuperProbe
SuperProbe to program, który próbuje wykryć rodzaj zainstalowanej w systemie karty graficznej. Obsługuje architektury ISA, EISA, VLB, częściowo PCI, nie obsługuje natomiast architektury MCA (choć do czasu wydania tej książki mogą ukazać się już nowsze wersje tego programu). Jeśli wiesz, jaką kartę posiadasz, program SuperProbe nie jest Ci raczej potrzebny.
SuperProbe stara się zidentyfikować kartę graficzną, próbując zapisu do rejestrów dostępnych tylko w poszczególnych typach kart graficznych i obserwując rezultaty. Takie rozwiązanie ma niestety jedną wadę: może spowodować, że komputer przestanie odpowiadać. Choć mało prawdopodobne jest, by spowodowało to jakieś zniszczenia, system plików musi zostać sprawdzony, jeśli trzeba było zresetować komputer. Z tego powodu przed uruchomieniem tego programu powinieneś upewnić się, że jesteś aktualnie jedynym użytkownikiem systemu (żeby nie robić nikomu przykrych niespodzianek). Zalecane jest również utworzenie kopii zapasowej ważnych danych.
|
Uruchamianie programu SuperProbe bez żadnych parametrów to prawie pewny sposób na zawieszenie komputera. Używaj tego programu ostrożnie i przestrzegaj rad podanych w dalszej części tego podrozdziału, dotyczących podawania temu programowi choć szczątkowych informacji o tym, czego powinien szukać. |
Program SuperProbe dołączony jest do większości dystrybucji zawierających XFree86. Może również zostać załadowany z sieci Internet. Nie jest to program działający wyłącznie pod Linuxem - można go uruchomić w niektórych innych systemach UNIX-owych na komputerach PC. Dostępna jest również strona man poświęcona programowi SuperProbe.
Aby dostosować zachowanie SuperProbe do konkretnego systemu, używa się szeregu opcji podawanych w wierszu poleceń. Choć bardziej zaawansowane opcje różnią się w zależności od wersji oprogramowania, najważniejsze z nich są we wszystkich wersjach takie same:
-bios pozwala podać adres BIOS-owy karty graficznej, domyślnie ustawiony na C0000;
-info wyświetla listę kart rozpoznawanych przez program SuperProbe;
-no_16 wyłącza testowanie 16-bitowe - opcja użyteczna w przypadku starych, ośmiobitowych kart graficznych;
-no_bios wyłącza testowanie BIOS-u karty graficznej i zakłada, że jest to BIOS kompatybilny z EGA, VGA, SVGA albo jeszcze nowszy; opcja ta może się przydać w przypadku nowych modeli kart, jeśli testowanie kończy się zawieszeniem systemu;
-no_dac wyłącza testowanie typu układu RAMDAC; można używać tej opcji w przypadku kart VGA i SVGA, aby zapobiec zawieszaniu się systemu;
-no_mem pomija sprawdzanie ilości pamięci RAM dostępnej na karcie graficznej;
-order pozwala podać kolejność, w jakiej należy testować chipset; opcja ta może być przydatna, gdy wiesz, jaki typ karty posiadasz, i chcesz się tylko upewnić;
-verbose wyświetla na ekranie informacje o podejmowanych przez SuperProbe próbach; jest to bardzo przydatna opcja, pozwalająca na śledzenie procesu wykrywania karty graficznej i zidentyfikowanie przyczyny ewentualnych problemów.
Jednym z pierwszych kroków powinno być wyświetlenie rozpoznawanych przez SuperProbe typów kart graficznych poleceniem
SuperProbe -info
które pozwoli obejrzeć typy kart, chipsety i rodzaje układów RAMDAC, z którymi radzi sobie ten program. Zauważ, że nazwa programu SuperProbe składa się zarówno z małych, jak i z wielkich liter, co nie jest często spotykane w przypadku programów przeznaczonych dla systemów UNIX-owych.
Jeśli posiadasz starszą, ośmiobitową kartę graficzną, możesz spróbować zlecić jej rozpoznanie poleceniem
SuperProbe -no_16 -verbose
Jeśli posiadasz kartę 16-bitową i podejrzewasz, że jest to S3, Cirrus Logic lub Tseng, możesz użyć opcji -order, dzięki czemu skrócisz procedurę testowania i unikniesz potencjalnych problemów:
SuperProbe -order S3,Cirrus,Tseng -verbose
Pomiędzy typami chipsetów nie powinno być spacji. Ograniczenie zakresu poszukiwań jest zalecane w celu uniknięcia zawieszania się komputera. Nawet jeśli wiesz, jaki typ karty jest zainstalowany w systemie, nie możesz zakładać, że SuperProbe będzie działał prawidłowo. Ma on „brzydki” zwyczaj zawieszania komputera z powodu konfliktów sprzętowych. Używaj go ostrożnie.
Użycie programów ConfigFX86 i fx86config
Programy ConfigFX86 i fx86config posiadają prosty interfejs, pozwalający na wybór modelu karty graficznej i monitora. Jeśli Twoja karta i monitor są obsługiwane przez te programy (możesz to sprawdzić w pliku Hardware HOWTO i plikach README dostarczanych wraz z XFree86), proces konfiguracji masz już prawie za sobą. Jeśli programy ConfigFX86 i fx86config są dołączone do XFree86, znajdują się zwykle w katalogu /usr/X386/bin. Autorem programu ConfigFX86 jest Stephen Zwaska.
Dokumentacja tych programów zwykle dostępna jest w katalogu /usr/X386/bin, wraz z plikami wykonywalnymi, w kilku różnych formatach. Nie jest ona jednak dostarczana ze wszystkimi wersjami Linuxa. Dokument w formacie ASCII nazywa się ConfigFX86.txt, natomiast jego wersja postscriptowa - ConfigFX86.ps (podobnie sprawa wygląda w przypadku dokumentacji programu fx86config).
Po uruchomieniu programu ConfigFX86 lub fx86config wyświetlanych jest kilka ogólnych komunikatów, po czym należy podać informacje o konfiguracji sprzętowej systemu. W większości przypadków sprowadza się to do wybrania odpowiednich wartości z wyświetlanej przez program listy. Na podstawie dostarczonych informacji budowany jest plik Xconfig.
Niezbędne jest również podanie innych danych konfiguracyjnych, np. program fx86config wymaga informacji dotyczących typu myszki, wykorzystania trzeciego klawisza myszki, poziomych i pionowych częstotliwości odświeżania monitora, modelu monitora, serwera, który należy uruchomić, ilości pamięci RAM dostępnej na karcie graficznej itd. Po zebraniu wszystkich informacji program umożliwia wygenerowanie odpowiednio skonfigurowanego pliku XF86Config.
Po stworzeniu pliku XF86Config czy Xconfig powinieneś wstrzymać się jeszcze z uruchomieniem X i poświęcić chwilę na sprawdzenie poprawności informacji zawartych w tych plikach, aby uniknąć uszkodzenia sprzętu. Następny podrozdział, omawiający konfigurację ręczną, wyjaśni znaczenie poszczególnych wpisów. Po upewnieniu się, że wszystko jest w porządku, możesz uruchomić X poleceniem startx.
Pliki Xconfig i XF86Config
Jeśli tworzysz plik konfiguracyjny ręcznie, musisz znać jego format. Każda z wersji XFree86 zawiera przynajmniej jeden plik przykładowy, zwykle o nazwie Xconfig.eg lub XF86Config.eg, znajdujący się w katalogu lib. Powinieneś użyć go jako szablonu (po skopiowaniu do katalogu domowego i usunięciu rozszerzenia .eg) przy tworzeniu pliku uwzględniającego konfigurację sprzętową Twojego systemu.
Pliki konfiguracyjne Xconfig i XF86Config nie są krótkie, ale większość tekstu w nich zawartego to komentarze. Podzielone są one na szereg sekcji, z których każda dotyczy ustawień innego rodzaju. Ogólny porządek tych sekcji jest następujący:
ścieżki dostępu do plików wykonywalnych oraz czcionek;
informacje dotyczące klawiatury;
informacje dotyczące myszki;
plik serwera;
informacje o wyświetlaniu.
Przyjrzymy się bardziej szczegółowo każdej z tych sekcji. Jeżeli wygenerowałeś plik konfiguracyjny za pomocą programów ConfigFX86 albo fx86config, sprawdź, czy odpowiednie sekcje zawierają informacje adekwatne do konfiguracji Twojego systemu. Jeśli tworzysz plik ręcznie, rób to uważnie i powoli, a na pewno uda Ci się uniknąć błędów.
|
Fragmenty kodu podane w dalszej części tego podrozdziału pochodzą z pliku XF86Config wygenerowanego przez XFree86 w wersji 3.X, ponieważ jest to wersja najnowsza i jest ona dołączana do większości nowych dystrybucji. Format pliku Xconfig pochodzącego z wersji 2.X jest bardzo podobny, jeśli więc posiadasz właśnie tę wersję, również nie powinieneś mieć problemów ze zrozumieniem informacji zawartych w pliku konfiguracyjnym. |
Zauważ, że każda z sekcji pliku konfiguracyjnego rozpoczyna się od słowa section, po którym następuje nazwa sekcji, natomiast kończy się słowem EndSection. Pozwala to na łatwiejsze odnalezienie potrzebnej informacji. Komentarze oznaczane są znakiem # na początku wiersza.
Ścieżki dostępu
W większości przypadków ścieżki dostępu zapisane w pliku konfiguracyjnym są prawidłowe i nie wymagają modyfikacji, chyba że instalowałeś X ręcznie do katalogów o nazwach innych niż domyślne. Ścieżki dostępu potrzebne do odnalezienia plików zawierających definicje czcionek i innych plików systemowych określone są w sekcji wyglądającej na przykład tak:
Section "Files"
# The location of the RGB database. Note, this is the name of the
# file minus the extension (like ".txt" or ".db"). There is normally
# no need to change the default.
RgbPath "/usr/X11R6/lib/X11/rgb"
# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
# For OSs that support Dynamically loaded modules, ModulePath can be
# used to set a search path for the modules. This is currently supported
# for Linux ELF, FreeBSD 2.x and NetBSD 1.x. The default path is shown
# here.
# ModulePath "/usr/X11R6/lib/modules"
EndSection
Powyższy kod definiuje ścieżki dostępu do czcionek ekranowych i bazy danych RGB. Jeśli zainstalowałeś X w sposób standardowy, nie powinieneś tu nic zmieniać.
Zauważ, że odniesienia do katalogów są zgodne z konwencją X, czyli używają nazwy katalogu /usr/X11R6. Przeważnie katalog ten dołączony jest do /usr/X11 i /usr/X386. Upewnij się, że nazwy te faktycznie prowadzą do katalogów zawierających definicje czcionek wchodząc do każdego z nich i oglądając jego zawartość. Jeśli katalog nie istnieje lub jest pusty, system X nie będzie potrafił załadować czcionek i nie uruchomi się generując komunikaty o błędach.
Jeśli instalujesz nowe czcionki dla systemu XFree86, powinny one znaleźć się właśnie w jednym z katalogów określonych w pliku XF86Config.
Ustawienia klawiatury
W większości systemów domyślnie obsługiwana jest standardowa klawiatura U.S. posiadająca 101 klawiszy. Choć wprowadzanie modyfikacji w tej sekcji nie jest konieczne prawie we wszystkich systemach, kilka drobnych zmian może znacznie ułatwić pracę w systemie X, więc nie ignoruj jej. Oto przykładowy fragment pliku XF86Config:
Section "Keyboard"
Protocol "Standard"
# when using XQUEUE, comment out the above line, and uncomment the
# following line
# Protocol "Xqueue"
AutoRepeat 500 5
# Let the server do the NumLock processing. This should only be required
# when using pre-R6 clients
# ServerNumLock
# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1))
# Xleds 1 2 3
# To set the LeftAlt to Meta, RightAlt key to ModeShift,
# RightCtl key to Compose, and ScrollLock key to ModeLock:
# LeftAlt Meta
# RightAlt ModeShift
# RightCtl Compose
# ScrollLock ModeLock
EndSection
Protokół powinien pozostać zdefiniowany jako standard. Wiersz dotyczący Xqueue jest zaznaczony jako komentarz i powinien tak pozostać, chyba że zainstalujesz w swoim systemie Xqueue. Ustawienie autorepeat decyduje o tym, jak długo system będzie czekał przed rozpoczęciem powtarzania naciśnięcia klawisza (przykładowo, jeśli wciśniesz klawisz x, po pewnej liczbie milisekund system rozpocznie generować kolejne znaki x).
Wartość ServNumLock decyduje o tym, czy znacznik NumLock powinien być załączony po uruchomieniu systemu X. W większości przypadków wiersz ten jest zaznaczony jako komentarz i może tak pozostać, chyba że chcesz to zmienić (jest to zalecane w wersji 2.X lub wcześniejszych).
Teoretycznie można zdefiniować wartość Xleds, aby pozwolić na programowe załączanie i wyłączanie diod (NumLock, CapsLock i ScrollLock) na klawiaturze. Nie jest to szczególnie przydatna opcja, można więc pozostawić ją zaznaczoną jako komentarz.
Pozostała część sekcji określa zachowanie klawiszy Alt, Control i Shift. Niektóre aplikacje oczekują specjalnych kombinacji klawiszy, nazywanych metaklawiszami, polegających na wciskaniu pewnych klawiszy w czasie, gdy wciśnięty jest inny klawisz (jak na przykład Control+C w systemach DOS i UNIX). Tu możesz określić, które z klawiszy będą interpretowane jako klawisze Alt, Meta, Control i ModeLock. Ponieważ tylko nieliczne aplikacje wymagają specjalnej obsługi klawiatury, w większości systemów tę część również można pozostawić zaznaczoną jako komentarz.
Możesz również skonfigurować system XFree86 tak, by automatycznie tłumaczył pewne kombinacje klawiszy na znaki narodowe. W większości przypadków układ klawiatury odczytywany jest z jądra systemu, ale można zmienić to zachowanie. Standard X11 pozwala na definiowanie tylko czterech tablic klawiszy, czyli o wiele mniej, niż oferuje Linux.
Definiowanie myszki
W systemie XFree86 myszka jest wykorzystywana bardzo intensywnie, więc jeśli chcesz używać tego systemu musisz podać jej typ i port, do którego jest ona podłączona. Obsługiwane są najpopularniejsze typy myszek, a nietypowe modele mogą być używane dzięki emulacji jednego z popularnych typów takich jak Microsoft czy Logitech. Sekcja pliku XF86Config dotycząca myszki nazywa się Pointer. Poniżej przedstawiamy przykładową zawartość takiej sekcji.
Section "Pointer"
Protocol "Microsoft"
Device "/dev/mouse"
# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.
# Protocol "Xqueue"
# Baudrate and SampleRate are only for some Logitech mice
# BaudRate 9600
# SampleRate 150
# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Buttons
# ChordMiddle is an option for some 3-button Logitech mice
# ChordMiddle
EndSection
Po etykiecie Protocol następuje nazwa typu przyłączonej myszy (lub typu, który mysz ta potrafi emulować). Lista obsługiwanych typów myszek podana jest na stronach man dotyczących pliku XF86Config, jeśli więc posiadasz mysz inną niż Microsoft czy Logitech, sprawdź w dokumentacji, jakiej nazwy protokołu powinieneś użyć. Innym sposobem zidentyfikowania typu myszy jest obserwacja komunikatów generowanych podczas uruchamiania systemu - często pojawia się wśród nich informacja o wykrytym modelu myszy.
Myszki firmy Microsoft używają protokołu Microsoft. Większość urządzeń marki Logitech jest kompatybilna z protokołem Microsoft, a nowsze mogą również używać protokołu MouseMan. Większość innych modeli myszy używa również protokołu Microsoft.
Pozycja Device pozwala określić port, do którego podłączona jest myszka. W większości przypadków wartość /dev/mouse jest odpowiednim ustawieniem, ponieważ Linux podczas instalacji tworzy odpowiednie dowiązania. Jeśli używasz myszy podłączonej do portu PS/2, powinieneś podać tu odpowiednią nazwę pliku urządzenia. Wszystkie obsługiwane porty wypisane są w dokumentacji i na stronach man; oto niektóre z nich:
/dev/mouse domyślny sterownik systemu Linux;
/dev/inportbm sterownik wyłącznie dla myszek magistralowych Microsoft;
/dev/logibm sterownik wyłącznie dla myszek magistralowych Logitech;
/dev/psaux sterownik dla myszek PS/2.
Instalacja myszy magistralowej (ang. bus mouse) wymaga podania numeru używanego przerwania IRQ zarówno w jądrze systemu, jak i dla XFree86. Upewnij się, że podane wartości są jednakowe.
Podobnie jak w przypadku klawiatury, tu też można użyć protokołu Xqueue - ponieważ większość instalacji XFree86 nie używa Xqueue, powinieneś pozostawić odpowiedni wiersz zaznaczony jako komentarz. Parametry BaudRate i SampleRate, jak mówią komentarze, dotyczą tylko niektórych starszych myszek firmy Logitech. W większości przypadków nie trzeba ich używać. Jeśli musisz, spróbuj najpierw prędkości 9600 bodów, a następnie - w razie niepowodzenia - 1200 bodów. Niektóre wcześniejsze wersje XFree86 wolały, aby parametry te były podane, ale spróbuj najpierw uruchomić X nie podając tych parametrów.
Opcja Emulate3Buttons jest przydatna, gdy posiadasz mysz obsługującą tylko dwa klawisze. Kiedy jest ona aktywna, pozwala symulować naciśnięcie trzeciego klawisza przez naciśnięcie obu klawiszy równocześnie. Wiele aplikacji linuxowych (i UNIX-owych) wykorzystuje trzeci klawisz myszy, jeśli więc posiadasz mysz Microsoft lub kompatybilną, warto załączyć tę opcję.
Opcja ChordMiddle używana jest tylko w przypadku niektórych myszy firmy Logitech. Jeśli korzystasz ze sterownika Logitech, spróbuj najpierw uruchomić X bez załączonej opcji ChordMiddle. Dopiero jeśli mysz nie działa poprawnie, załącz ją. Większość myszy firmy Logitech nie wymaga załączenia tej opcji.
Model monitora
Właściwe określenie modelu monitora jest bardzo istotne - podanie błędnej wartości może spowodować nawet uszkodzenie sprzętu! Cierpliwość i zdrowy rozsądek wystarczą, by zapobiec zniszczeniom, ale najlepszym źródłem informacji jest instrukcja obsługi monitora.
Jeśli nie jesteś pewny co do któregokolwiek z ustawień, użyj najbardziej podstawowych wartości. Jeśli nie wiesz, czy monitor obsługuje wyższe rozdzielczości, pozostań przy ustawieniach VGA lub SVGA przynajmniej do czasu, aż zdobędziesz dokładniejsze informacje co do jego możliwości.
Dla wygody użytkownika sekcja pliku XF86Config dotycząca monitora podzielona jest na kilka podsekcji. Przyjrzymy się im z osobna. W pierwszej podsekcji zawarte są informacje dotyczące typu i modelu monitora:
Section "Monitor"
Identifier "Generic Monitor"
VendorName "Unknown"
ModelName "Unknown"
Wpisy te są tylko etykietami i nie mają żadnego znaczenia dla systemu X; są wyświetlane podczas uruchamiania serwera oraz przez programy diagnostyczne. Możesz je zmienić, by uczynić pracę z X nieco przyjemniejszą.
Następna podsekcja określa częstotliwości odchylania poziomego, z jakimi może pracować monitor. Są to ważne informacje i powinieneś poszukać właściwych danych w instrukcji obsługi monitora. Niektóre ustawienia dla poszczególnych modeli opisane są w dokumentach Monitors oraz VideoModes.doc rozprowadzanych wraz z systemem XFree86. Jeśli nie możesz znaleźć danych o możliwościach Twojego sprzętu, użyj najniższych dostępnych wartości.
# Bandwidth is in MHz unless units are specified
BandWidth 25.2
# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
HorizSync 31.5 # typical for a single frequency fixed-sync monitor
# HorizSync 30-64 # multisync
# HorizSync 31.5, 35.2 # multiple fixed sync frequencies
# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies
Jak widać, ustawienia te opatrzone są odpowiednim komentarzem, ułatwiającym konfigurację. Jeśli monitor obsługuje różne częstotliwości odchylania poziomego, możesz usunąć symbol komentarza z wiersza zawierającego odpowiedni zakres częstotliwości, na przykład 30 - 64 kHz, i zaznaczyć jako komentarz wiersz zawierający wartość 31.5 kHz.
Częstotliwości odchylania pionowego to następna bardzo newralgiczna sekcja. Tu również powinieneś zachować szczególny umiar i trzymać się wartości podanych przez producenta lub najniższych.
# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
VertRefresh 60 # typical for a single frequency fixed-sync monitor
# VertRefresh 50-100 # multisync
# VertRefresh 60, 65 # multiple fixed sync frequencies
# VertRefresh 40-50, 80-100 # multiple ranges of sync frequencies
Tu również komentarze ułatwiają wybranie odpowiednich wartości. Mogą stanowić wskazówkę, ale dokładnych informacji szukać należy w dokumentacji monitora.
Ustawienie właściwego trybu graficznego także jest bardzo ważne, ponieważ błędne ustawienie może spowodować śnieżenie, uzyskanie tylko czarnego ekranu albo - w niektórych przypadkach - zawieszenie systemu. Opisany wcześniej program SuperProbe wyświetla informacje o dostępnych trybach graficznych, ale również w tym przypadku powinieneś trzymać się dokumentacji monitora. Dane o niektórych markach i modelach monitorów możesz znaleźć w pliku Monitors rozprowadzanym wraz z XFree86.
# Modes can be specified in two formats. A compact one-line format, or
# a multi-line format.
# A generic VGA 640x480 mode (hsync = 31.5kHz, refresh = 60Hz)
# These two are equivalent
# ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Mode "640x480"
DotClock 25.175
HTimings 640 664 760 800
VTimings 480 491 493 525
EndMode
# These two are equivalent
# ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace
Mode "1024x768i"
DotClock 45
HTimings 1024 1048 1208 1264
VTimings 768 776 784 817
Flags "Interlace"
EndMode
EndSection
Powyższy przykład umożliwia wykorzystanie dwóch trybów: standardowego VGA (640x480) i wysokiej rozdzielczości (1024x768). Jak widać, potrzebna jest znajomość parametrów DotClock i czasów przelotu rastra specyficznych dla monitora i karty graficznej. Odpowiednie informacje znajdują się w dokumentacji sprzętu. Zauważ, że wszystkie dane dla jednego trybu pracy mogą zostać podane w jednym wierszu, ale nie są wtedy zbyt czytelne.
Karty graficzne
Następna sekcja określa parametry zainstalowanej karty graficznej. Możesz tu określić definicje kilku kart pracujących z różnymi rozdzielczościami bądź też zdefiniować jedną, której będziesz używał. Podany niżej przykładowy kod definiuje karty VGA i SVGA.
Section "Device"
Identifier "Generic VGA"
VendorName "Unknown"
BoardName "Unknown"
Chipset "generic"
# VideoRam 256
# Clocks 25.2 28.3
EndSection
Section "Device"
# SVGA server auto-detected chipset
Identifier "Generic SVGA"
VendorName "Unknown"
BoardName "Unknown"
EndSection
Pola Identifier, VendorName, BoardName oraz opcjonalnie Chipset nie mają znaczenia dla systemu X i służą tylko identyfikacji urządzenia przez użytkownika. Pola VideoRam (ilość pamięci RAM na karcie graficznej) i Clocks określają ustawienia konkretnego egzemplarza karty. Powinny być ustawiane ostrożnie, bo błędne wartości w pewnych sytuacjach mogą spowodować uszkodzenie karty graficznej.
Jeśli posiadasz kartę graficzną o znanych Ci parametrach, możesz stworzyć dla niej specjalną konfigurację, na przykład dla karty Trident TVGA:
Section "Device"
Identifier "Trident TVGA 9000"
VendorName "Trident"
BoardName "TVGA 9000"
Chipset "tvga9000"
VideoRam 512
Clocks 25 28 45 36 57 65 50 40 25 28 0 45 72 77 80 75
EndSection
Dane dotyczące ustawień VideoRam i Clocks zostały zaczerpnięte z dokumentacji towarzyszącej XFree86, ale powinny również znajdować się w instrukcji obsługi karty.
Niektóre karty graficzne wymagają podania jeszcze innych danych. Na przykład karta Actix GE32+ z 2MB pamięci może być zdefiniowana w następujący sposób:
Section "Device"
Identifier "Actix GE32+ 2MB"
VendorName "Actix"
BoardName "GE32+"
Ramdac "ATT20C490"
Dacspeed 110
Option "dac_8_bit"
Clocks 25.0 28.0 40.0 0.0 50.0 77.0 36.0 45.0
Clocks 130.0 120.0 80.0 31.0 110.0 65.0 75.0 94.0
EndSection
Dodane zostały wpisy Ramdac, Dacspeed oraz Option. Parametry, które można definiować, zależą od wersji XFree86, więc jeśli chcesz wykorzystać w pełni możliwości swojej karty graficznej, powinieneś zajrzeć na odpowiednie strony man.
Serwer XFree86
Problem wyboru serwera odpowiedniego dla danej karty graficznej omówiliśmy już wcześniej. W sekcji pliku Xconfig czy XF86Config dotyczącej serwera zawarte są informacje o tym, którego serwera i z jakimi ustawieniami należy użyć.
Section "Screen"
Driver "svga"
Device "Generic SVGA"
Monitor "Generic Monitor"
DefaultColorDepth 8
Subsection "Display"
Depth 8
Modes "640x480"
ViewPort 0 0
Virtual 800 600
EndSubsection
EndSection
Powyższa podsekcja określa sterownik SVGA, obsługujący tryby 640x480 i 800x600. Jeśli posiadasz kartę i monitor o większych możliwościach, możesz użyć odpowiedniego serwera (na przykład przeznaczonego dla karty Actix GE32+ z 2 MB pamięci RAM), na przykład tak:
Section "Screen"
Driver "accel"
Device "Actix GE32+ 2MB"
Monitor "Generic Monitor"
DefaultColorDepth 8
Subsection "Display"
Depth 8
Modes "640x480"
ViewPort 0 0
Virtual 1280 1024
EndSubsection
SubSection "Display"
Depth 16
Weight 565
Modes "640x480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
Zgodnie z powyższą definicją, używany będzie serwer obsługujący akcelerację sprzętową dla kart Actix, umożliwiający pracę w rozdzielczościach do 1280x1024. Sprawdź, czy istnieje serwer przeznaczony do współpracy z Twoją kartą graficzną. Jeśli nie jesteś pewien, użyj serwera ogólnego.
Opcje w tej sekcji nie dotyczą wszystkich kart graficznych, ale jeśli znasz odpowiednie wartości, możesz je podać. Najważniejsze i najczęściej używane z nich zebrano poniżej.
Depth: ilość bitów koloru przypadających na jeden punkt (głębia koloru). Wartość ta zwykle wynosi 8, ale sterownik VGA16 obsługuje tylko 4, a karty monochromatyczne - 1 bit koloru. Nowsze karty obsługują 16, 24, 32 a nawet 64 bity koloru - czasem informacja ta podana jest jako część nazwy modelu karty (na przykład karta Diamond Stealth 24 obsługuje 24 - bitową głębię koloru, ale nie jest to regułą - sprawdź w dokumentacji, zanim przyjmiesz, że liczba w nazwie modelu oznacza właśnie głębię koloru).
Modes: lista trybów graficznych określonych w polu ModeLine sekcji Monitor. Definiuje ona wszystkie tryby obsługiwane przez kartę, których zamierzasz używać. Pierwszy tryb z tej listy zostanie użyty przy uruchamianiu systemu X. Podczas działania serwera X można przełączać się pomiędzy tymi trybami.
Virtual: rozmiar pulpitu wirtualnego. Jeśli posiadasz odpowiednią ilość pamięci graficznej, pulpit wirtualny systemu X może być większy niż rozmiar ekranu - wówczas można poruszać się po całym jego obszarze za pomocą myszy. Przykładowo, możesz mieć pulpit o wielkości 1024x768, ale wyświetlać go na ekranie o wielkości 800x600. Maksymalny rozmiar pulpitu zależy od ilości pamięci RAM na karcie graficznej, np. karta z 1 MB może obsłużyć wielkość 1024x768 przy 256 kolorach, natomiast 2 MB pamięci pozwalają na pracę z takim samym rozmiarem pulpitu przy 65 K kolorów lub z rozmiarem 1280x1024 przy 256 kolorach. Jeśli chcesz używać pulpitu wirtualnego, powinieneś zainstalować menedżer okienek fvwm (instalowany domyślnie).
ViewPort: parametr używany z pulpitem wirtualnym do określenia położenia punktu o współrzędnych (0,0) przy uruchomieniu serwera.
Testowanie konfiguracji XFree86
Po skompletowaniu zawartości plików konfiguracyjnych czas uruchomić XFree86, na przykład wydając polecenie startx. startx uruchomi skrypt, który powinien załadować wszystkie potrzebne sterowniki, programy rezydentne, wyczyścić ekran i uruchomić odpowiedni menedżer okienek. Jeśli XFree86 nie uruchamia się poprawnie, przyjrzyj się uważnie wyświetlanym komunikatom. Powinny one dać Ci wskazówkę co do przyczyny problemów. Zwykle są to problemy z obsługiwanymi trybami graficznymi (dla przyzwyczajonych do używania UNIX-a: startx jest nakładką na program xinit, używaną do uruchamiania systemu X).
Jeśli masz problemy z uruchomieniem systemu X, najskuteczniejszym sposobem na znalezienie ich przyczyny jest ustawienie wszystkich opcji na najmniejsze wartości (z nimi system powinien się uruchomić), a następnie kolejne ich modyfikowanie. Jeśli nie działa nawet standardowy sterownik VGA, oznacza to, że problem tkwi gdzieś indziej (możliwe na przykład, że ścieżki dostępu do plików z definicjami czcionek są nieprawidłowe).
Plik .xinitrc
Plik .xinitrc jest plikiem konfiguracyjnym systemu X, spełniającym taką samą funkcję, jak plik .profile czy .login podczas uruchamiania interpretera poleceń. Zawiera zwykle wszystkie lokalne modyfikacje konfiguracji, takie jak polecenia automatycznie uruchamiające określone aplikacje itp. Jeśli używasz skryptu startx lub runx, plik .xinitrc zostanie przemianowany na xinitrc.
Plik zawierający dane o domyślnej konfiguracji systemowej zwykle nazywa się /usr/ lib/X11/xinit/xinitrc lub /etc/X11/xinit/xinitrc (nazwa częściej spotykana w systemach linuxowych, ponieważ w niektórych systemach katalog /usr jest katalogiem tylko do odczytu, na przykład zapisanym na płycie CD-ROM).
Dane zapisane w domyślnym systemowym pliku konfiguracyjnym zostaną pominięte, jeśli w katalogu domowym znajduje się plik o nazwie .xinitrc. Dzięki temu możesz, po skopiowaniu systemowego pliku xinitrc do katalogu domowego i przemianowaniu go na .xinitrc, wprowadzać do niego własne modyfikacje. Strony man dotyczące skryptów startx i runx wyjaśniają szczegóły.
Poniżej podano zawartość przykładowego pliku .xinitrc. Jest to domyślny plik pochodzący wprost z nowej instalacji XFree86. Pierwsza jego część definiuje ścieżki dostępu do poszczególnych typów plików:
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
Ścieżki te są zwykle ustalane przez system XFree86, warto jednak sprawdzić, czy są poprawne. Wszystkie zdefiniowane powyżej zmienne są niezbędne do prawidłowego działania systemu X.
Następna część zawiera polecenia, które sprawdzają istnienie pewnych zasobów systemowych i w zależności od tego podejmują odpowiednie działania. Większość z nich nie musi być modyfikowana, chyba że masz bardzo nietypowe wymagania.
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
Ostatnia sekcja pliku .xinitrc odpowiada za uruchomienie programów przy starcie systemu X. W przypadku, gdy menedżer fvwm jest zainstalowany, jest on uruchamiany, w przypadku przeciwnym - uruchamiany jest menedżer twm. Jeśli chcesz uruchamiać inne programy lub inny menedżer okienek, powinieneś dodać tu odpowiednie polecenia.
# start some nice programs
xsetroot -solid SteelBlue
if [ -f $HOME/.Xclients ]; then
exec $HOME/.Xclients
elif [ -f /etc/X11/xinit/Xclients ]; then
exec /etc/X11/xinit/Xclients
else
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
if [ -f /usr/X11R6/bin/arena -a -f /usr/doc/HTML/index.html ]; then
arena /usr/doc/HTML/index.html &
fi
if [ -f /usr/X11R6/bin/fvwm ]; then
exec fvwm
else
exec twm
fi
fi
Polecenie xsetroot pozwala na ustawienie koloru pulpitu. Polecenie xterm powoduje uruchomienie programu emulacji terminalu w oknie systemu X, dzięki czemu możliwe jest późniejsze uruchamianie innych programów. W powyższym przykładzie uruchamiane są dwa takie terminale. Uruchamiany jest również program xclock, który wyświetla na ekranie zegar, a także (jeśli jest zainstalowany i istnieje odpowiedni plik dokumentacji) program arena - przeglądarka plików html - z dokumentacją dotyczącą Linuxa.
Każde polecenie w tym pliku powinno kończyć się znakiem &, który informuje powłokę, że nie należy czekać na zakończenie procesu, tylko uruchomić go w tle. Dzięki temu kilka programów może uruchamiać się jednocześnie. Co więcej - gdyby należało czekać na zakończenie np. programu xclock, system X nigdy by się nie uruchomił. Ważne jest również, by symbol & nie występował po poleceniu uruchamiającym menedżer okienek, ponieważ w przeciwnym przypadku uruchomi się on, po czym natychmiast zakończy działanie.
Podsumowanie
Po skonfigurowaniu systemu X zgodnie ze wskazówkami zawartymi w tym rozdziale, powinien on działać bezproblemowo. Omawianie szczegółów pracy z tym systemem wykracza jednak poza zakres tej książki. Dobrym źródłem informacji są oczywiście strony man, inna dokumentacja oraz poświęcone temu tematowi książki.
Mimo tego, po skonfigurowaniu systemu XFree86 możesz zacząć pracować pod jego kontrolą; wkrótce przekonasz się, że trudno powrócić do interfejsu tekstowego.
Wabi, program pozwalający na uruchamianie aplikacji Windows pod kontrolą systemu X, opisany jest w rozdziale 23. „Wabi”.
GhostScript, który pozwala na używanie języka PostScript i oglądanie plików postscriptowych na ekranie oraz ich drukowanie, omówiony jest w rozdziale 24. „GhostScript i Ghostview”.
O programowaniu w systemie Linux możesz dowiedzieć się więcej z części piątej, rozpoczynając od rozdziału 25. „gawk”.
Podstawy administrowania systemem omówione są w części szóstej, rozdział 32. „Podstawy administracji systemem”.
Niektóre z dystrybucji RedHat zawierają również skrypt Xconfigurator, spełniający podobną rolę jak wymienione programy (przyp. tłum.).
386 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\22.DOC
E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\22.DOC 363
386 Część IV ♦ Graficzne interfejsy użytkownika
Rozdzia³ 22. ♦ Instalacja i konfiguracja XFree86 385