AA_graffiti-background_123rf-7692084_milla74.jpg

© milla74, 123rf.com

Brett und Stift

Wacom Bamboo Pen & Touch CTH-460 unter Linux einrichten

15.12.2010 Kreative haben es unter Linux nicht leicht: Wer seine Grafiken mit einem Zeichentablett erstellen möchte, kommt in vielen Fällen um ein manuelles Setup nicht herum.

Ein Zeichentablet einzurichten, gehört zu den schwierigsten Aufgaben für Heimnutzer. Dabei gilt es umso größere Klippen zu umschiffen, je neuer die Hardware ist – so auch bei der Bamboo-Serie von Wacom.

Aktuell gibt es zwei Möglichkeiten, ein Wacom-Tablett in Betrieb zu nehmen. Der traditionelle Weg führt über das Kernel-Modul wacom.ko und ein paar Tools, die das Linuxwacom-Projekt [1] pflegt und zurzeit in Version 0.8.8 zum Download bereitstellt. Diese Methode setzt auf das veraltete HAL, funktioniert aber mit etwas älteren Distributionen und älterer Hardware weiterhin problemlos. Die meisten Anleitungen im Internet basieren darauf.

Das hier beschriebene neue Verfahren funktioniert über einen passenden X.org-Treiber und kommt ohne HAL aus. Aus dem alten Treiber benötigen Sie dazu nur das Kernel-Modul, aber keine Tools. Das Bamboo Pen & Touch von Wacom lässt sich nur über diesen Weg installieren, der herkömmliche funktioniert nicht.

Hardware-Setup

Als Basis benötigen Sie die grundlegenden Entwicklerwerkzeuge und X.org-Entwicklerpakete, die Header-Dateien des Kernels sowie einige weitere Entwicklerpakete. Erhalten Sie unter OpenSuse eine Fehlermeldung bezüglich der xorg-server Entwicklerpakete, dann beheben Sie dieses Problem, indem Sie xorg-x11-server-sdk einrichten.

Das Bamboo Pen & Touch benötigt den neuen X.org-Treiber aus dem aktuellen Entwicklerzweig sowie das Kernelmodul des alten Wacom-Treibers. Den X.org-Treiber laden Sie via Git (Paket git-core) herunter:

$ git clone git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom

Anschließend wechseln Sie ins neu entstandene Verzeichnis und geben hier den Befehl ./autogen.sh --prefix=/usr ein, respektive für ein 64-Bit-System ./autogen.sh --prefix=/usr --libdir=/usr/lib64 (das gilt sinngemäß auch für die folgenden Schritte). Falls Abhängigkeitsprobleme auftreten, ziehen Sie über das Paketmanagement die bemängelten Pakete nach (autoconf, dh-autoreconf). Autogen beklagt sich hingegen in jedem Fall über eine veraltetet Version der X.org-Makros. Installieren Sie deshalb zunächst aus dem Quellcode die neueste Version von util-macros. Details dazu finden Sie im Kasten "Stolpersteine".

Stolpersteine

Beim Setup von Tabletts gibt es zahlreiche Fehlerquellen, die es zu vermeiden gilt. Grundvoraussetzung für alle folgenden Schritte ist, dass das Wacom-Kernelmodul beim Anschließen des Tabletts lädt. Das prüfen Sie in einem Terminal mithilfe des Befehls tailf /var/log/messages, mit dem Sie beim Anschließen des USB-Steckers die Meldungen verfolgen. Sie sollten etwa so aussehen wie in Listing 1.

Um die Git-Version von xf86-input-wacom kompilieren zu können, benötigen Sie die neuesten X.org-Makros (Paket util-macros) [4]. Geben Sie beim Aufruf von ./configure unbedingt die Option --prefix=/usr an und rufen Sie danach gleich sudo make install auf.

Falls der Rechner das Tablet erkennt und das Kernelmodul lädt, aber die Ausgabe von xinput list keine Geräte anzeigt, dann stimmt der X.org-Treiber nicht mit dem installierten Wacom-Treiber überein – das deutet auf Überreste einer alten Installation hin. In diesem Fall gibt ein Blick in die Log-Datei des X-Servers über less /var/log/Xorg.0.log weitere Informationen.

Abhilfe schaffen Sie hier, indem Sie den X.org-Treiber wacom_drv.so im Verzeichnis /usr/lib/xorg/modules/input mit der Version aus dem xf86-input-wacom-Quellcode überschreibt (zu finden unter ../src/.libs/).

