Xorg-server 1.7 to 1.9 upgrade guide

Warning

This page has been proposed for deletion because it does not meet the Editing Guidelines.
If you disagree, please discuss it here.

Warning

current ebuilds are much past this, the article is very out of date
[ebuild R ] x11-base/xorg-server-1.16.4-r1:0/1.16.1
[ebuild R ] x11-base/xorg-x11-7.4-r2

Before upgrade

  • Backup your /etc/X11 directory.
  • Backup the old versions of xorg-server and drivers. This can be done with quickpkg.
  • xorg-server supports hot plugging through the event interface so ensure the evdev driver is enabled in INPUT_DEVICES in make.conf.

Basic upgrade

  1. Read and follow Gentoo's Xorg-server 1.8 Upgrade Guide
  2. Read Gentoo's Xorg-server 1.9 Upgrade Guide

After upgrade

  • Rebuild all drivers with new xorg-server, you may use qlist from Package:Portage-Utils in order to get a list of installed drivers:
# emerge -av1 $(qlist -IC x11-drivers/)

Configuration

In order to configure devices that hotplugging does not handle, you may use /etc/X11/xorg.conf.d instead of /etc/X11/xorg.conf. xorg.conf is optional and if you don't need any special configuration, you may use xorg without it.

Example config: keyboard with polish layout

Next, we edit /etc/X11/xorg.conf.d/10-keyboard.conf:

Section "InputClass"
	Identifier	"keyboard-all"
	Driver		"evdev"
	Option		"XkbRules"  "xorg"
	Option		"XkbModel"  "pc105"
	Option		"XkbLayout" "pl"

	MatchIsKeyboard	"on"
EndSection

Known Issues

Check /var/log/Xorg.0.log if you have problems with the new xorg-server. Also, notice that some errors are present, even with a working config. Here is one such error:

[ 852.864] (EE)  ioctl EVIOCGNAME failed: Inappropriate ioctl for device

This error can be ignored, but in order to have everything clean, add MatchDevicePath "/dev/input/event*" into your xorg.conf. Edit /etc/X11/xorg.conf.d/10-keyboard.conf with your favorite text editor:

Section "InputClass"
	Identifier	    "evdev pointer catchall"
	Driver		    "evdev"
	MatchIsPointer      "on"
        MatchDevicePath     "/dev/input/evdev*"
EndSection