Kategorie: Linux

Tablet-PC Funktionalität unter Fedora 10 aktivieren für Lenovo X61t (Teil 1 – Stifteingabe)

So, da ich ja erfolgreich Fedora installiert bekommen habe, möchte ich natürlich auch die Tabletfunktionen unter Linux nutzen. Der erste Schritt ist herauszufinden wie das Wacom-Tablet angeschlossen ist (USB oder Seriell? Welcher Schnittstellenport?)
Unter Fedora 10 sind die Wacomtreiber schon standardmäßig installiert, aber um sicherzugehen einfach prüfen ob das paket linuxwacom installiert ist.
Dann können wir anfangen zu testen wie das Tablet angeschlossen ist, dazu nehmen wir des Administrators liebstes Werkzeug, das Terminal, und um uns richtig wichtig zu machen am besten gleich mit su den root übernehmen.
Um den seriellen Port zu überprüfen fand ich cat hilfreich. Dazu geben wir ein:

1
cat /dev/ttyS<strong>X</strong>

Wobei X für eine Nummer steht, bei mir gingen sie von 0 bis 3. Hat man den Befehl ausgeführt, berührt man mit dem Stift den Bildschirm, wenn jetzt viele lustige Zeichen über den Bildschirm huschen wissen wir an welcher seriellen Schnittstelle unser Tablet angeschlossen ist.
Um herauszufinden ob und an welchem USB-Port unser Tablet angeschlossen ist empfiehlt es sich das Werkzeug wacdump zu verwenden.

1
wacdump /dev/input/event<strong>X</strong>

Wobei wiederum für X eine Zahl eingesetzt wird. Wacdump zeigt einem allerlei Informationen an, wenn man mit dem Stift den Bildschirm berührt sollte sich einiges ändern.

Bei mir war das Tablet über die serielle Schnittstelle 0 angeschlossen. Daher werde ich mich mangels anderer Erfahrungen darauf beschränken ein serielles Tablet einzurichten.

Für gewöhnlich werden Eingabegeräte in der xorg.conf des Xorg-Display-Servers eingetragen. Bei mir (vermutlich bei Fedora 10 allgemein) existierte diese Datei jedoch nicht. Da es ohne vorkonfigurierte xorg.conf jedoch recht schwer fällt die ganze Konfiguration manuell durchzuführen lassen wir das lieber Xorg selbst machen.

Dazu sollte man den aktuellen Xorg-Server beenden, als harte Methode, einfach in ein Textterminal wechseln (Strg+Alt+F2) und sich als root anmelden. Dann finden wir den aktuellen Xorg Prozess über:

1
ps -A |grep Xorg

heraus. Das produziert dann etwa folgende Ausgabe:

1
 2538 tty1     00:00:17 Xorg

Die erste Nummer gibt die Prozessid an, die wir nun mit:
Achtung: Alle nicht gespeicherten Daten von Programmen die grade im Xorg-Server laufen gehen verloren.

1
kill 2538

beenden können.

Nachdem wir uns des Xorg-Servers erfolgreich entledigt haben, können wir nun automatisch eine xorg.conf erzeugen lassen.

1
Xorg -configure

Dieser Befehl erzeugt automatisch eine Konfigurationsdatei im Home-Verzeichnis des angemeldeten Benutzers, in dem Fall sollte die Datei unter /root/xorg.conf.new zu finden sein.
Diese kopieren wir nun an den Ort wo sie sich normalerweise befindet, /etc/X11/:

1
cp /root/xorg.conf.new /etc/X11/xorg.conf

So, nun können wir eigentlich den Xorg-Server wieder starten.

1
Xorg

Jetzt können wir die xorg.conf so abändern, dass unser Tablet als Eingabegerät erkannt wird. Wir schnappen uns wieder eine Konsole und editieren als root die xorg.conf

1
nano /etc/X11/xorg.conf

Wir sollten nun eine recht ausführliche Konfigurationsdatei vor uns sehen.
Wir fügen am Ende folgende Dinge ein:

1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "stylus"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "stylus"
  Option        "ForceDevice"   "ISDV4"
EndSection
1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "eraser"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "eraser"
  Option        "ForceDevice"   "ISDV4"               # Serial Tablet PC
EndSection
1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "cursor"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "cursor"
  Option        "ForceDevice"   "ISDV4"               # Serial Tablet PC
EndSection

Sofern das Tablet Touchfunktion unterstützt noch folgendes:

1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "touch"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "touch"
  Option        "ForceDevice"   "ISDV4"               # Serial Tablet PC
EndSection

Wobei für X jeweils die oben ermittelte serielle Schnittstelle eingetragen werden muss.
Damit kennt unser Xorg alle Eingabemöglichkeiten. Damit es sie auch nutzt müssen wir noch die Events zuweisen.
Dazu suchen wir die Stelle in der xorg.conf mit dem Namen „Serverlayout“.
Diese ändern wir ab, so dass die neuen Eingabemethoden auch benutzt werden, das kann dann so aussehen:

