Weiter Zurück Inhalt

5. Tabletts zur Verwendung mit XFree 3 und XFree 4

5.1 Benötigte XFree Version

Es sollte mindestens XFree Version 3.3.3.1 verwendet werden, da diese Version über erweiterte XInput Unterstützung verfügt. Ausserdem funktioniert nun die zweite Seitentaste und ein Nebeneffekt, der in früheren Versionen die Maus blockieren lies ist nun beseitigt.

Falls eine ältere Version verwendet werden muß: XInput sollte ab Version 3.1.2.d verfügbar sein.

Die XInput Unterstützung für XFree wird in der Datei XF86Config konfiguriert. Meistens findet man diese Datei in /etc oder in /etc/x11. Ich werde nun zwei sehr kurze Beispielkonfigurationen zeigen, die erste behandelt XFree 3, die andere ist für XFree 4. Anhand dieser Beispiele werde ich jedes Schlüsselwort und seine Verwendung erläutern.

5.2 Beispiel-Konfigurationsauszug für XFree 3

Section "Module"
# Wacom Gerätetreiber
Load "xf86Wacom.so"
EndSection

Section "XInput"
# Parameter für Wacom Stift
  SubSection "WacomStylus"    # Typ des Eingabegerätes
    Port "/dev/ttyS0"         # Serieller Port
    DeviceName "Pen1"         # Name, frei wählbar
    Baudrate 9600             # nur für intuos
    Mode Absolute             # Aktiven Tablettbereich auf Bildschirm abbilden
    AlwaysCore                # Siehe Text
    HistorySize 200           # Puffergröße für Bewegungsereignisse
  EndSubSection

# Parameter für Wacom Radierer
  SubSection "WacomEraser"
    Port "/dev/ttyS0" 
    DeviceName "Eraser1"
    Baudrate 9600
    Mode Absolute
    AlwaysCore   
    HistorySize 200
  EndSubSection

# Parameter für Wacom Cursor (Maus)
  SubSection "WacomCursor"
    Port "/dev/ttyS0"         
    DeviceName "Cursor"       
    Baudrate 9600             
    Mode Absolute             
    AlwaysCore                
    HistorySize 200           
  EndSubSection

EndSection

5.3 Beispiel-Konfigurationsauszug für XFree 4

# Deklaration der Eingabegeräte, werden später definiert
Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0"    "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "pen1"      "AlwaysCore"
        InputDevice    "eraser1"   "AlwaysCore"
        InputDevice    "cursor1"   "AlwaysCore"
EndSection

Section "Module"
        Load  "extmod"
        Load  "xie"
        Load  "pex5"
        Load  "glx"
        Load  "dri"
        Load  "GLcore"
        Load  "dbe"
        Load  "record"
        Load  "wacom"       # Wacom Gertätetreiber
EndSection

# Parameter für Wacom Stift
Section "InputDevice"   
        Identifier   "pen1"     
        Driver       "wacom"
        Option       "Type" "stylus"
        Option       "Device" "/dev/ttyS0"
Endsection
# Parameter für Wacom Radierer
Section "InputDevice"   
        Identifier   "eraser1"  
        Driver       "wacom"
        Option       "Type" "eraser"
        Option       "Device" "/dev/ttyS0"
Endsection
#  Parameter für Wacom cursor (Maus)
Section "InputDevice"   
        Identifier   "cursor1"  
        Driver       "wacom"
        Option       "Type" "cursor"
        Option       "Device" "/dev/ttyS0"
Endsection

5.4 Unterschiede in der Syntax zwischen XFree 3 und XFree 4

Bitte beachten Sie die unterschiedliche Syntax zwischen XFree 3 und XFree 4:
In XFree 3 erfolgt die Konfiguration in der Sektion "XInput" mit jeweils einer Untersektion für jedes Gerät. XFree 3 hat Schlüsselwörter.
In XFree 4 erfolgt die Konfiguration in jeweils einer Sektion "InputDevice" für jedes Gerät. Alle Einstellungen sind "Options", mit einer Ausnahme: Dem "identifier" Schlüsselwort. Die Alwayscore Option befindet sich in der Sektion Serverlayout.

