[Spis treści] [Sekcja 10 - Zarządzanie systemem] [Sekcja 12 - Pytania dotyczące poszczególnych platform i sprzętu]
X-y zostały opracowane jako protokół "klient-serwer", chociaż ta terminologia jest czasem pogmatwana. Komputer z grafiką na ekranie jest "Serwerem X-ów". Aplikacja która kieruje do serwera X-ów to co ma być wyświetlone na ekranie jest "Klientem X-ów", nawet mimo tego, że może być to znacznie silniejszy komputer w centrum komputerowym. Model ten może być wykorzystany do wielkich, wymagających znacznych zasobów, aplikacji (klientów X-ów) pracujących na bardzo silnych maszynach i korzystających z serwerów X-ów działających na niewielkich, mało wydajnych komputerach biurowych.
Możliwe jest uruchomienie klienta X-ów w systemie bez żadnego graficznego wsparcia. Przykładowo, niektórzy mogą posiadać aplikacje (klienta X-ów) działającą na mvme88k, wyświetlającego wyjście na ekranie stacji alpha (serwerze X-ów). Ponieważ X jest dobrze zdefiniowanym, niezależnym od platformy protokołem, jest także możliwe uruchomienie graficznej aplikacji X na (przykładowo) stacji z Solarisem i użycie OpenBSD jako maszyny do wyświetlenia.
Klient i serwer mogą także działać na tej samej maszynie i w większości tej sekcji będziemy przyjmować takie założenie.
Zgodnie z tym co zostało powiedziane wcześniej, głównym założeniem uruchamiania X-ów jest uruchamianie w nim aplikacji. Niektóre programy są bardzo skromne, inne wydają się zabierać i używać całych zasobów systemowych (procesor i pamięć) jakie jesteś im w stanie dostarczyć. Oczywiście, niektórzy użytkownicy lubią używać X-ów do uruchamiania dużej liczby xterm(1)ów, co można wykonać na bardzo skromnym sprzęcie.
Kilka platform sterownika "apertury" xf86(4) dla X-ów, który zapewnia dostęp do pamięci i portów I/O na karcie VGA, a także rejestrów konfiguracyjnych PCI wymaganych przez serwery X-ów. Sterownik ten musi zostać włączony zanim zostanie użyty albo poprzez twierdzącą odpowiedź na następujące pytanie podczas instalacji:
Do you expect to run the X window System [no]
albo poprzez zmianę wartości machdep.allowaperture na odpowiednią nie zerową
wartość w /etc/sysctl.conf (odpowiednią dla twojej platformy) i restart
maszyny (ten parametr sysctl nie może być zmieniony po całkowitym starcie
systemu ze względu na pewne aspekty z zakresu bezpieczeństwa).
Są pewne zagadnienia związanie z bezpieczeństwem, zatem nie włączaj tej opcji
jeżeli jej nie potrzebujesz.
Ustaw machdep.allowaperture=1 w /etc/sysctl.conf.
Obsługiwane są zarówno karty TGA jak i VGA. Zadna poźniejsza konfiguracja nie powinna być konieczna.
Ustaw machdep.allowaperture=2 w /etc/sysctl.conf.
X-y dla amd64 bardzo często konfigurują się automatycznie, zatem w wielu przypadkach nie są konieczne żadne późniejsze zmiany konfiguracji. Jeżeli jednak taka konfiguracja jest potrzebna skorzystaj z procesu X -configure opisanego poniżej.
Ustaw machdep.allowaperture=2 w /etc/sysctl.conf.
Ze względu na nieprawdopodobną ilość dostępnych kart graficznych, myszy, klawiatur i innego sprzętu, konfiguracja X-ów w systemie i386 może być ekscytująca. Ekscytująca na tyle by poświęcić jej osobną sekcję w tym dokumencie.
Szczęśliwie, sprawy nie zawsze wyglądają tak źle jak sie wydają -- w wielu przypadkach X-y będą "po prostu działały" po wpisaniu polecenia "startx". W takich przypadkach, zasoby twojego komputera zostaną wykryte i ustawione zgodnie ze swoimi możliwościami, a X-y będą działały bardzo dobrze.
Systemy Mac68k "po prostu działają" z X-ami, nie jest potrzebna dodatkowa konfiguracja.
Mysz: Standardowa myszka Macintisha posiada tylko jeden klawisz, co jest problemem, ponieważ X-y zakładają myszkę trzy-klawiszową. Niektóre myszki innych producentów pozwolą ci na uzyskanie drugiego klawisza który będzie działał pod X-ami. W przeciwnym przypadku zobacz stronę manuala Xmac68k(1) pod kątem emulacji klawiszy myszki.
Ustaw machdep.allowaperture=2 w /etc/sysctl.conf.
Obsługiwane systemy Macintosh PPC mogą być uruchomione w dwóch różnych trybach: "accelerated" i "framebuffer" (brak akceleracji).
W trybie "framebuffer" system pracuje z 8-bitami na pixel i rozdzielczość ekranu kontrolowana jest przez środowisko Macintosha, zatem prawdopodobnie będziesz chciał posiadać małą instalację systemu MacOS'a. Tryb ten posiada podstawową zaletę "działania" chociaż może być flustrująco nieelastyczny (przykładowo zmiana rozdzielczości może wymagać uruchomienia MacOS'a).
Jeżeli twój Macintosh posiada kartę graficzną opartą o chipset ATI, możesz skorzystać z trybu akcelerowanego X serwera, pozwalającego uzyskać lepszą wydajność i kontrolę w środowisku OpenBSD. Karty graficzne NVIDIA w niektórych systemach macppc mogą również w większości przypadków działać. Plik README zawiera szczegóły konfiguracji akcelerowanych sterowników, rozpocznij od przykładowego pliku konfiguracyjnego.
Podczas gdy plik README opisuje przypadek korzystania z jedno-klawiszowej myszy z X-ami, o ile nie korzystasz z laptopa, jest szczególnie zalecany zakup nowoczesnej myszki USB.
Z jednym obsługiwanym framebufferem żadna dodatkowa konfiguracja nie jest wymagana. Jeśli chcesz korzystać z konfiguracji wielo-monitorowej, zobacz podany poniżej plik README.
Rozdzielczość jest kontrolowana przez firmware przed uruchomieniem OpenBSD.
Istnieje kilka wersji tych maszyn zatem będziesz musiał określić jaką szynę systemową posiada twój komputer (PCI czy SBus), do jakiego portu podłączona jest myszka (zstty, com czy USB/PS2), oraz jaka jest karta graficzna. Rozpocznij z przykładowym xorg.conf z pliku README, a następnie zmodyfikuj go zgodnie z posiadanym sprzętem i potrzebami. Nie oczekuj, że przykładowy plik konfiguracyjny będzie działał bez modyfikacji
Obecnie X serwer działa tylko na VAXstation 4000 z framebufferami lcg(4) lub lcspx(4).
Konfiguracja jest zbędna, X-y "po prostu działają".
Istnieją dwa programy które można użyć do prawie automatycznego utworzenia pliku konfiguracyjnego dla serwerów X-ów X.Org i386. Niestety, żaden z nich nie gwarantuje utworzenia użytecznego pliku xorg.conf.
vga1 at pci1 dev 0 function 0 "3DFX Interactive Banshee" rev 0x03
Kiedyś była to high-endowa karta graficzna, z 16MB pamięci RAM, ale obecnie
przeważnie nie jest wspierana przez współczense systemy operacyjne.
Monitor podłączony do testowego komputera to Sony Multiscan G400 19" CRT,
i było by miło uzyskać na nim rozdzielczość 1280x1024 z przyzwoitą jakością
odświerzania i 24-bitową głębią kolorów.
Najpierw, po zakończeniu instalacji OpenBSD z X-ami (i upewnieniu się ze sterownik apertury został włączony w kernelu), zobaczmy co automatycznie wykrył i skonfigurował X.Org, w końcu, możemy mieć szczęście. Zatem, po prostu wykonujemy polecenie startx(1). Ekran zrobił się czarny na chwilę, później otrzymałem X-ową "szachownicę", kursor X-ów oraz okno xterm'a.
To działa!
Mniej więcej. Wprawdzie system jest w pełni funkcjonalny, wydaje się że nie obsługuje żadnej z możliwości monitora i oczywiste jest że działa w niskiej rozdzielczości (640x480). Mamy nadzieję poprawić ten wynik. Znacznie poprawić. Oznacza to także, że będziemy musieli stworzyć swój własny plik xorg.conf.
Skorzystajmy z polecenia "X -configure" aby wygenerować startowy plik xorg.conf. Musimy wykonać to jako root:
# X -configure
[...]
Your xorg.conf file is /root/xorg.conf.new
To test the server, run 'X -config /root/xorg.conf.new'
Przy okazji, komunikat jest poważny -- korzystaj z pełnej ścieżki do
twojego pliku xorg.conf.new, nawet jeśli znajduje się on w twoim
bierzącym katalogu.
Nie stosowanie się do tego wymogu sposowuje, że
X(7)
nie znajdzie tego pliku a tym samym milcząco skorzysta z domyślnej
konfiguracji, która może nie mieć nic wspólnego z plikiem nad którym
obecnie pracujesz.
Może to spowodować opóźnienie podczas rozwiązania tego problemu.
Zaufaj nam.
Zróbmy jak mówi i zobaczmy co uzyskaliśmy:
# X -config /root/xorg.conf.new
Teraz jedyne co otrzymaliśmy to czarny ekran.
Sprawy nie wyglądają za dobrze...
Być może teraz jest najlepszy moment by omówić sposoby opuszczenia X-ów w sytuacjach w ktorych wystartują w podobny sposób. W zależności od preferencji:
W takich przypadkach pomocna znajomość posiadanego sprzętu. Podłączenie innego spowodowało wyświetlenie komunikatu "Sync. Out of Range". Zatem najwyraźniej konfiguracja X-ów nie pozwala na uruchomienie z naszym monitorem, i może nie działać z ŻADNYM monitorem, jeżeli wybrany tryb graficzny nie jest możliwy do uzyskania na tej konkretnej karcie (pamiętajmy, że X-y sprawdzają chipset karty i to do czego jest potencjalnie zdolna, a nie to jak wykonał kartę producent). Różne monitory robią różne rzeczy gdy synchronizacja jest niewłaściwa, niektóre usiłują wyświetlić ile potrafią, inne wchodzą w tryb oszczędzania energii, niektóre wydają nieznośny dźwięk a inne wyświetlają użyteczny komunikat na ekranie. Ten monitor wydaje się nie należeć do żadnej z powyższych grup. Uważajmy zatem by nie korzystać z tych monitorów przy wstępnej konfiguracji X-ów.
Przeglądając wygenerowany plik xorg.conf.new, natrafimy na cos takiego:
Section "Monitor"
#DisplaySize 370 270 # mm
Identifier "Monitor0"
VendorName "SNY"
ModelName "SONY CPD-G400"
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 30.0 - 107.0
VertRefresh 48.0 - 120.0
Option "DPMS"
EndSection
Jako test spróbujmy użyć DDC ("Data Display Channel", system pozwalający
monitorowi powiedziec komputerowi i karcie graficznej do czego jest zdolny),
i zobaczmy co się stanie.
Tym razem otrzymaliśmy deseń X-ów i przesuwający się kursor, czyli to czego
oczekiwaliśmy wywołując X-y w ten sposób (kończymy pracę X-ów korzystając
z podanej powyżej kombinacji CTRL-ALT-Backspace).
Jest to (znowu) niska rozdzielczość, ale działa, zatem możemy być całkiem
pewni że mamy problem z synchronizacją i rozdzielczością.
Przywracamy poprzednie wartości "HorizSync" oraz "VertRefresh" ponieważ
zweryfikowaliśmy te wartości ze znalezioną w Internecie specyfikacją monitora.
Spróbujmy wymusić na Xorg konkretną rozdzielczość i zobaczmy co nam się uda. W sekcji Section "Screen", będącej częścią pliku xorg.conf, chcemy dodać kilka linii. Dodane linie są przedstawione jako pogrubione:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
Podane dwie zmiany przekażą X-om że chcemy korzystać z 24-bitowej głębi kolorów
i dla 24-bitowej głębi kolorów chcemy rozdzielczości 1280x1024.
Ponieważ żadna inna rozdzielczość nie jest podana dla "Depth 24", system zostanie
zostanie zmuszony do korzystania z podanej.
Testujemy podobnie jak wcześniej i... SUKCES! Orzymaliśmy coś co przypomina bardzo ładny obraz w wysokiej rozdzielczości. Zwróć uwagę że WSZYSTKO czego oczekujemy to wzór sieci (bardzo dobry jeżeli chcesz zobaczyć jak dobry jest twój monitor oraz do kalibracji monitorów LCD, nazywany "root weave") i dający się przesuwać kursor. W zamierzeniu nie jest obecnie funkcjonalny.
Teraz chcemy zainstalować plik xorg.conf tak by przekonać się jak dobrze nam poszło w użytkowym środowisku X-ów.
# cp xorg.conf.new /etc/X11/xorg.conf
Możemy teraz wykonać polecenie startx(1).
Działa!
Prawdopodobnie dobrze było by również zweryfikować rozdzielczość i głębię kolorów czy odpowiada zamierzonym przez nas ustawieniom, a także czy pracujemy z porządnym odświerzaniem. Możemy się o tym przekonać przy pomocy programów: xrandr(1) oraz xdpyinfo(1). Pośród innych rzeczy, xdpyinfo(1) powie nam:
[...]
screen #0:
print screen: no
dimensions: 1280x1024 pixels (433x347 millimeters)
resolution: 75x75 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x44
depth of root window: 24 planes
[...]
Zatem, tak, pracujemy z rozdzielczością 1280x1024 w głębią 24-bitową.
xrandr(4) pokaże nam:
SZ: Pixels Physical Refresh
*0 1280 x 1024 ( 433mm x 347mm ) *85 75 60
1 1280 x 960 ( 433mm x 347mm ) 85 60
[...]
Co oznacza że pracujemy z odświerzaniem 85Hz, i to powinno być bardzo komfortowe
środowisko dla większości osób.
Dla niektórych platform będziesz musiał wyłączyć konsolę getty(8) aby korzystać z xdm(1).
[Spis treści] [Sekcja 10 - Zarządzanie systemem] [Sekcja 12 - Pytanie dotyczące poszczególnych platform i sprzętu]