PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : udev + USB Keyboard



bEtrayEr
26.08.06, 12:37
Ich möchte gerne, dass mein Notebook automatisch NumLock aktiviert (Ubuntu 6.06@HP nc4200), wenn ich meine USB Tastatur anstecke.
Habe aus dem Grund "numlockx" installiert und folgende Regel unter /etc/udev/rules.d/10-privat.rules gespeichert:
Code:

KERNEL=="event[0-9]*", SYSFS{idProduct}=="0048", SYSFS{idVendor}=="045e", NAME="input/%k", SYMLINK="input/MSKeyboard", MODE="644", RUN+="/usr/bin/numlockx"


Das ganze geht nur leider nicht. Den Symlink gibts, aber numlockx wird nicht ausgeführt. Was mache ich falsch?

buzz768
30.08.06, 10:54
Das bei RUN+= angegebene Programm wird ja als root gestartet - vielleicht hat dieser keinen Zugriff auf das Display. Kannst du testen, indem du mal in der Konsole als root numlockx aufrufst.

PS
So, ich habe das jetzt mal selbst ausprobiert: Zwei Bedingungen müssen gegeben sein: Root muss zugriff auf das Display haben, also ggf. zuvor als normaler User xhost + localhost ausführen. Zweitens muss die DISPLAY-Variable exportiert werden. Ich habe das wie folgt gelöst:



KERNEL=="event[0-9]*", SYSFS{idProduct}=="001c", SYSFS{idVendor}=="0d62", NAME="input/%k", \
SYMLINK="input/MSKeyboard%n", MODE="644", RUN+="/usr/local/bin/setup_keyboard"


Und das Script /usr/local/bin/setup_keyboard sieht so aus:


#!/bin/bash
export DISPLAY=localhost:0.0
/usr/bin/numlockx

bEtrayEr
05.09.06, 10:48
Danke für die Mühe - so ganz verstanden habe ich es nicht - und bei mir funktioniert es auch nicht.
Wenn ich das Script so ausführe kommt "Error opening display!".

EDIT: xhost + localhost
führt zu "xhost: unable to open display "localhost:0.0""

buzz768
05.09.06, 11:42
EDIT: xhost + localhost
führt zu "xhost: unable to open display "localhost:0.0""

Das muss der Benutzer ausführen, der sich auf der graphischen Oberfläche eingeloggt hat, nicht root.

bEtrayEr
05.09.06, 13:10
Das habe ich schon verstanden - kam aber trotzdem die Fehlermeldung.
Nach einem Neustart gehts allerdings.
"localhost being added to access control list"

Allerdings lässt sich das Script trotzdem nicht fehlerfrei ausführen. Kommt immernoch "Error opening display!".