Da die Beispiele die Unterschiede gut hervorheben, werden diese Syntaxunterschiede für den Rest des Dokumentes als bekannt vorausgesetzt.

5.5 Sektion Module

XFree verwendet für die XInput-Unterstützung Module. Der Wacom-Gerätetreiber für XFree 3 ist xf86Wacom.so, bei XFree 4 heist die Datei wacom_drv.o. Die Dateien befinden sich normalerweise in /usr/X11R6/lib/modules/ beziehungsweise in /usr/X11R6/lib/modules/input. Wir müssen in der "Module" Sektion angeben, daß wir diesen Treiber laden möchten (siehe obige Beispiele):

XFree 3: Load "xf86Wacom.so"
XFree 4: Load "wacom"

Diese Einstellung darf nur einmal in einer XF86Config-Datei vorkommen.

5.6 Device Type (XF3) und Type (XF4)

Ein physikalisches Gerät kann sein:

Die Modelle penpartner und graphire erkennen lediglich den Typ eines Gerätes, können aber nicht zwischen verschiedenen Geräten gleichen Typs unterscheiden. Es daher nicht möglich, einen auf rot und einen auf blau konfigurierten Stift zu verwenden. Alles, was diese Modelle an Information übermitteln, ist: "Stift ist aufgesetzt", oder "Radierer ist aufgesetzt", oder "Maus ist aufgesetzt".

XInput weist die Geräte zu Gerätetypen zu. Diese Gerätetypen werden in der XF86Config spezifiziert. Bei XFree 3 ist dies eine Untersektion der Sektion XInput, bei XFree 4 sind es individuelle Sektionen Inputdevice.
Die Gerätetypen sind:

Wie die Beispielkonfigurationen zeigen, werden Gerätetypen in XFree 3 mit dem Schlüsselwort "Devicetype" und in XFree 4 als Option "Type" spezifiziert.

5.7 DeviceName (XF3) und Identifier (XF4)

Jedem konfigurierten Gerät muß ein Name zugewiesen werden. Dieser Name wird später vom Programm verwendet, um mit dem Gerät zu kommunizieren. Der Name kann frei gewählt werden. Der Einsatz dieses Parameters ist zwingend. in XFree 3 wird das Schlüsselwort "Devicename" verwendet, in XFree 4 kommt Identifier "name" zum Einsatz. Bitte beachten Sie, daß Identifier keine Option sondern ein SChlüsselwort ist !

5.8 Port (XF3) und Device (XF4)

XInput muß wissen, an welcher Schnittstelle ein Tablett zu finden ist. Dies ermöglicht es, zwei verschiedene Tabletts zur selben Zeit zu verwenden, z. B. ein an /dev/ttyS0 angeschlossenes graphire und ein an /dev/ttyS1 angeschlossenes PenPartner. Auch USB wird als serielle Leitung behandelt, der Einsatz dieses Parameters ist daher zwingend. Falls Sie den USB verwenden möchten, müssen Sie dies mit Option USB angeben.

5.9 DebugLevel

Diese Einstellung legt fest, wieviel Informationen der Treiber ausgibt. Der Bereich geht von 0 bis 10. Fehlt dieses Schlüsselwort, so wird die Stufe 0 benutzt. Stufe 0 erzeugt die minimale Ausgabe.

Beispiel (XFree 3):

SubSection "WacomStylus" # Stift
  DeviceName "PenRed"    # Name, frei wählbar
  ...
  DebugLevel 10          # sehr viel Diagnosemeldungen
  ...
EndSubSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"            # Name, frei wählbar
  Option     "Type" "stylus"
  ...
  Option "DebugLevel" "10"       # sehr viel Diagnosemeldungen
  ...
EndSection

5.10 Serial Num (nur intuos Modelle)