1
2
3
4
5
6
7
8
9
10
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        <strong>InputDevice    "stylus"    "SendCoreEvents"
        InputDevice    "eraser"    "SendCoreEvents"
        InputDevice    "cursor"    "SendCoreEvents"
        InputDevice    "touch"  "SendCoreEvents"</strong>
EndSection

Nun starten wir den Xorg-Server neu mit Strg+Alt+Backspace.
Damit sollte die Tableteingabe nun funktionieren.
Als nächsten werfen wir dann einen Blick auf Tablet-Sondertasten und auch die Bildschirmrotation will eingerichtet werden.


Fedora über PXE und NFS installieren

Da mein neuer Tablet PC, ein Lenovo X61 Tablet , ohne optisches Laufwerk ausgeliefert wird, stellt es eine kleine Herausforderung dar Linux oder überhaupt ein Betriebssystem zu installieren, da diese ja doch meist auf einer CD oder DVD ausgeliefert werden. Alternativ gibt es natürlich den Weg über eine bootbare USB-Festplatte oder einen USB-Stick. Da mein Stick allerdings nur 128 MB fasst habe ich hier Platzprobleme. Einen neuen Stick kaufen wollte ich auch grade nicht. Aber es gibt ja noch den Weg über das Netzwerk zu booten und das Installationsmedium über das Netzwerk freizugeben.

Dazu benötigt man einen Rechner der als Server für PXE (Preboot Execution Environment) und NFS (Network File System) dienen kann. Hierzu diente mir mein Laptop auf dem bereits Debian installiert ist als Ausgangsbasis.

Die benötigten Pakete erhält man über den Paketmanager seiner Wahl, diese sind:

1
2
3
4
dhcp3-server
unfs3
tftpd-hpa
xinetd

Danach benötigt man noch sinnvollerweise das PXELINUX, welches man über SYSLINUX beziehen kann. Direkter Link zum Download. Aus der recht umfangreichen gepackten Datei benötigt man nur die Datei:

1
pxelinux.0

Diese befindet sich normalerweise im Core-Verzeichnis. Ebenfalls sollte man sich das aktuelle DVD Abbild von Fedora besorgen (zu finden hier).

Damit hat man alle benötigten Dateien und auch das entsprechende Zubehör.

Die Einrichtung ist im Prinzip recht einfach, es gab nur ein paar Dinge die ich zu beachten herausgefunden habe. Als liebstes Arbeitswerkzeug für die folgenden Schritte nehme man eine Root-Konsole, alternativ eine normale Konsole, welchen Schritten jeweils ein sudo voranzustellen ist, weiß ich nicht.

Der erste Schritt, ist die Konfiguration des DHCP Servers. Ich empfehle hier die Netzwerkinstallation fernab von Routern und anderen Netzen durchzuführen, da es eventuell zu Komplikationen zwischen den einzelnen Einrichtungen kommen kann.
Zuerst sollte man sich überlegen welche Netzwerkschnittstelle man nutzen möchte, in meinem Fall war das die einzige Kabelschnittstelle die mein Laptop zur Verfügung hatte unter Linux als eth0 bezeichnet.
Um zu verhindern, dass es lustige Überschneidungen mit meinem WLAN gibt habe ich ein anderes Subnet gewählt (192.168.3.x statt 192.168.1.x).
Zuerst empfiehlt es sich dann die MAC-Adresse der Schnittstelle über ifconfig herauszufinden. Ifconfig gibt einem in etwa so eine Antwort:

1
2
3
4
5
6
7
eth0      Link encap:Ethernet  Hardware Adresse <strong>XX:XX:XX:XX:XX:XX</strong>  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Speicher:f8200000-f8220000

Wobei statt den XXen natürlich die richtige MAC-Adresse steht. Diese schreibt man sich auf oder kopiert sie in die Zwischenablage (markieren mit der Maus, Strg-Shift-C).
Dann editiert man die DHPC Konfiguration, ich verwende gerne Nano, man kann aber einen anderen Texteditor nach Wahl verwenden:

1
nano /etc/dhcp3/dhcpd.conf

Diese ändert man ab bis nur noch folgende Einträge vorhanden sind:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
# Eigene Konfiguration ab hier -------
next-server  192.168.3.10;  # Server für Bootvorgang festlegen
allow bootp;  # BootP erlauben
allow booting; # booten erlauben
# Subnetzmaske definieren
option subnet-mask  255.255.255.0;
# ping erlauben
ping-check = 1;
# Wichtig - Dateiangabe für PXE
filename="pxelinux.0";
# Subnetz-IP-Adresse
subnet 192.168.3.0;
# zugelassene IP-Adressen einstellen
netmask 255.255.255.0 {
range 192.168.3.11  192.168.3.254
}
# Dem eigenen Server eine feste IP zuweisen
host pxeserv{
   hardware ethernet  <strong>XX:XX:XX:XX:XX:XX</strong>
   fixed-address 192.168.3.10
}

Die XXe wieder mit der bereits gesicherten MAC-Adresse ersetzen.
Damit wäre die Konfiguration des DHCP-Servers bereits abgeschlossen.

