Xorg
Cuprins |
Instalare
În primul rând, se face actualizarea completă a sistemului:
# pacman -Syu
Apoi, se instalează pachetele de bază Xorg:
# pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
Pentru o funcţionalitate de bază Xorg , se pot instala și alte pachete:
# pacman -S xorg-twm xterm xorg-xclock
Începând cu versiunea 1.8,Xorg-server nu mai are nevoie de HAL pentru acces hardware,în locul său fiind folosit UDEV.Aveţi posibilitatea să eliminaţi HAL de la daemon în /etc/rc.conf fără probleme, dacă nu aveţi nici o altă aplicație instalată în sistem care să necesite HAL . În plus, setările care erau situate în fişierul /etc/X11/xorg.conf , pot fi găsite acum în fişiere localizate în directorul /etc/X11/xorg.conf.d/. Udev ar trebui să fie capabil să detecteze hardware-ul fără probleme iar instalarea driverelor de intrare nu mai este necesară.Dacă totuși apar probleme se poate instala driverul de care aveți nevoie din grupul xorg-input-drivers. Xorg-server poate fi iniţiat cu comanda startx.
Configurare
Fișierele de configurare sunt localizate în /etc/X11/xorg.conf.d/.
Implicit fișierul 10-evdev.conf gestionează tastatura, mouse, touchpad și touchscreen. Pe lânga acesta se pot crea noi fișiere,care să înceapă cu un număr(10,20), având extensia .conf.
Touchpad/Synaptics
Dacă aveți un laptop trebuie să instalați driverul pentru touchpad
# pacman -S xf86-input-synaptics
După instalare, puteți găsi fisierul 10-synaptics.conf în directorul /etc/X11/xorg.conf.d.
Plăci video și drivere
Driverul implicit este vesa (xf86-video-vesa), funcționând pe o multitudine de plăci dar nu înclude accelerare 2d sau 3d. Pentru a activa aceasta accelerare, trebuie să instalați driverul specific pentru placa video.
În primul rând, se identifică placa video:
$ lspci | grep VGA
Apoi se instalează un driver adecvat.Există posilbilitatea de a căuta în pachetele disponibile cu următoarea comandă:
$ pacman -Ss xf86-video
Drivere comune opensource:
- nvidia: xf86-video-nouveau (vezi Nouveau)
- intel: xf86-video-intel (vezi Intel)
- ati: xf86-video-ati (vezi ATI)
NVIDIA
După instalarea driverului proprietar NVIDIA, fișierul de configurare (20-nvidia.conf) poate fi găsit în directorul /etc/X11/xorg.conf.d/.
Setări Monitor
În primul rând, se crează un nou fişier de configurare, de exemplu /etc/X11/xorg.conf.d/10-monitor.conf.
# nano /etc/X11/xorg.conf.d/10-monitor.conf
Treceți in fișier codul de mai jos:
Section "Monitor"
Identifier "Monitor0"
EndSection
Section "Device"
Identifier "Device0"
Driver "vesa" #Choose the driver used for this monitor
EndSection
Section "Screen"
Identifier "Screen0" #Collapse Monitor and Device section to Screen section
Device "Device0"
Monitor "Monitor0"
DefaultDepth 16 #Choose the depth (16||24)
SubSection "Display"
Depth 16
Modes "1024x768_75.00" #Choose the resolution
EndSubSection
EndSection
Monitoare multiple / ecran dual
Pentru a activa suportul de ecran dual, trebuie doar să editaţi 10-monitor.conf fişier pe care le-aţi făcut înainte. Pe fiecare monitor fizic, se adaugă câte o secțiune pentru Monitor, Device şi Screen , apoi o secţiune ServerLayout pentru gestionare. Se recomandă ca, atunci când este activată Xinerama,cu driverele proprietare nvidia,să fie dezactivată compoziţia.
Section "ServerLayout"
Identifier "DualSreen"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
Option "Xinerama" "1" #To move windows between screens
EndSection
Section "Monitor"
Identifier "Monitor0"
Option "Enable" "true"
EndSection
Section "Monitor"
Identifier "Monitor1"
Option "Enable" "true"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
Modes "1280x800_75.00"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
TwinView
Dacă doriți doar un ecran mare în loc de două, setaţi argumentul TwinView la 1. Această opţiune ar trebui să fie folosită în loc de Xinerama (vezi mai sus), dacă doriţi compoziţie.
Utilizarea setărilor Nvidia
Puteţi utiliza instrumentul nvidia-settings, dacă folosiți driverul proprietar Nvidia.După efectuarea setărilor(ca root), salvaţi configuraţia în /etc/X11/xorg.conf.d/10-monitor.conf.
Pentru două plăci video
Pentru două plăci video trebuie definit driverul corect și ID-bus-ul pe care îl folosește:
Section "Device"
Identifier "Screen0"
Driver "nouveau"
BusID "PCI:0:12:0"
EndSection
Section "Device"
Identifier "Screen1"
Driver "radeon"
BusID "PCI:1:0:0"
EndSection
Pentru a obţine ID-bus-ul:
$ lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)
ID-bus este 01:00:00.
Dimensiune display şi DPI
Înainte de a obţine dot per inch (DPI) corect,trebuie să fie cunoscută dimensiunea de afişare. DPI este important mai ales în cazul în care dorim ca monitorul să afișeze detalii fine (cum ar fi redarea fonturilor). Anterior, producătorii au încercat să creeze un standard de 96 dpi . Astăzi,DPI variază şi nu poate avea aceleași valori pentru orizontal şi vertical. De exemplu, un LCD de 19"cu ecran plat cu rezoluția 1440x900 poate avea DPI de 89x87. Pentru a-l putea seta, Xorg-server trebuie să auto-detecteze dimensiunea monitorului prin intermediul plăcii video.Când serverul Xorg recunoaşte dimensiunea ecranului,acesta va fi capabil să seteze corect DPI în funcţie de mărimea rezoluţiei. Pentru a vedea dacă dimensiunea de afişare şi DPI sunt detectate/calculate corect:
$ xdpyinfo | grep dimensions $ xdpyinfo | grep "dots per inch"
Se verifică dacă valorile se potrivesc cu dimensiunea ecranului. În cazul în care serverul Xorg nu este capabil să calculeze corect dimensiunea ecranului,îl va seta implicit la valoarea 75x75 DPI. Dacă aveţi specificaţii privind dimensiunea fizică a ecranului, ele pot fi introduse în fişierul de configurare Xorg, astfel încât să poată fi obținută valoarea corectă DPI:
Section "Monitor" Identifier "Monitor0" DisplaySize 286 179 # In millimeters EndSection
Dacă nu aveţi specificațiile pentru lăţimea şi înălţimea monitorului,puteţi utiliza rezoluţia nativă(sau raportul de aspect)şi lungimea diagonalei pentru a calcula dimensiunile orizontale şi verticale.Pe un ecran de 13,3"lungimea diagonalei și o rezoluţie de 1280x800 nativ (sau 16:10 aspect rațio):
echo 'scale=5;sqrt(1280^2+800^2)' | bc # 1509.43698
Rezultatul reprezintă lungimea pixelilor pe diagonală şi cu această valoare puteţi descoperi lungimile fizice orizontale şi verticale (care vor fi convertite în milimetri):
echo 'scale=5;(13.3/1509)*1280*25.4' | bc # 286.43072 echo 'scale=5;(13.3/1509)*800*25.4' | bc # 179.01920
DPI poate fi setat manual dacă doriţi să utilizaţi doar o anumită rezoluţie:
Section "Monitor" Identifier "Monitor0" Option "DPI" "96 x 96" EndSection
În cazul în care,cu driverul nvidia nu puteți seta corect DPI, aveţi posibilitatea să dezactivaţi detectarea automată:
Option "UseEdidDpi" "false"
Pentru driverele compatibile randr,îl puteţi seta cu:
xrandr --dpi 96
DPMS
DPMS (Display Power Management Signaling) este o tehnologie care permite monitorului să economisească energia atunci când computerul nu este folosit.Monitorul va intra în stand-by după o anumită perioadă de timp.A se vedea: DPMS
Dezactivarea intrărilor Hot-plugging
Începând cu versiunea 1.8,Xorg-server utilizează udev pentru a auto-detecta dispozitivele. Următorul cod va dezactiva utilizarea udev:
Section "ServerFlags" Option "AutoAddDevices" "False" EndSection
InputClasses
InputClasses reprezintă un nou tip de secţiune de configurare care nu se aplică pentru un singur dispozitiv,ci la o clasă de dispozitive,inclusiv dispozitive hotplugged.Un exemplu InputClass este furnizat mai jos:
Section "InputClass" Identifier "touchpad catchall" MatchIsTouchpad "on" Driver "synaptics" EndSection
Secțiunea următoare ar putea fi,de asemenea,de ajutor:
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Dacă această secțiune este prezentă în xorg.conf sau xorg.conf.d, oricărui touchpad prezent în sistem i se atribuie driverul synaptics. Secțiunea implicită combinată cu pachetul xorg-x11-drv-Xorg este 00-evdev.conf şi se aplică driverul evdev pentru toate dispozitivele de intrare. Pentru a se potrivi un dispozitiv, toate liniile trebuie să se aplice. Următoarele linii sunt acceptate (cu exemple):
- MatchIsPointer, MatchIsKeyboard, MatchIsTouchpad, MatchIsTouchscreen, MatchIsJoystick - opţiuni care se aplică unui grup de dispozitive.
- MatchProduct "foo|bar":potrivire dispozitive cu nume de produs ce conţine "foo" sau "bar"
- MatchVendor "foo|bar|baz": potrivire dispozitive cu nume de fabricant ce conţine "foo", "bar", sau "baz"
- MatchDevicePath "/dev/input/event*"
- MatchTag "foo|bar": potrivire dispozitive cu o etichetă "foo" sau "bar".
Un exemplu pentru secţiunea de configurare specifice utilizatorului:
Section "InputClass" Identifier "lasermouse slowdown" MatchIsPointer "on" MatchProduct "Lasermouse" MatchVendor "LaserMouse Inc." Option "ConstantDeceleration" 20 EndSection
Această secţiune se va potrivi cu un dispozitiv care conţine "Lasermouse" de la "Lasermouse Inc" şi se aplică o deceleraţie constantă de 20 pe acest dispozitiv. Unele device-uri sunt preferate de serverul X,deși nu ar trebui. Aceste dispozitive pot fi ignorate:
Section "InputClass" Identifier "no need for accelerometers in X" MatchProduct "accelerometer" Option "Ignore" "on" EndSection
Exemple configurații
Subcapitolele următoare descriu exemple de configuratii utilizate în mod obişnuit. Reţineţi că, dacă utilizaţi un mediu desktop, cum ar fi GNOME sau KDE, opţiunile stabilite în xorg.conf pot fi suprascrise cu optiuni specifice.
Exemplu: Emulare rotiță mouse(pentru TrackPoint)
Dacă deţineţi un computer cu TrackPoint (un Thinkpad de exemplu), puteţi adăuga următoarea secțiune în xorg.conf pentru a folosi butonul din mijloc ca o rotiță a mouse-ului:
Section "InputClass" Identifier "Wheel Emulation" MatchIsPointer "on" MatchProduct "TrackPoint" Option "EmulateWheelButton" "2" Option "EmulateWheel" "on" EndSection
Pentru suport complet (inclusiv de derulare pe orizontală) puteţi folosi următoarele:
Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
Exemplu:Tap-to-click
Tap-to-click poate fi activat în fereastra de dialog de configurare a mouse-ului (în fila touchpad), dar dacă doriți să îl aveți activat deja la login(gdm,kdm):
Section "InputClass" Identifier "tap-by-default" MatchIsTouchpad "on" Option "TapButton1" "1" EndSection
Exemplu:Scheme tastatură pe laptop Acer 5920G
Modelul tastaturii şi aspectul se poate seta în fişierul /etc/X11/xorg.conf.d/keyboard.conf sau orice alt fişier .conf în acelaşi director.
- MatchIsKeyboard "yes":setaţi dispozitivul de intrare la o tastatură
- Option "XkbModel" "acer_laptop":set model tastatură la un laptop Acer * Option "XkbLayout" "ro":setează modelul tastaturii pentru limba română
- Option "XkbVariant" "sundeadkeys":setați varianta pentru tastele inactive Sun.Puteţi omite XkbVariant dacă rămâneți cu varianta standard.
O listă cu aranjamente de tastatură şi modele poate fi găsită în /usr/share/X11/xkb/rules/base.lst.
Section "InputClass" Identifier "Keyboard Defaults" MatchIsKeyboard "yes" Option "XkbModel" "acer_laptop" Option "XkbLayout" "ro" Option "XkbVariant" "sundeadkeys" EndSection
Setări tastatură
Pot apărea erori în detectarea corectă a tastaturii.Pentru a vedea o listă completă de modele de tastatură:
/usr/share/X11/xkb/rules/xorg.lst
Pentru a seta dispunerea tastelor pentru sesiunea curentă Xorg:
# setxkbmap dvorak
Intârzierea repetării tastelor și rata
Folosiți xset r rate DELAY RATE și apoi xinitrc pentru ca schimbarea sa fie permanentă.
Vizualizarea setărilor tastaturii
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Applied rules from evdev:
model: evdev
layout: us
options: terminate:ctrl_alt_bksp
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete
symbols: pc+us+inet(evdev)+terminate(ctrl_alt_bksp)
geometry: pc(pc104)
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc104)" };
};
Setarea dispunerii tastelor cu Hot-Plugging
Pentru a modifica permanent dispunerea tastelor,adăugaţi următoarele în xorg.conf:
Section "InputClass" Identifier "Keyboard Defaults" MatchIsKeyboard "yes" Option "XkbLayout" "dvorak" EndSection
Reţineţi că aceasta se află într-o secţiune InputClass şi nu în secţiunea InputDevice pentru tastatură.
Comutarea între aranjamentele de taste
Pentru a putea comuta cu uşurinţă între aranjamente tastatură,trebuiesc modificate optiunile utilizate în oricare dintre cele două metode. De exemplu, pentru a comuta între un layout us şi un layout ro folosind tasta Caps Lock:
Option "XkbLayout" "us, ro" Option "XkbOptions" "grp:caps_toggle"
Acest lucru este util mai ales dacă folosiți un mediu desktop care nu are suport pentru aranjamente de tastatură.
Dezactivare permanentă mousekeys
Pentru a dezactiva permanent mousekeys şi pentru a preveni Shift + NumLock sau Shift + Alt + NumLock pentru a o activa editați:
/usr/share/X11/xkb/compat/complete
și decomentați:
augment "mousekeys" augment "accessx(full)"
Fonturi
A se vedea Configurare fonturi pentru informaţii despre configurarea fonturilor.
Rularea Xorg
In primul rand va trebui să adăugaţi dbus la daemon:
DAEMONS=(syslog-ng dbus network crond)
Dacă doriti sa porniți dbus fără a reporni:
# /etc/rc.d/dbus start
Apoi se pornește Xorg cu comanda:
$ startx
sau
$ xinit -- /usr/bin/X -nolisten tcp
Dacă apare o problemă,incercati sa vizualizati jurnalul /var/log/Xorg.0.log.Căutati liniile care încep cu (EE), care reprezintă erori,iar (WW) avertizări.