Listing 1

input: Wacom BambooFun 2FG 4x5 Pen as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/input/input6
input: Wacom BambooFun 2FG 4x5 Finger as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.1/input/input7
usbcore: registered new interface driver wacom
wacom: v1.52-pc-0.3:USB Wacom tablet driver

Läuft autogen.sh fehlerfrei durch, dann kompilieren und installieren Sie den X.org-Treiber über make und sudo make install. Jetzt benötigen Sie noch das Kernel-Modul wacom.ko. Laden Sie dazu die aktuelle Version von der Linuxwacom-Projektseite herunter:

$ wget http://prdownloads.sourceforge.net/linuxwacom/linuxwacom-0.8.8-10.tar.bz2

Entpacken Sie den Tarball, wechseln Sie in das neu entstandene Verzeichnis und geben Sie hier den Befehl

$ ./configure --enable-wacom --prefix=/usr

ein. Nachdem Sie den X.org-Treiber problemlos kompilieren konnten, sollten hier keine Fehlermeldungen mehr auftreten. Rufen Sie nun make auf, aber keinesfalls make install. Der Make-Befehl erstellt das benötigte Kernelmodul, das Sie anschließend im Verzeichnis src/2.6.30 finden. Dieses Modul kopieren Sie nun an die richtige Stelle:

$ sudo cp ./src/2.6.30/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/

Jetzt müssen Sie noch mit sudo depmod -a die Liste der vorhandenen Kernelmodule auffrischen. Danach empfiehlt es sich, den Rechner neu zu starten. Bitte beachten Sie, dass Sie das Modul bei einem Kernel-Update neu baut müssen, da es sonst nicht mehr zum neuen Kernel passt.

Nach dem Neustart schließen Sie das Grafiktablett an und prüfen mittels xinput list, ob das System die Wacom-Hardware erkennt. Die Ausgabe des Befehls zeigt beim Pen & Touch die vier Geräte Pen eraser, Pen stylus, Finger pad und Finger touch an.

Ein bisschen <c>xorg.conf<c>

Im besten Fall funktioniert das Wacom-Tablett mit den neuen X.org-Treibern komplett ohne Einträge in der Konfigurationsdatei des X-Servers. Das System erkennt das Tablett dann einfach als Eingabegerät – der Stift dient quasi als Maus. Linux nutzt dazu den generischen Treiber evdev, der für jegliche Art von X-Events zuständig ist. Damit sollte bei jedem beliebigen Tablet zumindest der Stift funktionieren – dann allerdings ohne Druckfunktion.

Für das künstlerische Nutzen des Zeichentablets genügt das freilich nicht – Sie müssen deshalb ein paar kleine Konfigurationsarbeiten vornehmen. Erfreulicherweise genügt es dazu die in Listing 2 gezeigten Zeilen als Datei unter dem Namen 50-wacom.conf [2] im Verzeichnis /etc/X11/xorg.conf.d/ (Ubuntu: /usr/lib/X11/xorg.conf.d/) abzuspeichern.

Findet sich im genannten Verzeichnis schon die Konfigurationsdatei 10-wacom.conf, lassen Sie diese ruhig als Backup bestehen. Der X-Server verarbeitet die Dateien in nummerischer Reihenfolge, wobei die neue Datei die Einstellungen aus 10-wacom.conf überschreibt.

Listing 2

Section "InputClass"
  Identifier "Wacom class"
# MatchProduct "Wacom|WALTOP|WACOM"
  MatchProduct "Wacom|WACOM"
  MatchDevicePath "/dev/input/event*"
  Driver "wacom"
EndSection
Section "InputClass"
  Identifier "Wacom serial class"
  MatchProduct "Serial Wacom Tablet"
  Driver "wacom"
EndSection
Section "InputClass"
  Identifier "Wacom serial class identifiers"
  MatchProduct "WACf|FUJ02e5|FUJ02e7"
  Driver "wacom"
EndSection
# N-Trig Duosense Electromagnetic Digitizer
Section "InputClass"
  Identifier "Wacom N-Trig class"
  MatchProduct "HID 1b96:0001|N-Trig Pen"
  MatchDevicePath "/dev/input/event*"
  Driver "wacom"
EndSection