Als nächstes legen wir das Verzeichnis /var/lib/tftpboot/ an (bei mir war es bereits vorhanden):

1
mkdir -p /var/lib/tftpboot

Und wenn wir gerade dabei sind können wir auch gleich das Verzeichnis /var/lib/tftpboot/pxelinux.cfg anlegen (ja es ist wirklich ein Verzeichnis und keine Datei):

1
mkdir -p /var/lib/tftpboot/pxelinux.cfg

Dann benötigen wir noch ein weiteres Verzeichnis für das Mounten des Images für das NFS-System:

1
mkdir -p /mnt/fedora

Dann konfigurieren wir tftp, dazu editieren wir die Datei /etc/xinetd.d/tftp:

1
nano /etc/xinetd.d/tftp

Diese Datei sollte dann so aussehen (Copy & Paste ;)):

1
2
3
4
5
6
7
8
9
10
service tftp
{
     disable = no
     socket_type = dgram
     wait = yes
     user = root
     server = /usr/sbin/in.tftpd
     server_args = -v -s /var/lib/tftpboot
     only_from = 192.168.3. 127.0.0.1
}

Das war dann auch schon die Konfiguration von tftp.

NFS ist noch einfacher zu konfigurieren indem man einfach die Datei /etc/exports:

1
nano /etc/exports

Hier muss einfach das Mountverzeichnis und die Leseberechtigungen angegeben werden :

1
/mnt/fedora  192.168.3.0/24 (ro,sync)

So nun müssen wir nur noch ein paar Dateien an ihren vorgesehen Ort bringen und die PXE Konfiguration durchführen.

Dazu mounten wir das Fedora Image:

1
mount -o loop <strong>/home/fedora.iso</strong> /mnt/fedora

Wobei man natürlich den richtigen Pfad zum Image nehmen sollte.

Dann kopieren wir zwei wichtige Dateien (vmlinuz und initrd.img):

1
2
cp /mnt/fedora/images/pxeboot/vmlinuz /var/lib/tftpboot
cp /mnt/fedora/images/pxeboot/initrd.img /var/lib/tftpboot

Jetzt fehlt nur noch die Konfiguration von PXELINUX, dazu legen wir einfach die default Konfiguration fest, theoretisch kann man für jeden PC im Netz eine eigene Konfiguration abspeichern und so für jeden PC ein eigenes System booten lassen.

1
nano /var/lib/tftpboot/pxelinux.cfg/default

Hier sind nur ein paar Zeilen einzufügen:

1
2
3
4
5
default linux
timeout 25
label linux
        kernel vmlinuz
        append initrd=initrd.img

Damit ist eigentlich alles soweit fertig, nun müssen die Dienste nur noch alle gestartet werden:
Falls das Image gemountet ist, muss es jetzt erneut gemountet werden (siehe oben).

1
2
3
4
ifconfig eth0 192.168.3.10
/etc/init.d/dhcp3-server restart
/etc/init.d/xinetd restart
/etc/init.d/unfs3 restart

Jetzt sollte sich der angeschlossene PC über das Netzwerk booten lassen und nach einiger Zeit sollte ein recht hässlicher Miniinstaller von Fedora sichtbar sein, dieser fragt nach Sprache, Tastaturlayout und danach nach der Installationsquelle. Hier könnte man den Rechner wohl auch über Kabel wieder an einen Router anschließen und eine HTTP-Quelle angeben. Da wir uns aber schon für NFS entschieden haben wählen wir NFS aus. Die Netzwerkschnittstelle lassen wir automatisch konfigurieren.
Als NFS-Server nehmen wir 192.168.3.10 und als Verzeichnis /mnt/fedora
Jetzt passiert eine zeitlang scheinbar nichts mehr, allerdings kann man an den Netzwerkschnittstellen kontrollieren ob etwas übertragen wird.

Damit sollte sich dann die grafische Fedorainstallation starten.


Navit – GPG Key

Da ich anfangs Probleme hatte den GPG Schlüssel für die Navit-Quellen zu importieren bin ich nun bei der Suche nach dem Schlüssel CB229096 über eine Seite gestolpert die gleich eine komplette Befehlszeile mitgeliefert hat mit der man problemlos den Schlüssel hinzufügen kann, dadurch erspare ich mir beim Aktualisieren nun die lästigen Bestätigungen, dass ich mir auch sicher bin das Navit aus einer vertrauenswürdigen Quelle stammt.

1
2
gpg --keyserver x-hkp://gpg-keyserver.de --recv-keys CB229096
gpg --export -a CB229096 | sudo apt-key add -

Vor keyserver, export und recv-keys sollte ein Doppelminus stehen, jedoch wandelt WordPress dies automatisch in einen Gedankenstrich um.

Die Code-Umgebung stellt die Minuszeichen korrekt dar 🙂

Für Ubuntu benötigt man wohl noch ein sudo vor den Befehlen, unter Debian habe ich das Root-Terminal benutzt.

Der Vollständigkeit halber noch die ursprüngliche Quelle:

Christian Karrié: NavIt.