Die intuos Modelle sind leistungsfähiger als penpartner und graphire, da sie mehrere Geräte des gleichen Typs unterscheiden können. Es ist mit diesen Geräten also möglich, zwei Stifte zu verwenden, einen auf rot und einen auf blau konfigurierten. Es ist offensichtlich, daß die Auswertung der Gerätetypen nicht genug Information bietet, um beide Stifte zu unterscheiden. Daher verfügt jedes intuos Produkt, sei es ein Stift, eine Maus, ein Airbrush oder sonstiges, über eine Seriennummer. Diese wird nun angegeben, damit XInput die Eingabegeräte eindeutig zuordnen kann. Dies sieht dann so aus: Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus" # Stift
    DeviceName "PenRed"    # Name, frei wählbar
    ...
    Serial 2609917443      # Seriennummer dieses Gerätes
    ...
  EndSubSection
  SubSection "WacomStylus" # ein anderer Stift Pen
    DeviceName "PenBlue"   # Name, frei wählbar
    ...
    Serial 2609918664      # Seriennummer dieses Gerätes

    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"    # Name, frei wählbar
  ...
  Option     "Serial"    "2609917443"
  ...
EndSection
Section "InputDevice" 
  Identifier "PenBlue"   # Name, frei wählbar
  Option     "Type"      "stylus"
  ...
  Option     "Serial"    "2609918664"
  ...
EndSection

Kombinierte Eingabegeräte wie Stifte oder Airbrushs verfügen nur über eine Seriennummer. Der Treiber benutzt die Seriennummer zur Erkennung eines speziellen Gerätes und den Gerätetyp zur Unterscheidung von Spitze und Radierer.

Herausfinden der Seriennummer eines Gerätes

  1. DebugLevel auf 6 setzen
  2. X-Server starten durch Eingabe von X 2>t
  3. Alle Eingabegeräte der Reihe nach auf das Tablett aufsetzen und wieder abheben. Die Reihenfolge des Aufsetzens notieren.
  4. Den X-Server beenden (normalerweise Ctrl+Alt+Backspace)
  5. Den Befehl grep serial_num t ausführen.

Man erhält eine Liste der verschiedenen Seriennummern.

Seriennummern - Beispiel einer Protokollierung (XFree 3)

BEGIN xf86WcmProc dev=0x8354d60 priv=0x833e3f0 type=stylus flags=9 what=1
xf86WcmProc pWcm=0x8354d60 what=ON
END xf86WcmProc Success what=1 dev=0x8354d60 priv=0x833e3f0
device_id=0x96 serial_num=2595227137 type=cursor
[cursor] abs prox=false x=0 y=0 z=0 button=false buttons=0
(serial_num ist in Zeile 4 Wort 2)

5.11 Mode absolute, Mode relative

Bei einem Gerät im Modus absolute wird die Fläche des Tabletts proportional auf den Bildschirm abgebildet. Jedesmal, wenn der Stift einen bestimmen Punkt auf dem Tablett berührt, steht der Mauszeiger an der selben Position auf dem Bildschirm.

Ein Gerät im Modus relative verhält sich wie eine normale Maus. Wird das Eingabegerät von der Oberfläche abgehoben und an einer anderen Stelle wieder aufgesetzt, bewegt sich der Mauszeiger (idealerweise) nicht.

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    Mode absolute
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"        # Name, frei wählbar
  Option     "Type"          "stylus"
  ...
  Option     "Mode"          "absolute"
  ...
EndSection

5.12 Die Betriebsarten Extension, Core, AlwaysCore

XFree kennt zwei Arten von Zeigegeräten: Eines mit den Leistungsmerkmalen einer Maus (Tasten, Bewegung). Dieses wird zum Bedienen von Menüs und Dialogen sowie für andere Kontrollaufgaben eingesetzt. Dies ist das Core Device. Das andere Zeigegerät wird von Applikationen benutzt, die erweiterte Informationen wie Druck und Neigung erhalten wollen.
Dies ist das extension device.

Beginnend mit Version 3.3.3.1 bewirkt das Schlüsselwort AlwaysCore, daß beide Typen von Ereignissen gesendet werden sollen.