Auch bei der neuen Konfigurationsdatei gilt es zwischen dem alten, kernelbasierten Treiber und dem neuen X.org-Treiber zu unterscheiden. Die neue Konfigurationsdatei nutzt den Gerätepfad /dev/input/event* und spezialisiert sich auf Eingabegeräte mit einem bestimmten Produktnamen oder einer Geräte-ID. Die alte Konfiguration nutzte stets die Gerätedatei /dev/input/wacom mit unterschiedlichen Einträgen für den Pen, den Radierer, das Touchpad und so weiter. Die neue Wacom-Konfigurationsdatei deckt somit alle Eingabegeräte von Wacom ab. In Arbeit sind zudem auch Treiber für Waltop-Geräte, etwa von Medion oder Aiptek. Der entsprechende Code befindet sich jedoch noch nicht "upstream".

im Grunde genommen sind auch die Einträge MatchDevicePath ... überflüssig, da einzig der Treiber zählt. So kommt die mit OpenSuse 11.3 mitgelieferte Datei /etc/X11/xorg.conf.d/20-wacom.conf zum Beispiel komplett ohne Verweise auf /dev/input/event* aus.

Setup in Gimp

Obwohl sich der Stift nun bereits in Gimp nutzen lässt, müssen Sie noch einige Einstellungen vornehmen. Dazu wählen Sie in Gimp den Menüpunkt Bearbeiten | Einstellungen | Eingabegeräte und klicken auf Erweiterte Eingabegeräte konfigurieren.

Hier finden Sie nun die vier Einträge für das Wacom-Tablet, von denen Sie den Pen (Stift) und den Eraser (Radierer) auf Bildschirm stellen (Abbildung 1). Die Einstellungen für X, Y und Druck belassen Sie am besten bei den Voreinstellungen. Möchten Sie in Gimp auch per Finger malen, dann aktivieren Sie auch den Eintrag Finger für das Touchpad. Damit kommen Sie allerdings vermutlich der Maus ins Gehege.

Abbildung 1

Abbildung 1: Gimp bringt einen umfassenden Einstellungsdialog mit.

Xinput und Xsetwacom

Wie erwähnt kümmert sich auf aktuellen Distributionen mit X.org 1.7 oder höher der allgemeine Event-Treiber evdev um Eingabegeräte. Er kennt sämtliche Eingabegeräte, sodass spezielle Treiber für Tastaturen, Mäuse oder andere Eingabegeräte entfallen. Im Optimalfall sollte Evdev auch Grafiktabletts komplett automatisch handhaben, der entsprechende Code müsste dann aber in den Kernel.

Welche Eingabegeräte der X-Server aktuell erkannt hat, sehen Sie sich mit dem Befehl xinput list an. Interessant sind hier alle Einträge außer den Platzhaltern Virtual core XTEST. Der Befehl sollte bei Notebooks zum Beispiel das Touchpad anzeigen und natürlich auch Maus und Tastatur. Mit Evdev alleine funktioniert das Bamboo-Tablet wie eine Maus.

Bei den Wacom-Tablets übernehmen der X.org-Treiber wacom_drv.so und das Kernel-Modul wacom.ko die zentralen Funktionen des Tablets. Erst damit bietet das Bamboo die druckempfindlichen Fähigkeiten, und nur damit funktioniert das Touchpad. Zum Paket xf86-input-wacom gehört auch das Tool xsetwacom. Es entspricht in etwa dem generischen Xinput des X-Servers, ist aber speziell auf die Wacom-Tabletts zugeschnitten.

Haben Sie xf86-input-wacom korrekt installiert, dann sollte die Ausgabe von which xsetwacom als Pfad /usr/bin/xsetwacom anzeigen. Sie benutzen dann Xsetwacom aus dem Code von xf86-input-wacom. Zeigt die Ausgabe hingegen als Pfad /usr/local/bin/xsetwacom an, dann kam der Befehl vermutlich mit einem selbst kompilierten Linuxwacom oder einem Distributionspaket wacom-tools auf den Rechner. Sie benutzen dann eine veraltete Version von Xsetwacom, was beim ersten Betrieb nicht auffällt, aber beim Feintuning zu Problemen führen kann (erkennbar an nicht sehr verständlichen Fehlermeldungen).

Als weiterer Test neben dem Pfad eignet sich ein Vergleich der Ausgabe von xinput list und xsetwacom list. Im Optimalfall zeigt xsetwacom list nur die Wacom-Geräte ohne ID an (Listing 3). Führt der Befehl hingegen sämtliche Eingabegeräte auf (wie xinput list), dann kann das auf ein Versionsproblem hinweisen (muss aber nicht). Falls die Ausgabe von xsetwacom list keine Wacom-Geräte anzeigt, traten bei der Installation in jedem Fall Fehler auf.

