Opened 37 hours ago
Last modified 35 hours ago
#19411 new enhancement
USB Audio "Generic Earpods" not working in Haiku.
Reported by: | LSS37040 | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Drivers/Audio/USB | Version: | R1/beta5 |
Keywords: | Cc: | ||
Blocked By: | #18320 | Blocking: | |
Platform: | All |
Description
Originally posted this directly to #18320 as I think this is likely a duplicate for that, but I think I should better just create my own. I've moved the original post content here.
I have this USB audio device in the form of a USB to RCA adapter, and it doesn't work with Haiku. It does work correctly with other OSes on this system, however.
Before reporting this I've done a system update and it's currently hrev58622.
The only relevant information in the syslog is this line.
KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/audio/hmulti/usb_audio
Here's the listdev -v
output of this device, as well as the hub/controller it's connected to. I'm currently connecting it to a native USB 2.0 (EHCI) port on the motherboard.
[Device /dev/bus/usb/1/0/4] Class .................. 0x00 (Defined at Interface level) () Subclass ............... 0x00 (Defined at Interface level) () Protocol ............... 0x00 (Defined at Interface level) () Max Endpoint 0 Packet .. 64 USB Version ............ 2.0 Vendor ID .............. 0x0020 Product ID ............. 0x0b21 Product Version ........ 0x0100 Manufacturer String .... "Generic" Product String ......... "EarPods" Serial Number .......... "20210726905926" [Configuration 0] Configuration String . "" [Interface 0] [Alternate 0 active] Class .............. 0x01 Audio () Subclass ........... 0x01 Audio (Control Device) Protocol ........... 0x00 Audio (Control Device) Interface String ... "" [Descriptor 0] Type .............. 0x24 Subtype ........... 0x01 (Header) Audio codec version .. 1.0 Total Length ...... 85 Interfaces ........ 1, 2, [Descriptor 1] Length............. 12 Type .............. 0x24 Subtype ........... 0x02 (Input Terminal) Terminal ID ....... 1 Terminal Type ..... 0x0101 (USB Streaming) Associated Terminal 0 Nr Channels ....... 2 Channel Config .... 0x3 Front .......... Left Right Channel Names ..... 0 Terminal .......... 0 [Descriptor 2] Length............. 13 Type .............. 0x24 Subtype ........... 0x04 (Mixer Unit) Unit ID ........... 6 Source IDs ........ 5, 5, Channels .......... 2 Channel Config .... 0x3 Front .......... Left Right Channel Names ..... 0 Bitmap Control .... 0x00 Mixer ............. 0 [Descriptor 3] Length............. 10 Type .............. 0x24 Subtype ........... 0x06 (Feature Unit) Unit ID ........... 2 Source ID ......... 0x01 Control Size ...... 1 Master Channel . Mute Channel 1 ...... Volume Channel 2 ...... Volume [Descriptor 4] Length............. 9 Type .............. 0x24 Subtype ........... 0x03 (Output Terminal) Terminal ID ....... 3 Terminal Type ..... 0x0301 (Speaker) Associated Terminal 0 Source ID ......... 0x02 Terminal .......... 0 [Descriptor 5] Length............. 12 Type .............. 0x24 Subtype ........... 0x02 (Input Terminal) Terminal ID ....... 4 Terminal Type ..... 0x0201 (Microphone) Associated Terminal 0 Nr Channels ....... 2 Channel Config .... 0x3 Front .......... Left Right Channel Names ..... 0 Terminal .......... 0 [Descriptor 6] Length............. 10 Type .............. 0x24 Subtype ........... 0x06 (Feature Unit) Unit ID ........... 5 Source ID ......... 0x04 Control Size ...... 1 Master Channel . Mute Volume [Descriptor 7] Length............. 9 Type .............. 0x24 Subtype ........... 0x03 (Output Terminal) Terminal ID ....... 6 Terminal Type ..... 0x0101 (USB Streaming) Associated Terminal 0 Source ID ......... 0x05 Terminal .......... 0 [Interface 1] [Alternate 0 active] Class .............. 0x01 Audio () Subclass ........... 0x02 Audio (Streaming) Protocol ........... 0x00 Audio (Streaming) Interface String ... "" [Alternate 1] Class .............. 0x01 Audio () Subclass ........... 0x02 Audio (Streaming) Protocol ........... 0x00 Audio (Streaming) Interface String ... "" [Endpoint 0] MaxPacketSize .... 1x 384 bytes Interval ......... 1 Type ............. Isochronous Direction ........ Output [Descriptor 0] Subtype ........... 1 (AS_GENERAL) Terminal link ..... 1 Delay ............. 1 Format tag ........ 1 [Descriptor 1] Subtype ........... 2 (FORMAT_TYPE) Format Type ....... 1 (FORMAT_TYPE_I) Channels .......... 2 Subframe size ..... 2 Bit resolution .... 16 Sampling Freq ..... 48000, [Descriptor 2] Type .............. 0x25 (CS_ENDPOINT) Subtype ........... 0x01 (EP_GENERAL) Attributes ........ 0x01 Sampling Frequency Lock Delay Units .. 1 (Milliseconds) Lock Delay ........ 1 [Interface 2] [Alternate 0 active] Class .............. 0x01 Audio () Subclass ........... 0x02 Audio (Streaming) Protocol ........... 0x00 Audio (Streaming) Interface String ... "" [Alternate 1] Class .............. 0x01 Audio () Subclass ........... 0x02 Audio (Streaming) Protocol ........... 0x00 Audio (Streaming) Interface String ... "" [Endpoint 0] MaxPacketSize .... 1x 208 bytes Interval ......... 1 Type ............. Isochronous Direction ........ Input [Descriptor 0] Subtype ........... 1 (AS_GENERAL) Terminal link ..... 6 Delay ............. 1 Format tag ........ 1 [Descriptor 1] Subtype ........... 2 (FORMAT_TYPE) Format Type ....... 1 (FORMAT_TYPE_I) Channels .......... 2 Subframe size ..... 2 Bit resolution .... 16 Sampling Freq ..... 48000, [Descriptor 2] Type .............. 0x25 (CS_ENDPOINT) Subtype ........... 0x01 (EP_GENERAL) Attributes ........ 0x01 Sampling Frequency Lock Delay Units .. 0 (Undefined) Lock Delay ........ 0 [Interface 3] [Alternate 0 active] Class .............. 0x03 Human Interface Device (No Subclass, None) Subclass ........... 0x00 Human Interface Device (No Subclass, None) Protocol ........... 0x00 Human Interface Device (No Subclass, None) Interface String ... "" [Endpoint 0] MaxPacketSize .... 1x 16 bytes Interval ......... 1 Type ............. Interrupt Direction ........ Input [Descriptor 0] Length............ 0x09 Type ............. 0x21 Data ............. 01 02 00 01 22 36 00 [Device /dev/bus/usb/1/0/hub] Class .................. 0x09 Hub (Unused, Full speed (or root) hub) Subclass ............... 0x00 Hub (Unused, Full speed (or root) hub) Protocol ............... 0x01 Hub (Unused, Single TT) Max Endpoint 0 Packet .. 64 USB Version ............ 2.0 Vendor ID .............. 0x8087 (Intel Corp.) Product ID ............. 0x800a (Hub) Product Version ........ 0x0005 Manufacturer String .... "" Product String ......... "" Serial Number .......... "" [Configuration 0] Configuration String . "" [Interface 0] [Alternate 0 active] Class .............. 0x09 Hub (Unused, Full speed (or root) hub) Subclass ........... 0x00 Hub (Unused, Full speed (or root) hub) Protocol ........... 0x00 Hub (Unused, Full speed (or root) hub) Interface String ... "" [Endpoint 0] MaxPacketSize .... 1x 1 bytes Interval ......... 12 Type ............. Interrupt Direction ........ Input Hub ports count......... 6 Hub Controller Current.. 0mA Port 1 status....... 0503.0000 Connect Enable Power Port 2 status....... 0100.0000 Power Port 3 status....... 0100.0000 Power Port 4 status....... 0100.0000 Power Port 5 status....... 0103.0000 Connect Enable Power Port 6 status....... 0100.0000 Power [Device /dev/bus/usb/1/hub] Class .................. 0x09 Hub (Unused, Full speed (or root) hub) Subclass ............... 0x00 Hub (Unused, Full speed (or root) hub) Protocol ............... 0x00 Hub (Unused, Full speed (or root) hub) Max Endpoint 0 Packet .. 64 USB Version ............ 2.0 Vendor ID .............. 0x0000 Product ID ............. 0x0000 Product Version ........ 0x0200 Manufacturer String .... "HAIKU Inc." Product String ......... "EHCI RootHub" Serial Number .......... "" [Configuration 0] Configuration String . "" [Interface 0] [Alternate 0 active] Class .............. 0x09 Hub (Unused, Full speed (or root) hub) Subclass ........... 0x00 Hub (Unused, Full speed (or root) hub) Protocol ........... 0x00 Hub (Unused, Full speed (or root) hub) Interface String ... "" [Endpoint 0] MaxPacketSize .... 1x 8 bytes Interval ......... 255 Type ............. Interrupt Direction ........ Input [Descriptor 0] Length............ 0x09 Type ............. 0x29 Data ............. 02 00 00 00 00 00 ff Hub ports count......... 2 Hub Controller Current.. 0mA Port 1 status....... 0503.0000 Connect Enable Power Port 2 status....... 0100.0000 Power
The device reports USB 2.0 but it's actually an ADC 1.0 device (Audio codec version .. 1.0), similar to what has been discussed here: https://discuss.haiku-os.org/t/haiku-cannot-find-any-audio-device/16286/11
Considering there's only a single line relevant to usb_audio
I suspect the driver has not picked up this device because of its reporting itself as USB 2.0.
Change History (2)
comment:1 by , 35 hours ago
Component: | Audio & Video → Drivers/Audio/USB |
---|---|
Keywords: | usb_audio removed |
comment:2 by , 35 hours ago
Type: | bug → enhancement |
---|