Wenn Alwayscore nicht angegeben wird, dann wird dieses Gerät zunächst im Modus extension verwendet, das heißt, es ist nur innerhalb von Programmen verwendbar und nicht für die Bedienung von Menüs.

Wenn Alwayscore angegeben wird, dann arbeitet das Gerät als core pointer (zusätzlich zur Maus). Es sendet aber auch Informationen wie Druck und Neigung an Programme, die das Gerät im Modus extension geöffnet haben.

Es ist möglich, für ein physikalisches Gerät zwei verschiedene logische Geräte zu konfigurieren, von denen eines im Modus Core und eines im Modus extension ist.
Hierzu werden zwei identische Sektionen angelegt, die sich nur im Schlüsselwort Devicename unterscheiden. Als nächstes erhält nur die letze Sektion das Schlüsselwort Alwayscore.

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    AlwaysCore
    ...
  EndSubSection
EndSection

Bei XFree 4 ist dieses keine Option in der Sektion InputDevice, sondern es wird in der Sektion Serverlayout eine der Einstellungen AlwaysCore / SendCoreEvents oder CorePointer angegeben:

Beispiel (XFree 4):

Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        ...
        InputDevice    "icursor"   "AlwaysCore"
EndSection

5.13 HistorySize

Hiermit läßt sich die Puffergröße für Bewegungsereignisse festlegen.

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    HistorySize 200
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"      # Name, frei wählbar
  Option     "Type"        "stylus"
  ...
  Option     "HistorySize" "200"
  ...
EndSection

5.14 Suppress

Diese Einstellung legt fest, wie viel das Eingabegerät bewegt worden sein muß, damit der Treiber den Mauszeiger bewegt. Dies kann bei der Verwendung von sehr hohen Auflösungen von Nutzen sein

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    Suppress 10
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"    # Name, frei wählbar
  Option     "Type"      "stylus"
  ...
  Option     "Suppress"  "10"
  ...
EndSection

5.15 TiltMode (XF3) und Tilt (XF4)

Diese Einstellung ist nur für Tabletts der intuos - Produktreihe verfügbar. TiltMode schaltet die Übertragung von Informationen zur Neigung an. Fehlt dieses Schlüsselwort, so werden nur Informationen zum Druck geliefert.

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    TiltMode
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"    # Name, frei wählbar
  Option     "Type"      "stylus"
  ...
  Option     "Tilt"      "1"
  ...
EndSection

5.16 MaxX, MaxY, MaxZ (ab alpha 20)

Max[Achse] begrenzt / überschreibt die max[Achse]- Werte, die normalerweise vom Tablett kommen. Mehr oder weniger Entwicklungscode.

5.17 ResolutionX, ResolutionY, ResolutionZ (ab alpha 20)

Resolution[Achse] belegt die Resolution[Achse]- Werte, die normalerweise vom Tablett kommen, vor. Mehr oder weniger Entwicklungscode.

5.18 TopX, TopY, BottomX, BottomY

Mit diesen 4 Schlüsselwörtern kann der aktive Bereich des Tabletts eingeschränkt werden. Mein intuos A4 oversize ist zum Beispiel zu groß, um darauf zu skizzieren: Die Wege für den Arm sind einfach zu lang. Ich benutze diese 4 Einstellungen, um die aktive Fläche des Tabletts auf das untere linke Viertel zu begrenzen. Es ist auch möglich, mehrere aktive Flächen auf demselben Tablett einzurichten. Definieren Sie soviele SubSections wie Sie benötigen, alle mit demselben Port Statement, jedoch mit unterschiedlichem DeviceName und unterschiedlichen Top... Statements. So erhalten Sie mehrere logische Geräte, von denen jedes seinen eigenen Bereich auf dem Tablett hat. Auch ist es denkbar, ein Gerät mit dem Mode absolute und ein weiteres mit dem Mode relative zu definieren.

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    TopX 0
    TopY 5000
    BottomX 5000
    BottomY 10000
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"    # Name, frei wählbar
  Option     "Type"      "stylus"
  ...
  Option     "TopX"      "0"
  Option     "TopY"      "5000"
  Option     "BottomX"   "5000"
  Option     "BottomY"   "10000"
  ...
