[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#248855: Useful clues for non-working USB keyboard on SunBlade 150 / sparc64



Today I downloaded "the most up-to-date" debian-installer/sid CD image from:

http://cdimage.debian.org/pub/cdimage-testing/sid_d-i/sparc/20041206/sarge-sparc-businesscard.iso

As always, it booted correctly, but the USB keyboard was unusable.

Being desperate I tried to find information how to preseed a
kbd-chooser/kbd/usb parameter to the d-i but I was unsuccessful.

However, I thought finally to check the source code of the kbd-chooser.
I found a file "usb-kbd.c" in the location:

http://d-i.alioth.debian.org/svn/debian-installer/packages/kbd-chooser/usb-kbd.c

and, Halleluiah, there is something:

===
   if (((p = strstr(buf, "usbhid")) != NULL) &&
((p = strstr(buf, "Cls=03")) != NULL) && // Human Interface Device ((p = strstr(buf, "Sub=01")) != NULL) && // Boot Interface Subclass
       ((p = strstr(buf, "Prot=01")) != NULL))  {  // Keyboard
===

I tried to check /proc/bus/usb/devices file (first I needed to mount usbdevfs)
and look what I got:

===
# mount -t usbdevfs usbdevfs /proc/bus/usb
# cat /proc/bus/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 4
B:  Alloc=205/900 us (23%), #Int=  2, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB OHCI Root Hub
S:  SerialNumber=2000000
C:* #Ifs= 1 Cfg#= 1 Atr=40 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=01 Lev=01 Prnt=01 Port=00 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=0430 ProdID=0100 Rev= 1.05
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 20mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=hid
E:  Ad=81(I) Atr=03(Int.) MxPS=   3 Ivl=10ms
T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0430 ProdID=0005 Rev= 2.00
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=hid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
===

So it seems that kbd-chooser only chooses USB keyboard if in the
/proc/bus/usb/devices there is a "Driver=usbhid". I suppose that on some
architectures this is correct, but on SunBlade 150 / sparc64 there is only
"Driver=hid". The rest of the information (Cls, Sub, Prot) is fine.

A small patch and maybe kbd-chooser will finally work on this machine?
I mean: choose an USB keyboard if "Driver=usbhid" __OR__ "Driver=hid".

Please notify me about any progress.

Best regards,
Wiktor Wandachowicz

PS.
Sorry for the noise (sending this e-mail to so many people),
but if it's going to work... "it's a very exciting time" :-)




Reply to: