installation d'un périphérique usb avec udev [linux] - Installation - Linux et OS Alternatifs
Marsh Posté le 21-02-2007 à 09:52:59
J'ai trouvé.
Je poste des fois que ca interesse des personnes. Il suffit d'activer l'option du noyau :
Device Drivers -> Input
Device Support -> Event Interface . Du coup, chaque périphérique usb aura un Handler "eventX" , et udev créera le bon noeud de périphérique.
Marsh Posté le 20-02-2007 à 12:03:41
Bonjour,
Je cherche à installer un périphérique usb sur ma distribution LFS et je n'y arrive pas. Celui ci est bien détecté car quand je l'insère et quand je l'enlève, j'ai un message de connexion et de déconnexion du périphérique.
J'ai 2 ports usb sur ma carte :
- sur le 1er,j'ai une souris usb de branchée. Lorsque je l'insère, udev me créée automatiquement un noeud de périphérique dans /dev/input/mouse0 et il pointe vers ce périphérique usb. Lorsque je change de port usb, cela fonctionne toujours. Je recois bien les messages venant de la souris en faisant od /dev/input/mouse0 lorsque je bouge la souris.
- Je branche sur le 2nd le controleur de ma dalle tactile qui fonctionne en usb. Pour m'en servir dans Xorg, j'ai besoin de parametrer mon fichier xorg.conf. Pour cela, je lui fournis le driver usb, et je dois également donner en paramètre le chemin pour acceder au périphérique usb. Un truc du genre /dev/input/event0. Le problème, c'est que ce noeud de périphérique ne se crée pas avec udev, et je ne sais pas comment le créer.
Voici les informations que je peux donner :
lorsque les 2 sont branchés , je fais un cat /proc/bus/input/devices et j'obtiens ca :
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=047a Product=0004 Version=0063
N: Name="SEMTECH ScreenCoder TM UR7HCTS2-USB"
P: Phys=usb-0000:00:10.1-2/input0
H: Handlers=
B: EV=1b
B: KEY=30000 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=045e Product=0040 Version=0121
N: Name="Microsoft Microsoft Wheel Mouse Optical®"
P: Phys=usb-0000:00:10.0-1/input0
H: Handlers=mouse0
B: EV=17
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=0dfc Product=0001 Version=0001
N: Name="General Touch Co. Ltd. GeneralTouch USB Touchscreen"
P: Phys=usb-0000:00:10.0-2/input0
H: Handlers=
B: EV=1b
B: KEY=70000 0 0 0 0 0 0 0 0
B: ABS=100 3
B: MSC=10
On remarque bien que la souris et le controleur sont bien détectés, mais pas de "handlers" pour la dalle tactile.
lorsque je fais cat /proc/bus/input/handlers j'obtiens ca :
N: Number=0 Name=kbd
N: Number=1 Name=mousedev Minor=32
et lorsque je fais cat /proc/bus/usb/devices, j'obtiens :
T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.11.12 uhci_hcd
S: Product=VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (#3)
S: SerialNumber=0000:00:10.2
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.11.12 uhci_hcd
S: Product=VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (#2)
S: SerialNumber=0000:00:10.1
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=047a ProdID=0004 Rev= 0.63
S: Manufacturer=SEMTECH
S: Product=ScreenCoder TM UR7HCTS2-USB
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 5 Ivl=10ms
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.11.12 uhci_hcd
S: Product=VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller
S: SerialNumber=0000:00:10.0
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=045e ProdID=0040 Rev= 1.21
S: Manufacturer=Microsoft
S: Product=Microsoft Wheel Mouse Optical®
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=10ms
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 12 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0dfc ProdID=0001 Rev= 0.01
S: Manufacturer=General Touch Co. Ltd.
S: Product=GeneralTouch USB Touchscreen
C:* #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 7 Ivl=10ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.11.12 ehci_hcd
S: Product=VIA Technologies, Inc. USB 2.0
S: SerialNumber=0000:00:10.3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
J'ai également des entrées qui se créent et qui se suppriment lorsque je branche ou débranche la dalle tactile (ou la souris usb).
Dans le répertoire : /sys/bus/usb/devices , si ma dalle tactile est branchée (ou la souris) sur le 2eme port usb, j'ai les répertoires 2-2 et 2-2:1.0 qui se créent. (2-1 et 2-1:1.0 lorsque c'est sur le 1er port usb).
Que puis je faire pour créer le noeud de périphérique correspondant à mon port usb ?
- de facon statique (pour vérifier que ca marche deja).
- de facon a ce que udev me le fasse dynamiquement (je ne connais pas bien udev, je sais qu'il faut modifier /etc/udev/rules.d/un_fichier.rules, mais je ne sais pas quoi mettre dedans).
Merci d'avance pour votre aide