Having a few problems with the Xone32c though not sure if this is an ALSA issue or general USB stack problem. It's a USB soundcard that is supposed to have 4 inputs and 4 outputs. It seems to have 2 USB configurations (bNumConfigurations : 0x2). When plugged in, bConfigurationValue is 0x1 and only 2 inputs and 2 outputs show up. Change this value to 0x2 and it shows up (as it should) as 4 inputs and 4 outputs. I can change the bConfigurationValue with this udev rule, or with a `echo 2 /sys/bus/usb/devices/1-1.4/bConfigurationValue`: This has all been working OK on Ubuntu 20.04 running kernel 5.4.0-33-generic. However, I just updated to 5.4.0-37-generic and now there is only a single USB configuration (bNumConfigurations : 0x1) and bConfigurationValue can't be changed to 0x2:
Please attach the dmesg log showing what happens when you plug the device into the computer. Also, please attach the output from "lsusb -v" for the device. You also should should close Bug #217088 as it is a copy of this bug.
dsmeg: [44482.358193] usb 1-1.2: Product: Xone:23C [44482.358199] usb 1-1.2: Manufacturer: Allen&Heath [44482.358205] usb 1-1.2: SerialNumber: no serial number [44482.361222] usb 1-1.2: 1:2 : UAC_AS_GENERAL descriptor not found [44482.362519] usb 1-1.2: 2:2 : UAC_AS_GENERAL descriptor not found lsusb -v -d 22f0:0008~ Bus 001 Device 011: ID 22f0:0008 Allen&Heath Xone:23C Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x22f0 idProduct 0x0008 bcdDevice 2.00 iManufacturer 1 Allen&Heath iProduct 2 Xone:23C iSerial 3 no serial number bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0126 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 0 AudioControl Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0035 bInCollection 3 baInterfaceNr(0) 1 baInterfaceNr(1) 2 baInterfaceNr(2) 3 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0602 Digital Audio Interface bAssocTerminal 0 bSourceID 1 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 3 wTerminalType 0x0602 Digital Audio Interface bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 4 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 3 iTerminal 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 1 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0126 1x 294 bytes bInterval 4 bRefresh 0 bSynchAddress 133 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 4 bRefresh 5 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 bRefresh 0 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 4 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptorlsusb -v -d 22f0:0008~ Bus 001 Device 011: ID 22f0:0008 Allen&Heath Xone:23C Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x22f0 idProduct 0x0008 bcdDevice 2.00 iManufacturer 1 Allen&Heath iProduct 2 Xone:23C iSerial 3 no serial number bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0126 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 0 AudioControl Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0035 bInCollection 3 baInterfaceNr(0) 1 baInterfaceNr(1) 2 baInterfaceNr(2) 3 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0602 Digital Audio Interface bAssocTerminal 0 bSourceID 1 iTerminal 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 3 wTerminalType 0x0602 Digital Audio Interface bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 4 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 3 iTerminal 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 1 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0126 1x 294 bytes bInterval 4 bRefresh 0 bSynchAddress 133 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0003 1x 3 bytes bInterval 4 bRefresh 5 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 bRefresh 0 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 0 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 4 bDelay 1 frames wFormatTag 0x0001 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0126 1x 294 bytes bInterval 4 bRefresh 0 bSynchAddress 0 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0000 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 bRefresh 0 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 3 MIDI Streaming bInterfaceProtocol 0 iInterface 0 MIDIStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0041 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 1 Embedded bJackID 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 2 External bJackID 2 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 1 Embedded bJackID 3 bNrInputPins 1 baSourceID( 0) 2 BaSourcePin( 0) 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 2 External bJackID 4 bNrInputPins 1 baSourceID( 0) 1 BaSourcePin( 0) 1 iJack 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 3 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 4 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 1 : bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 3 bBitResolution 24 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0126 1x 294 bytes bInterval 4 bRefresh 0 bSynchAddress 0 AudioStreaming Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x01 Sampling Frequency bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0000 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 2 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 bRefresh 0 bSynchAddress 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 3 MIDI Streaming bInterfaceProtocol 0 iInterface 0 MIDIStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0041 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 1 Embedded bJackID 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 2 External bJackID 2 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 1 Embedded bJackID 3 bNrInputPins 1 baSourceID( 0) 2 BaSourcePin( 0) 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 2 External bJackID 4 bNrInputPins 1 baSourceID( 0) 1 BaSourcePin( 0) 1 iJack 0 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 3 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 4 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (GENERAL) bNumEmbMIDIJack 1 baAssocJackID( 0) 1
Pasting the lsusb output into the bug report ruined the formatting, making the text very difficult to read. That's why I suggested you attach the output instead of pasting it. Anyway, can you try booting the earlier kernel and getting the same data? I'd like to see if the kernel version makes any difference. If it did, that would be pretty surprising.
there is an issue on github, you might find useful information there too. https://gist.github.com/timnugent/ed65a79b2bd6c63788bfada3624756a4 thanks for your help. will do everything possible to help you
Created attachment 303799 [details] xone23-c dmesg and lsusb under kernel 5.4.0.33. The audio device is recognized. lsusb and dmesg with xone23-c under kernel 5.4.0.33. The audio device is recognized.
Created attachment 303800 [details] UI showing the xone23-c under kernel 5.4.0.33. The audio device is recognized.
Created attachment 303801 [details] xone23-c dmesg and lsusb under kernel 5.4.0.37. The audio device is NOT recognized.
Created attachment 303802 [details] UI showing the xone23-c under kernel 5.4.0.37. The audio device is NOT recognized.
Good evening Alan Stern, Thanks for helping us. I have attached the following files to this bug: 1. xone23-c dmesg and lsusb under kernel 5.4.0.33. This file shows the ouput of dmesg and lsusb when using kernel 5.4.0.33. As of this kernel everything was working great. 2. UI showing the xone23-c under kernel 5.4.0.33. This is a png file showing the UI, showing briefly how the audio device is recognized as a 4x4 channel audio device. 3. xone23-c dmesg and lsusb under kernel 5.4.0.37. This file shows the ouput of dmesg and lsusb when using kernel 5.4.0.37. That's the first kernel I was able to install to see that the audio device is not recognized as a 4x4 channel audio device. I have not been able to install kernels between 33 and 37. 4. UI showing the xone23-c under kernel 5.4.0.37. This is a png file showing the UI, showing how the audio device is recognized as a 2x2 channel audio device. Let me know If I can give you more information. Thanks.
The attachments are pretty clear. The most likely explanation is that something gets sent to the device under one kernel but not the other, something which causes it to change its firmware. The next step is to collect a usbmon trace showing what happens when the device is plugged in. As root, do: cat /sys/kernel/debug/usb/usbmon/1u >FILENAME before plugging in the device. A few seconds after the Xone is plugged in, kill the command with ^C and attach the output file to this bug report. Do this for both of the kernels, and we'll see if anything is different between them.
Created attachment 303804 [details] Log from usbmon kernel 5.4.0.33 Log from cat /sys/kernel/debug/usb/usbmon/1u >FILENAME under kernel 5.4.0.33
Created attachment 303805 [details] Log from usbmon kernel 5.4.0.37 Log from cat /sys/kernel/debug/usb/usbmon/1u >FILENAME under kernel 5.4.0.37
Created attachment 303806 [details] Log from usbmon kernel 5.4.0.33 Log from cat /sys/kernel/debug/usb/usbmon/1u >FILENAME under kernel 5.4.0.33
(In reply to Alan Stern from comment #10) > The attachments are pretty clear. The most likely explanation is that > something gets sent to the device under one kernel but not the other, > something which causes it to change its firmware. > > The next step is to collect a usbmon trace showing what happens when the > device is plugged in. As root, do: > > cat /sys/kernel/debug/usb/usbmon/1u >FILENAME > > before plugging in the device. A few seconds after the Xone is plugged in, > kill the command with ^C and attach the output file to this bug report. Do > this for both of the kernels, and we'll see if anything is different between > them. Hello Alan, Thanks for your reply. I have uploaded the 2 logs from usbmon: Kernel 33: https://bugzilla.kernel.org/attachment.cgi?id=303806 Kernel 37: https://bugzilla.kernel.org/attachment.cgi?id=303805 If you need more information I am all ears. Thanks.
The two usbmon traces show a big difference right near the start. You can check my analysis by doing: cat /sys/module/usbcore/parameters/old_scheme_first under each of the kernels. My guess is that the file contains Y in the -33 kernel and N in the -37 kernel. That setting should not make any difference to a reasonable device. But apparently the Xone isn't reasonable, and it changes its behavior based on this parameter setting. Technically, it removes the second configuration when it is reset a second time after being plugged in. The -37 usbmon trace shows that the xone reports two configs after the first reset and only one after the second reset. The relevant lines from the trace, right after the first reset, are: ffff8bfede5c8900 121253611 S Ci:1:000:0 s 80 06 0100 0000 0040 64 < ffff8bfede5c8900 121253721 C Ci:1:000:0 0 18 = 12010002 ef020140 f0220800 00020102 0302 The 02 at the end is the number of configurations. ffff8bfede5c8900 121253739 S Co:1:001:0 s 23 03 0004 0001 0000 0 ffff8bfede5c8900 121253750 C Co:1:001:0 0 0 ffff8bfede5c8900 121321750 S Ci:1:001:0 s a3 00 0000 0001 0004 4 < ffff8bfede5c8900 121321766 C Ci:1:001:0 0 4 = 03051000 ffff8bfede5c8900 121321771 S Co:1:001:0 s 23 01 0014 0001 0000 0 ffff8bfede5c8900 121321786 C Co:1:001:0 0 0 Those lines are the second reset. ffff8bfede5c8900 121401578 S Ci:1:007:0 s 80 06 0100 0000 0012 18 < ffff8bfede5c8900 121401685 C Ci:1:007:0 0 18 = 12010002 ef020140 f0220800 00020102 0301 Here the 02 at the end has changed to 01. The -33 trace shows only one reset, and the number of configs doesn't change from 2 to 1. Assuming this is true, the good news is that the parameter is something you can easily change. Just do (as root): echo Y >/sys/module/usbcore/parameters/old_scheme_first under the -37 kernel and then see what happens when you plug in the device.
Created attachment 303808 [details] cat file old_scheme_first Hello Alan, Incredible (for me this all is like reading a foreign language), As you said that last echo seems to make the xone be recognized as a 4x4 device (as seen in the UI). I add in this file all the commands you asked and also lsusb and dmesg after pluggin in the device in the -37 kernel. What would be the next steps ? Thanks.
Just to clarify: The -33 kernel has a N, and the -37 has also a N. But when the -37 has a Y the device seems to be recognized correctly.
Okay. There was a change made to the kernel some time ago which caused it to always use the old scheme first for initializing high-speed USB devices, overriding the value in the old_scheme_first parameter file. It turned out that this change caused problems for some devices, so it was reverted about three years ago. I expect Ubuntu's 5.4.0-33-generic kernel release contains that change and the -37 release contains the reversion; that would explain what you're seeing. But at least you do have a way to make the device work now. In fact, you ought to be able to leave the parameter set to Y permanently; this will work fine with most devices. And if you want to know why the Xone behaves in this strange manner, probably the only way to find out is to ask the manufacturer.
Thanks Alan, I will contact the manufacturer by varius means, with some luck they send my inquiry to the correct team. Pierre
In the meantime, you can mark this bug report closed.
(In reply to Alan Stern from comment #20) > In the meantime, you can mark this bug report closed. Sorry Alan, I don't see that option, I think I would need more permissions. There should be a Edit link next to Status: NEW but I don't have that option.
Oh. It has to be done by the person who originally opened the bug report (valino) or the person to whom the report is assigned (Greg). But I see the status has already been changed to RESOLVED IMPLEMENTED, so nothing more needs to be done.
Thanks a lot Alan for all your effort and good work. I hope you have a nice week.