Bonjour,J'ai une tablette wacom et je voudrais que son nom soit constant. Il varie de /dev/inout/event0 à /dev/input/event3 selon... l'humeur du système (bon, il doit bien y a voir une raie raison mais je n'ai pas trouvé).
J'ai donc réé une entrée /etc/udev/rules.d que j'ai appelé 'tablet" et qui contient :
BUS="usb", SYSFS{idVendor}="056a", SYSFS{idProduct}="0011", NAME="%k", SYMLINK="input/tablet"
056a:0111 est l'id USB de ma tablette. dans /dev/input, il y a : crw------- 1 root root 13, 64 2005-02-05 14:30 event0 crw------- 1 root root 13, 65 2005-02-05 14:30 event1 crw------- 1 root root 13, 66 2005-02-05 14:30 event2 crw------- 1 root root 13, 67 2005-02-05 14:30 event3 crw------- 1 root root 13, 63 2005-02-05 14:30 mice crw------- 1 root root 13, 32 2005-02-05 14:30 mouse0 crw------- 1 root root 13, 33 2005-02-05 14:30 mouse1 dans ce cas, il me lie tablet à mouse0 J'ai fait un strace sur udevstart et il créé biend'abord* le bon lien (event1) puis ensuite le défait et le recréé pour les autres entrées, la dernière se voyant affctée à la tablette.
J'ai essyé de ruser en mettant un eligne comme :BUS="usb", SYSFS{idVendor}="056a", SYSFS{idProduct}="0011", NAME="event%n", SYMLINK="input/tablet"
Il procède de même, il créé le lien vers event1 (celui que je souhaite) et ensuite le défait et termine alors par even0...
open("/sys/devices/pci0000:00/0000:00:10.0/usb1/1-1/idVendor", O_RDONLY) = 3
read(3, "056a\n", 4096) = 5 close(3) = 0 Ca, c'est mon idVendorlstat64("/sys/class/input/event1/idProduct", 0xbfffcf9c) = -1 ENOENT (No such file or directory) open("/sys/class/input/event1", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents64(3, /* 5 entries */, 4096) = 136lstat64("/sys/class/input/event1/dev", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 lstat64("/sys/class/input/event1/driver", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0 lstat64("/sys/class/input/event1/device", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
getdents64(3, /* 0 entries */, 4096) = 0 close(3) = 0open("/sys/devices/pci0000:00/0000:00:10.0/usb1/1-1/idProduct", O_RDONLY) = 3
read(3, "0011\n", 4096) = 5 close(3) = 0 Ca c'est mon idVendor (jusqu'ici tout va bien...) [ ... ]stat64("/dev/event1", {st_mode=S_IFCHR|0660, st_rdev=makedev(13, 65), ...}) = 0
chmod("/dev/event1", 020660) = 0 stat64("/dev/input", {st_mode=S_IFDIR|0755, st_size=200, ...}) = 0 unlink("/dev/input/tablet") = 0 symlink("../event1", "/dev/input/tablet") = 0 Hop ! il me créé le bon lien (content ;) ) chmod("/dev/event0", 020660) = 0 stat64("/dev/input", {st_mode=S_IFDIR|0755, st_size=200, ...}) = 0 unlink("/dev/input/tablet") = 0 symlink("../event0", "/dev/input/tablet") = 0 stat64("/dev/.udevdb", {st_mode=S_IFDIR|0755, st_size=23540, ...}) = 0open("/dev/.udevdb/class@input@mouse0", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
Et plus loin, il me défait le travail si bien commencé .... event0 n'est lié à rien et event2 est mon clavier USB, event3? la sourisSi je ne mets pas NAME"event%n" masi NAME="%k", il me balaie tout ce qui se trouve dans /dev/input en commençant par le bon (!) et en terminant par mouse0 (sniff)
Une idée avant le BTS ? Jean-Luc
Attachment:
pgpdcR8TY2eC6.pgp
Description: PGP signature