usb/130024: [newusb] Sun Type 7 Unix keyboard doesn't work
with usb2
Renato Botelho
garga at freebsd.org
Thu Jan 15 07:30:04 PST 2009
The following reply was made to PR usb/130024; it has been noted by GNATS.
From: Renato Botelho <garga at freebsd.org>
To: Hans Petter Selasky <hselasky at freebsd.org>
Cc: bug-followup at freebsd.org
Subject: Re: usb/130024: [newusb] Sun Type 7 Unix keyboard doesn't work
with usb2
Date: Thu, 15 Jan 2009 13:24:20 -0200
On Sat, Jan 03, 2009 at 12:54:21AM +0100, Hans Petter Selasky wrote:
> Hi,
>
> Have you tried on different computers?
>
> Is the problem the same everwhere?
>
> Are you willing to sponsor one of those keyboards for debugging purpose?
>
> Could you attach to this PR dumps of the keyboard descriptors using the
> usbconfig dump commands? See "usbconfig -h" if you need help.
>
> For example:
>
> usbconfig -u xxx -a yyy dump_curr_config_desc dump_device_desc
>
> And: "dmesg | grep -i usb"
I have news about it, i'm writing this email using the sun keyboard. I
discovered that it works on one usb port of my box IF i connect the mouse on
another port, let me explain.
With current usb stack, I connect mouse on a usb port of the Keyboard (it
has 3), and connect keyboard on any computer usb port and it works fine.
To make it work with newusb, i need to boot the machine, connect mouse on a
usb port and after this connect keyboard on an specyfic usb port.
Here is the data you asked me:
usbconfig output:
ugen0.1: <UHCI root HUB VIA> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0100
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x0000
idProduct = 0x0000
bcdDevice = 0x0100
iManufacturer = 0x0001 <VIA>
iProduct = 0x0002 <UHCI root HUB>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0040
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen1.1: <UHCI root HUB VIA> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0100
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x0000
idProduct = 0x0000
bcdDevice = 0x0100
iManufacturer = 0x0001 <VIA>
iProduct = 0x0002 <UHCI root HUB>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0040
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen2.1: <UHCI root HUB VIA> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0100
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x0000
idProduct = 0x0000
bcdDevice = 0x0100
iManufacturer = 0x0001 <VIA>
iProduct = 0x0002 <UHCI root HUB>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0040
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen3.1: <UHCI root HUB VIA> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0100
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x0000
idProduct = 0x0000
bcdDevice = 0x0100
iManufacturer = 0x0001 <VIA>
iProduct = 0x0002 <UHCI root HUB>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0040
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen4.1: <EHCI root HUB VIA> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0001
bMaxPacketSize0 = 0x0040
idVendor = 0x0000
idProduct = 0x0000
bcdDevice = 0x0100
iManufacturer = 0x0001 <VIA>
iProduct = 0x0002 <EHCI root HUB>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0040
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0008
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen1.3: <product 0x100e Sun Microsystems> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0009
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0008
idVendor = 0x0430
idProduct = 0x100e
bcdDevice = 0x0104
iManufacturer = 0x0000 <no string>
iProduct = 0x0000 <no string>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0019
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0032
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0009
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0001
bInterval = 0x00ff
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen1.4: <product 0x00a2 Sun Microsystems> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0008
idVendor = 0x0430
idProduct = 0x00a2
bcdDevice = 0x0104
iManufacturer = 0x0000 <no string>
iProduct = 0x0001 <Sun USB Keyboard>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0022
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0032
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0003
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0001
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x21
bDescriptorSubType = 0x10
RAW dump:
0x00 | 0x09, 0x21, 0x10, 0x01, 0x21, 0x01, 0x22, 0x40,
0x08 | 0x00
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0008
bInterval = 0x000a
bRefresh = 0x0000
bSynchAddress = 0x0000
ugen1.2: <USB Mouse Alcor Micro> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0008
idVendor = 0x0566
idProduct = 0x4006
bcdDevice = 0x5127
iManufacturer = 0x0000 <no string>
iProduct = 0x0002 <USB Mouse>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0022
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0032
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0003
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0002
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x21
bDescriptorSubType = 0x11
RAW dump:
0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x34,
0x08 | 0x00
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0003
wMaxPacketSize = 0x0004
bInterval = 0x000a
bRefresh = 0x0000
bSynchAddress = 0x0000
and dmesg | grep -i ussb:
root at botelhor.bplab.local:/usr/obj/usr/src/sys/USB2-GARGA
uhci0: <VIA 83C572 USB controller> port 0xb000-0xb01f irq 21 at device 16.0 on pci0
usbus0: <VIA 83C572 USB controller> on uhci0
uhci1: <VIA 83C572 USB controller> port 0xb400-0xb41f irq 21 at device 16.1 on pci0
usbus1: <VIA 83C572 USB controller> on uhci1
uhci2: <VIA 83C572 USB controller> port 0xb800-0xb81f irq 21 at device 16.2 on pci0
usbus2: <VIA 83C572 USB controller> on uhci2
uhci3: <VIA 83C572 USB controller> port 0xbc00-0xbc1f irq 21 at device 16.3 on pci0
usbus3: <VIA 83C572 USB controller> on uhci3
ehci0: <VIA VT6202 USB 2.0 controller> mem 0xdf004000-0xdf0040ff irq 21 at device 16.4 on pci0
usbus4: EHCI version 1.0
usbus4: <VIA VT6202 USB 2.0 controller> on ehci0
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 12Mbps Full Speed USB v1.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 480Mbps High Speed USB v2.0
ugen0.1: <VIA> at usbus0
ushub0: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <VIA> at usbus1
ushub1: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <VIA> at usbus2
ushub2: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
ugen3.1: <VIA> at usbus3
ushub3: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <VIA> at usbus4
ushub4: <VIA EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus4
usb2_alloc_device:1401: set address 2 failed (ignored)
usb2_alloc_device:1436: getting device descriptor at addr 2 failed!
usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
ugen1.2: <> at usbus1 (disconnected)
usb2_alloc_device:1401: set address 2 failed (ignored)
usb2_alloc_device:1436: getting device descriptor at addr 2 failed!
usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
ugen1.2: <> at usbus1 (disconnected)
usb2_alloc_device:1401: set address 2 failed (ignored)
usb2_alloc_device:1436: getting device descriptor at addr 2 failed!
ugen1.2: <Alcor Micro> at usbus1
ums0: <Alcor Micro USB Mouse, class 0/0, rev 1.10/51.27, addr 2> on usbus1
Symlink: ums0 -> usb1.2.0.16
KLD ums.ko: depends on usb - not available
ugen1.3: <Sun Microsystems> at usbus1
ushub5: <Sun Microsystems product 0x100e, class 9/0, rev 2.00/1.04, addr 3> on usbus1
ugen1.4: <Sun Microsystems> at usbus1
ukbd0: <Sun Microsystems product 0x00a2, class 0/0, rev 2.00/1.04, addr 4> on usbus1
ugen1.2: <Alcor Micro> at usbus1 (disconnected)
ugen1.2: <Alcor Micro> at usbus1
ums0: <Alcor Micro USB Mouse, class 0/0, rev 1.10/51.27, addr 2> on usbus1
Symlink: ums0 -> usb1.2.0.16
KLD ums.ko: depends on usb - not available
Do you need any more information?
Thanks
--
Renato Botelho <garga @ FreeBSD.org>
<garga @ freebsdbrasil.com.br>
GnuPG Key: http://www.FreeBSD.org/~garga/pubkey.asc
Some husbands are living proof that a woman can take a joke.
More information about the freebsd-usb
mailing list