Scanner per YaST2 einrichten hängt

openSUSE Seit einiger Zeit verwende ich Mustek 1248UB Scanner. Die funktionieren mit sane und Kooka recht gut.

Allerdings machte der Scanner beim Einrichten unter openSUSE 11.0 Probleme (unter 11.1 habe ich es noch nicht getestet). YaST2 blieb einfach hängen, es tat sich nichts mehr.

Das Problem lies sich auf eine geradezu lächerlich triviale Weise beheben: In der Datei /etc/sane.d/dll.conf gibt es eine Liste mit Konfigurationsdateien zu den jeweiligen Scannermodellen. Die sind standardmäßig alle auskommentiert. Sobald man den Kommentar vor der jeweiligen Datei löscht, die für die Konfiguration des Scanner gebraucht wird, funktioniert die Erkennung des Scanners.

Im Fall des Mustek 1248UB muss also die Zeile

#gt68xx

durch

gt68xx

ersetzt werden.
Schon klappt die Konfiguration mit YaST2 und Kooka erkennt den Scanner auch wieder.
(Achja: Das Firmware Image SBSfw.usb von der Treiber-CD für den Scanner muss noch ins Verzeichnis /usr/share/sane/gt68xx.)

Nokia E90 mit udev

openSUSE Das E90 von Nokia und vermutlich etliche andere Handys, die per USB angeschlossen werden können, verleiten etliche Leute zu ziemlicher Akrobatik, was chmod unter /dev angeht. Störend ist das vor allem, wenn man mit opensync oder ähnlichen Tools zugreifen will.

Es gibt aber auch eine sehr schöne, saubere, geradzu elegante Lösung.
Man überlädt die udev-Regeln, die von openSUSE mitgebracht werden.

Für openSUSE 11.1 funktioniert das wie folgt:

Normalerweise werden die Gerätedateien unterhalb von /dev/bus/usb nach einer Regel angelegt, die in der Datei /lib/udev/rules.d/50-udev-default.rules steht. (Bei openSUSE 11.0 lag die Datei noch unter /etc/udev).
Die Regel lautet:

# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"

Diese Regel bewirkt, dass die Gerätedatei unterhalb von /dev/bus/usb mit dem Modus 644 angelegt wird. Außerdem gehört sie standardmäßig root:root.

Da die Datei bei einem Update wieder überschrieben würde, muss eine neue Datei anlegt werden, die /etc/udev/rules.d/99-local.rules heißen soll. 99 damit sie nach den Default-Regeln gelesen wird.
In diese Datei wird folgende Regel geschrieben:

# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664"

Damit gehören die Gerätedateien in Zukunft der Gruppe uucp und alle Mitglieder der Gruppe können auf die Dateien schreiben.

Um in diese Gruppe zu gelangen, muss in der Datei /etc/group der Nutzeraccount bei der Gruppe root ergänzt werden: root:x:1:gustav

Das war’s schon. Funktioniert prima.