From: Charles L. <cl...@gm...> - 2005-09-26 14:48:06
|
On 9/26/05, Chen Xiao Fan <xi...@sg...> wrote: > So the question is how to set the correct permission of > /proc/bus/usb without modifying it in /etc/fstab. That's where the hotplug scripts come in to play. You would write a script that sets the group of the /proc/bus/usb/<bus>/<dev> node to pickit (or whatever), and chmod g+w. > T: Bus=3D02 Lev=3D01 Prnt=3D01 Port=3D01 Cnt=3D01 Dev#=3D 14 Spd=3D12 M= xCh=3D 0 > D: Ver=3D 2.00 Cls=3D00(>ifc ) Sub=3D00 Prot=3D00 MxPS=3D 8 #Cfgs=3D 2 > P: Vendor=3D04d8 ProdID=3D0033 Rev=3D 0.01 > S: Manufacturer=3DMicrochip Technology Inc. > S: Product=3DPICkit 2 Microcontroller Programmer > S: SerialNumber=3DPIC18F2550 The following is the first configuration: > C:* #Ifs=3D 1 Cfg#=3D 1 Atr=3D80 MxPwr=3D100mA > I: If#=3D 0 Alt=3D 0 #EPs=3D 2 Cls=3D03(HID ) Sub=3D00 Prot=3D00 Driver= =3Dusbhid > E: Ad=3D81(I) Atr=3D03(Int.) MxPS=3D 64 Ivl=3D1ms > E: Ad=3D01(O) Atr=3D03(Int.) MxPS=3D 64 Ivl=3D1ms And this is the 2nd config: > C: #Ifs=3D 1 Cfg#=3D 2 Atr=3D80 MxPwr=3D100mA > I: If#=3D 0 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3D00 Prot=3D00 Driver= =3D > E: Ad=3D81(I) Atr=3D03(Int.) MxPS=3D 64 Ivl=3D1ms > E: Ad=3D01(O) Atr=3D03(Int.) MxPS=3D 64 Ivl=3D1ms Note how both specify EP1IN (Ad=3D81) and EP1OUT (Ad=3D01). That is why I mentioned that they are mutually exclusive - you do not want the kernel claiming interface 1 on config 1 while your application tries to claim interface 1 on config 2. If I understand correctly, you should detach the kernel driver first before setting the configuration (otherwise the kernel is still claiming interface 1/config 1). After that, you should claim the interface with libusb. Same deal on the PICkit 1: > T: Bus=3D01 Lev=3D01 Prnt=3D01 Port=3D02 Cnt=3D01 Dev#=3D 2 Spd=3D1.5 M= xCh=3D 0 > D: Ver=3D 1.10 Cls=3D00(>ifc ) Sub=3D00 Prot=3D00 MxPS=3D 8 #Cfgs=3D 2 > P: Vendor=3D04d8 ProdID=3D0032 Rev=3D 0.00 > S: Manufacturer=3DMicrochip Technology Inc. > S: Product=3DPICkit(TM) 1 FLASH Starter Kit > C:* #Ifs=3D 1 Cfg#=3D 1 Atr=3D80 MxPwr=3D100mA > I: If#=3D 0 Alt=3D 0 #EPs=3D 2 Cls=3D03(HID ) Sub=3D00 Prot=3D00 Driver= =3Dusbhid > E: Ad=3D81(I) Atr=3D03(Int.) MxPS=3D 8 Ivl=3D10ms > E: Ad=3D01(O) Atr=3D03(Int.) MxPS=3D 8 Ivl=3D10ms > C: #Ifs=3D 1 Cfg#=3D 2 Atr=3D80 MxPwr=3D100mA > I: If#=3D 0 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3D00 Prot=3D00 Driver= =3D > E: Ad=3D81(I) Atr=3D03(Int.) MxPS=3D 8 Ivl=3D10ms > E: Ad=3D01(O) Atr=3D03(Int.) MxPS=3D 8 Ivl=3D10ms [...] > usb 1-3: configuration #1 chosen from 2 choices > hiddev97: USB HID v1.00 Device [Microchip Technology Inc. PICkit(TM) 1 FL= ASH > Starter Kit] on usb-0000:00:02.0-3 > usb 2-2: usbfs: interface 0 claimed while 'pk2' sets config #2 the last line is telling you that interface 0 is still claimed by the kernel when you set config #2. See above. -- - Charles Lepple |