Listing 3

$ setwacom list
Wacom BambooFun 2FG 4x5 Pen eraser ERASER
Wacom BambooFun 2FG 4x5 Pen stylus STYLUS
Wacom BambooFun 2FG 4x5 Finger pad PAD
Wacom BambooFun 2FG 4x5 Finger touch TOUCH

Arbeiten mit xsetwacom

Als Nächstes möchten Sie nun vermutlich endlich die Buttons des Zeichentablets und des Stiftes einrichten oder die Druckempfindlichkeit einstellen. Halten Sie das Tablet so vor sich hin, dass sich die rote Schlaufe für den Stift auf der rechten Seite und die Buttons zur linken befinden, dann ist die oberste Taste Button1, die nächste Button2 und so weiter. Beim Stift fungiert die Spitze als Button1, Button2 und Button3 befinden sich auf der Wippe. Auch der Radierer bringt einen Button1 mit. Mit dem Touch-Bereich des Wacom-Tablets können Sie auch mit zwei Fingern scrollen oder über das Spreizen von zwei Fingern zoomen.

Möchten Sie mehr über die Fähigkeiten eines bestimmten Eingabegerätes erfahren, dann rufen Sie einfach xinput list-props Geräte-ID auf. Auch mit xsetwacom können Sie einige Details über das benutzte Tablet erfahren. So gibt zum Beispiel xsetwacom list param Gerätename eine umfangreiche Liste von möglichen Einstellungen und den aktuellen Werten aus. Gerätename müssen Sie hier (und bei allen xsetwacom-Befehlen) durch den kompletten Namen aus xsetwacom list ersetzen (Listing 4, Zeile 1).

Damit erhalten Sie eine Liste der möglichen Einstellungen. Um Informationen zu einem bestimmten Wert zu erhalten, nutzen Sie den Befehl xsetwacom get Gerätename Parameter. Möchten Sie zum Beispiel wissen, ob das Tablet korrekt ausgerichtet ist, geben Sie folgenden Befehl ein:

$ xsetwacom get "Wacom BambooFun 2FG 4x5 Finger pad" Rotate

Die Ausgabe sollte NONE anzeigen, das Tablet befindet sich somit im Normalmodus für Rechtshänder. Möchten Sie es als Linkshänder benutzen, können Sie es nicht einfach um 180° drehen, da sonst Aufwärtsstriche abwärts verlaufen und rechts und links vertauscht sind. Abhilfe schaffen Sie über den Befehl xsetwacom set (Listing 4, Zeilen 3 und 4).

Zu den ersten Einstellungen gehört meist auch der Bewegungsmodus. In der Grundeinstellung verwendet das Touchpad auf einen relativen Modus, das Zeichentablet einen absoluten. Das bedeutet, dass sich der Stift immer dort auf dem Bildschirm befindet, wo sie ihn auf dem Tablet ansetzen. Tippen Sie auf die rechte obere Ecke, dann landet der Stift auch auf dem Bildschirm genau dort.

Beim Touchpad im relativen Modus verändert sich der Mauszeiger immer relativ zur aktuellen Position: Befindet sich der Mauszeiger in der Mitte des Bildschirms und Sie tippen mit dem Finger in die obere rechte Ecke, bleibt der Mauszeiger in der Mitte des Bildschirms stehen. Die Touch-Oberfläche verhält sich also wie ein gewöhnliches Touchpad bei Notebooks.

Manche Nutzer bevorzugen auch beim Zeichnen mit dem Stift den relativen Modus. Umgekehrt möchten Sie vielleicht mit dem Finger zeichnen und das Pad dazu in den absoluten Modus umstellen. Für beide Aufgaben gibt es entsprechende Xsetwacom-Befehle (Listing 4, Zeilen 6 und 7).

Persistente Einstellungen

Sämtliche Xsetwacom-Befehle gelten nur für die aktuelle Sitzung. Das hat den Vorteil, dass Sie bei einer Fehlkonfiguration das Gerät durch einfaches Aus- und Einstecken zurücksetzen können. Möchten Sie eine bestimmte Einstellung permanent speichern, schreiben Sie die passenden Befehle ans Ende der Datei ~/.bashrc, sodass das System sie bei jedem Login ausführt.

