Linux/Xorg

Aus VivaLV
Version vom 22. November 2012, 15:15 Uhr von Thomas (Diskussion | Beiträge) (→‎Monitorausgang festlegen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

xorg-server

Autoconfig mit xorg-server 1.5-1.7

Ab Version 1.5 ermittelt xorg-server wegen der im Standard aktivierten Autoconfig die Konfiguration für Eingabegeräte von hald, statt von /etc/X11/xorg.conf. Damit das funktioniert, muss hald automatisch starten beim Booten:

rc-update add hald default

Falls noch nicht geschehen, muss man evdev bei INPUT_DEVICES in /etc/make.conf hinzufügen, z.B.:

INPUT_DEVICES="keyboard mouse synaptics evdev"

Und danach:

emerge --ask --update --newuse --deep world

Damit man trotz Autoconfig noch eine deutsche Tastatur und eine angepasste Touchpad-Konfiguration hat, muss man die Geräte woanders konfigurieren.

Die Standardkonfiguration kann man sich als Vorlage für die angepasste Konfiguration anschauen in /usr/share/hal/fdi/policy/10osvendor/<Datei>, falls vorhanden.

Anpassungen macht man in /etc/hal/fdi/policy/<Datei>. Dabei müssen nur die Keys eingetragen werden, die man überschreiben will.

Nach einer Änderung müssen hald und xdm neu gestartet werden:

/etc/init.d/hald restart
/etc/init.d/xdm restart

Man kann die Autoconfig in /etc/X11/xorg.conf auch deaktivieren, um doch dort die Eingabegeräte wie gehabt konfigurieren zu können:

Section "ServerLayout"
        Option "AutoAddDevices" "False"
EndSection

Dies kann aber unter Umständen Probleme machen, z.B. mit KDE 4.

Tastatur

/etc/hal/fdi/policy/10-keymap.fdi:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keys">
      <merge key="input.xkb.layout" type="string">de</merge>
      <merge key="input.xkb.variant" type="string">nodeadkeys</merge>
      <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge>
    </match>
  </device>
</deviceinfo>

In diesem Beispiel wird folgendes angepasst:

  • Layout: de
  • Variante: nodeadkeys
  • ctrl-alt-backspace erlauben (notwendig ab 1.6)

Synaptics Touchpad

/etc/hal/fdi/policy/11-x11-synaptics.fdi:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="input.x11_driver" contains="synaptics">
      <merge key="input.x11_options.SHMConfig" type="string">On</merge>
      <merge key="input.x11_options.TapButton1" type="string">1</merge>
      <merge key="input.x11_options.TapButton2" type="string">2</merge>
      <merge key="input.x11_options.VertEdgeScroll" type="string">1</merge>
      <merge key="input.x11_options.VertTwoFingerScroll" type="string">0</merge>
      <merge key="input.x11_options.HorizTwoFingerScroll" type="string">0</merge>
    </match>
  </device>
</deviceinfo>

In diesem Beispiel wird folgendes angepasst:

  • man kann mit synclient die Optionen im laufenden Betrieb ändern
  • mit einem Finger tippen = linke Maustaste
  • mit 2 Fingern tippen = mittlere Maustaste
  • vertikal scrollen mit einem Finger am rechten Rand
  • scrollen mit 2 Fingern vertikal und horizontal deaktivieren

Autoconfig mit xorg-server ab 1.8

Ab Version 1.8 ermittelt xorg-server die verfügbaren Eingabegeräte von udev, konfiguriert werden sie in /etc/X11/xorg.conf mit der neuen Section InputClass. Auf diese wird nicht in der Section ServerLayout verwiesen.

Falls noch nicht geschehen, muss man evdev bei INPUT_DEVICES in /etc/make.conf hinzufügen, z.B.:

INPUT_DEVICES="keyboard mouse synaptics evdev"

Und danach:

emerge --ask --update --newuse --deep world

Damit man eine deutsche Tastatur und eine angepasste Touchpad-Konfiguration hat, muss man die Geräte in /etc/X11/xorg.conf konfigurieren.

Man kann die Autoconfig in /etc/X11/xorg.conf auch deaktivieren, wenn man kein Hotplug will oder braucht:

Section "ServerLayout"
        Option "AutoAddDevices" "False"
EndSection

Dies kann aber unter Umständen Probleme machen, z.B. mit KDE 4.

Tastatur

Section "InputClass"
        Identifier "evdev keyboard catchall"
        Driver "evdev"
        Option "XkbLayout" "de"
        Option "XkbVariant" "nodeadkeys"
        Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,compose:rwin,terminate:ctrl_alt_bksp"

        MatchIsKeyboard "on"
EndSection

In diesem Beispiel wird folgendes angepasst:

  • Layout: de
  • Variante: nodeadkeys
  • ctrl-alt-backspace erlauben (notwendig ab 1.6)

Synaptics Touchpad

Section "InputClass"
        Identifier "synaptics-all"
        Driver "synaptics"
        Option "SHMConfig" "On"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "VertEdgeScroll" "1"
        Option "VertTwoFingerScroll" "0"
        Option "HorizTwoFingerScroll" "0"

        MatchIsTouchpad "on"
EndSection

In diesem Beispiel wird folgendes angepasst:

  • man kann mit synclient die Optionen im laufenden Betrieb ändern
  • mit einem Finger tippen = linke Maustaste
  • mit 2 Fingern tippen = mittlere Maustaste
  • vertikal scrollen mit einem Finger am rechten Rand
  • scrollen mit 2 Fingern vertikal und horizontal deaktivieren

NX

Bei einer NX Session mit xorg-server 1.5 als Client muss man dafür sorgen, dass der richtige Keyboard-Treiber (bei 1.5 normalerweise evdev) verwendet wird. Ansonsten fuktionieren beispielsweise Umlaute oder Cursortasten nicht.

Beispielsweise kann man folgendes Script beim Autostart von KDE ausführen lassen:

if [ ${DISPLAY:1:2} == "11" ] ; then
  setxkbmap -model evdev -layout de -variant nodeadkeys
fi

Da NX Sessions als Displaynummer normalerweise ab 1100 verwenden, sollte das nur auf NX Sessions wirken.

Schwarze Console auf vt1

Wenn nach dem Start von X ein CTRL-ALT-F1 zu einem schwarzen Bildschirm statt zu tty1 führt, muss in /boot/grub/menu.lst als Kernelbootparameter vga=791 (oder eine andere Zahl für eine andere Auflösung) hinzugefügt werden.

Monitorausgang festlegen

Section "Device"
   Identifier     "Videocard0"
   Driver         "nvidia"
   Screen          0
   Option         "ConnectedMonitor" "CRT,DFP"
EndSection

Section "Device"
   Identifier     "Videocard1"
   Driver         "nvidia"
   Screen          1
   Option         "ConnectedMonitor" "CRT,DFP"
EndSection

Section "Screen"
   Identifier     "Screen0"
   Device         "Videocard0"
   Monitor        "Monitor0"
...
   Option "UseDisplayDevice" "CRT"
...
EndSection

Section "Screen"
   Identifier     "Screen1"
   Device         "Videocard1"
   Monitor        "Monitor1"
...
   Option "UseDisplayDevice" "DFP"
...
EndSection

Upgrade auf 1.6

Siehe http://www.gentoo.org/proj/en/desktop/x/x11/libxcb-1.4-upgrade-guide.xml und http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-1.6-upgrade-guide.xml.

Upgrade auf 1.8/1.9

Siehe http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-1.8-upgrade-guide.xml.

Installation von xorg-server 1.7 verhindern

Momentan gibt es noch keine stable NVidia-Treiber, die mit xorg-server 1.7 zusammenarbeiten. Daher macht es Sinn, die Installation von 1.7 zu verhindern.

/etc/portage/package.mask:

>=x11-base/xorg-server-1.6.9
>=x11-libs/libX11-1.3.2
>=x11-libs/libXinerama-1.1
>=x11-proto/xextproto-7.1.1
>=x11-libs/libXext-1.1.1
>=x11-libs/libXi-1.3
>=x11-proto/xcmiscproto-1.2.0
>=x11-proto/xf86bigfontproto-1.2.0
>=x11-proto/bigreqsproto-1.1.0
>=x11-proto/xineramaproto-1.2
>=x11-proto/xextproto-7.1.1
>=x11-proto/fixesproto-4.1.1
>=x11-proto/inputproto-2.0
>=x11-libs/libXinerama-1.1
>=x11-proto/recordproto-1.14
>=x11-libs/libXtst-1.1.0
>=x11-proto/scrnsaverproto-1.2.0
>=x11-libs/libXScrnSaver-1.2.0
>=x11-proto/xf86vidmodeproto-2.3
>=x11-libs/libXxf86vm-1.1.0
>=x11-apps/xinput-1.5.0
>=media-libs/mesa-7.7.1