Re: Joystick with keyboard, mouse and joystick endpoints disconnects after 3-4 seconds
Date: Tue, 18 Jan 2022 21:53:57 UTC
Are you running webcamd? I had a similar problem with a USB gamepad I use for controlling Lego robots over bluetooth some years ago and learned that webcamd isn't just for webcams anymore, but grabs other kinds of HIDs. On 1/18/22 09:21, Jan Mikkelsen wrote: > Hi, > > When attaching an APEM VM Desktop joystick, https://www.apem.com/int/vm-desktop-93.html, to a 12.2 system, I get this sequence of events: > > ugen0.10: <CH Products VM Desktop> at usbus0 > uhid0 numa-domain 0 on uhub2 > uhid0: <VM Joystick Interface> on usbus0 > uhid1 numa-domain 0 on uhub2 > uhid1: <VM Keyboard Interface> on usbus0 > uhid2 numa-domain 0 on uhub2 > uhid2: <VM Mouse Interface> on usbus0 > ugen0.10: <CH Products VM Desktop> at usbus0 (disconnected) > uhid0: at uhub2, port 5, addr 19 (disconnected) > uhid0: detached > uhid1: at uhub2, port 5, addr 19 (disconnected) > uhid1: detached > uhid2: at uhub2, port 5, addr 19 (disconnected) > uhid2: detached > > The disconnection happens about 3-4 seconds after the attachment completes. > > The device has three endpoints: A mouse, a keyboard and a joystick. I have added quirks to have ums and ukbd ignore the device, so that uhid attaches. I believe that mouse and keyboard endpoints on the same device are not currently supported. > > The output from “usbconfig dump_all_desc” is shown below. > > Any ideas on where to look to resolve this? > > Thanks, > > Jan M. > > > ugen0.10: <CH Products VM Desktop> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA) > > bLength = 0x0012 > bDescriptorType = 0x0001 > bcdUSB = 0x0200 > bDeviceClass = 0x0000 <Probed by interface class> > bDeviceSubClass = 0x0000 > bDeviceProtocol = 0x0000 > bMaxPacketSize0 = 0x0008 > idVendor = 0x068e > idProduct = 0x0064 > bcdDevice = 0x0200 > iManufacturer = 0x0001 <CH Products> > iProduct = 0x0002 <VM Desktop> > iSerialNumber = 0x0000 <no string> > bNumConfigurations = 0x0001 > > Configuration index 0 > > bLength = 0x0009 > bDescriptorType = 0x0002 > wTotalLength = 0x005b > bNumInterfaces = 0x0003 > bConfigurationValue = 0x0001 > iConfiguration = 0x0000 <no string> > bmAttributes = 0x0080 > bMaxPower = 0x00fa > > Interface 0 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0000 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0002 > bInterfaceClass = 0x0003 <HID device> > bInterfaceSubClass = 0x0000 > bInterfaceProtocol = 0x0000 > iInterface = 0x0005 <VM Joystick Interface> > > Additional Descriptor > > bLength = 0x09 > bDescriptorType = 0x21 > bDescriptorSubType = 0x11 > RAW dump: > 0x00 | 0x09, 0x21, 0x11, 0x01, 0x21, 0x01, 0x22, 0x4b, > 0x08 | 0x00 > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0082 <IN> > bmAttributes = 0x0003 <INTERRUPT> > wMaxPacketSize = 0x0040 > bInterval = 0x000a > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 1 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0001 <OUT> > bmAttributes = 0x0003 <INTERRUPT> > wMaxPacketSize = 0x0040 > bInterval = 0x000a > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > > Interface 1 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0001 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0001 > bInterfaceClass = 0x0003 <HID device> > bInterfaceSubClass = 0x0000 > bInterfaceProtocol = 0x0000 > iInterface = 0x0004 <VM Keyboard Interface> > > Additional Descriptor > > bLength = 0x09 > bDescriptorType = 0x21 > bDescriptorSubType = 0x11 > RAW dump: > 0x00 | 0x09, 0x21, 0x11, 0x01, 0x21, 0x01, 0x22, 0x3f, > 0x08 | 0x00 > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0083 <IN> > bmAttributes = 0x0003 <INTERRUPT> > wMaxPacketSize = 0x0008 > bInterval = 0x000a > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > > Interface 2 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0002 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0001 > bInterfaceClass = 0x0003 <HID device> > bInterfaceSubClass = 0x0000 > bInterfaceProtocol = 0x0000 > iInterface = 0x0003 <VM Mouse Interface> > > Additional Descriptor > > bLength = 0x09 > bDescriptorType = 0x21 > bDescriptorSubType = 0x11 > RAW dump: > 0x00 | 0x09, 0x21, 0x11, 0x01, 0x21, 0x01, 0x22, 0x34, > 0x08 | 0x00 > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0084 <IN> > bmAttributes = 0x0003 <INTERRUPT> > wMaxPacketSize = 0x0008 > bInterval = 0x000a > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > > -- Life is a game. Play hard, play fair, and have fun...