EndSection

Ermitteln der maximalen X, Y Werte, der aktuellen Einstellung sowie der Auflösung

Wenn die oberen 4 Einstellungen verwendet werden, möchte man oft Berechnungen zur Größe und Lage des resultierenden Rechtecks anstellen. Hierfür werden oft die maximalen Tablettabmessungen und die Auflösung benötigt.

Um diese Werte zu erhalten, wird er Server gestartet: X 2>t. Beenden Sie den X-Server nun wieder (normalerweise Ctrl+Alt+Backspace) und führen Sie den folgenden Befehl aus: grep "X=" t . Die gesuchten Werte werden ausgegeben.

Ermittlung der Auflösung - Beispiel der Ausgabe

(--) Wacom IV Tablett maximum X=5103 maximum Y=3711 X 
     resolution=1000 Y resolution=1000 suppress=6
(--) Wacom Tablett top X=0 top Y=0 bottom X=5103 bottom Y=3711
(--) Wacom Tablett top X=0 top Y=0 bottom X=5103 bottom Y=3711
(--) Wacom Tablett top X=0 top Y=0 bottom X=5103 bottom Y=3711

5.19 KeepShape

Dieses Schlüsselwort benutzt die Einstellungen TopX, TopY (oder, falls nicht angegeben, deren eingebaute Voreinstellungen) und justiert BottomX, BottomY so, daß

Ein eventuell angegebenes BottomX, BottomY wird ignoriert, da der Treiber diese Werte errechnet.

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name, frei wählbar
    ...
    KeepShape
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"    # Name, frei wählbar
  Option     "Type"      "stylus"
  ...
  Option     "KeepShape" "1"
  ...
EndSection

5.20 Threshold

Threshold ist seit Version alpha 16 verfügbar und betrifft die Produkte graphire und intuos. Es wird der minimale Druck festgelegt, bei dem der Stift als aufgesetzt betrachtet wird. Bitte beachten Sie, daß der Integer-Wert als String codiert werden muß (entgegen allen anderen Integer-Werten).

Beispiel (XFree 3):

Section "XInput"
  SubSection "WacomStylus"   # Stift
    DeviceName "PenRed"      # Name,frei wählbar
    ...
    Threshold "5"
    ...
  EndSubSection
EndSection

Beispiel (XFree 4):

Section "InputDevice" 
  Identifier "PenRed"   # Name, frei wählbar
  Option     "Type"     "stylus"
  ...
  Option     "Treshold" "5"
  ...
EndSection

5.21 USB (ab alpha 20)

USB spezifiziert, daß die serielle Leitung der USB Port ist. Dies erfordert einen Kernel 2.4 mit aktiviertem USB. Der Alpha 20 Treiber unterstützt nur absolute Geräte. Bitte lesen Sie das Wacom-USB-mini-HOWTO von Arnauld Claden (in Englisch), wenn Sie USB verwenden möchten.


Weiter Zurück Inhalt USB spezifiziert, daß die serielle Leitung der USB Port ist. Dies erfordert einen Kernel 2.4 mit aktiviertem USB. Der Alpha 20 Treiber unterstützt nur absolute Geräte. Bitte lesen Sie das Wacom-USB-mini-HOWTO von Arnauld Claden (in Englisch), wenn Sie USB verwenden möchten.


Weiter Zurück Inhalt dy> USB spezifiziert, daß die serielle Leitung der USB Port ist. Dies erfordert einen Kernel 2.4 mit aktiviertem USB. Der Alpha 20 Treiber unterstützt nur absolute Geräte. Bitte lesen Sie das Wacom-USB-mini-HOWTO von Arnauld Claden (in Englisch), wenn Sie USB verwenden möchten.


Weiter Zurück Inhalt body>