Druckempfindlichkeit

Ebenfalls über Xsetwacom bestimmen Sie die Druckempfindlichkeit des Stifts und des Radierers (Abbildung 2). Die aktuellen Werte lesen Sie über den Befehl xsetwacom get aus (Listing 4, Zeile 9), die Standardwerte lauten 0 0 100 100. Um erst bei sehr starkem Druck einen satten Strich zu erhalten, ändern Sie die Standardwerte zu 50 0 100 50 (Listing 4, Zeile 10). Mögen Sie es lieber etwas leichter, dann stellen Sie die Werte auf 0 20 80 100. Die Werte des ersten und letzten Parameters zusammen müssen immer 100 ergeben, ebenso die Werte in der Mitte.

Abbildung 2

Abbildung 2: Solche "Kinderzeichnungen" lassen sich nur mit einem Grafiktablet mit druckempfindlichem Stift erstellen.

Buttons belegen

Anders als bei Drehung und Modus, bei denen die vorgegebenen Einstellungen für die meisten Aufgaben völlig ausreichen, lassen die Buttons sehr viel Spielraum für individuelle Aufgaben. So möchte man in Gimp eventuell andere Funktionen nutzen als in Inkscape oder setzt die Buttons auf dem Pad für allgemeine Desktop-Funktionen ein, die Knöpfe des Stiftes dagegen für besondere Aufgaben.

In der Grundeinstellung entspricht Button1 jeweils der linken Maustaste, Button2 der mittleren und Button3 der rechten. Drücken Sie also auf dem Desktop den oberen Button des Stiftes, erscheint das Kontextmenü; wählen Sie den unteren, versucht Linux ein Textschnipsel aus der Zwischenablage einzufügen. Die Spitze des Stiftes agiert als linke Maustaste. Fahren Sie über einen Schalter, dann müssen Sie den Stift drücken, um eine Aktion auszulösen. Mit etwas Übung klappt so auch Drag&Drop im Dateimanager problemlos.

Eine Tastenkombination, die nicht nur in Gimp das Arbeiten einfacher macht, ist [Strg]+[Z]. Es lohnt sich deshalb für das Zeichnen, diese Tastenkombination auf einen der vier Buttons des Tablets oder einen der zwei Buttons auf dem Stift zu legen. Auch hierzu genügt ein Aufruf von xsetwacom (Listing 4, Zeile 12).

Dieser Befehl stellt den untersten Button auf Rückgängig machen ein. Arbeiten Sie im Vollbildmodus und möchten die Werkzeugpalette bei Bedarf ein- oder ausblenden, dann klappt das über [Strg]+[B]. Diesen Shortcut können Sie zum Beispiel auf Button3 des Stiftes setzen.

Listing 4

$ xsetwacom list param "Wacom BambooFun 2FG 4x5 Finger pad"
$ xsetwacom set "Wacom BambooFun 2FG 4x5 Finger pad" Rotate HALF
$ xsetwacom set "Wacom BambooFun 2FG 4x5 Pen stylus" Rotate HALF
$ xsetwacom set "Wacom BambooFun 2FG 4x5 Finger touch" mode ABSOLUTE
$ xsetwacom set "Wacom BambooFun 2FG 4x5 Pen stylus" mode RELATIVE
$ xsetwacom get "Wacom BambooFun 2FG 4x5 Pen stylus" Presscurve
$ xsetwacom set "Wacom BambooFun 2FG 4x5 Pen stylus" Presscurve 50 0 100 50
$ xsetwacom set "Wacom BambooFun 2FG 4x5 Finger pad" Button4 "key CTRL Z"

Es geht auch grafisch

Für Liebhaber einer GUI gibt es mit dem Wacom Control Panel auch ein grafisches Tool, über das sich diese Einstellungen vornehmen lassen (Abbildung 3). Es steht in Launchpad [3] als DEB-Paket und im Quellcode zum Download bereit.

Abbildung 3

Abbildung 3: Mit dem Python-Tool Wacom Control Panel lässt sich auch die Druckempfindlichkeit des Stiftes grafisch einrichten.

Da es sich um ein Python-Programm handelt, müssen Sie den Code nicht kompilieren. Verwenden Sie also eine andere Distribution als Ubuntu oder Debian, holen Sie sich einfach den Quellcode, entpacken diesen in ein beliebiges Verzeichnis und rufen dann im Verzeichnis den Befehl python wacom_utiliy.py auf. 

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare