Problem setting up my FiiO ka17 on FreeBSD via FiiO Control

Hi FreeBSD forums, I started using FreeBSD as my daily driver a few months ago. And i found it to be a great OS, particularly audio wise, I recently bought a FiiO ka17 that works fine on FreeBSD. But when I use FiiO Control Chromium doesn't detect it:
Screenshot at 2026-09-23 10-27-26.png

I guess it as something to do with device permissions, I tried to edit /etc/devfs.rules with:
Code:
[localrules=10]
add path 'dsp*' mode 660 group operator
but didn't work.

If can be of any help here is the /dev/sdastat:
Code:
pcm3: <GuangZhou FiiO Electronics Co.,Ltd FIIO KA17> on uaudio0 (1p:0v/0r:0v) default
   snddev flags=0x10b9<SIMPLEX,BUSY,MPSAFE,REGISTERED,VPC,PVCHANS>
   [dsp3.play.0]: spd 48000, fmt 0x00200010/0x00201000, flags 0x00000000, 0x00000023
        interrupts 0, underruns 0, feed 0, ready 0
        [b:1536/768/2|bs:2048/1024/2]
        channel flags=0x0
        {vchans} -> feeder_root(0x00200010) -> feeder_format(0x00200010 -> 0x00201000) -> feeder_volume(0x00201000) -> {hardware}

and the dmesg output:
Code:
Root mount waiting for: usbus0
ugen0.2: <GuangZhou FiiO Electronics Co.,Ltd FIIO KA17> at usbus0
uaudio0 on uhub1
uaudio0: <GuangZhou FiiO Electronics Co.,Ltd FIIO KA17, class 239/2, rev 2.00/2.25, addr 1> on usbus0
uaudio0: Play[0]: 192000 Hz, 2 ch, 32-bit S-LE PCM format, 2x4ms buffer. (selected)
uaudio0: Play[0]: 176400 Hz, 2 ch, 32-bit S-LE PCM format, 2x4ms buffer.
uaudio0: Play[0]: 96000 Hz, 2 ch, 32-bit S-LE PCM format, 2x4ms buffer.
uaudio0: Play[0]: 88200 Hz, 2 ch, 32-bit S-LE PCM format, 2x4ms buffer.
uaudio0: Play[0]: 48000 Hz, 2 ch, 32-bit S-LE PCM format, 2x4ms buffer.
uaudio0: Play[0]: 44100 Hz, 2 ch, 32-bit S-LE PCM format, 2x4ms buffer.
uaudio0: No recording.
uaudio0: No MIDI sequencer.
pcm3 on uaudio0
uaudio0: HID volume keys found.
ugen0.3: <vendor 0x8087 product 0x0a2b> at usbus0
Root mount waiting for: usbus0

I'm on FreeBSD 15.1-RELEASE-p3 on a Thinkpad T480s laptop.
I did some OSS config changes, but i don't think it as anything to do with this.

I don't know what other information can I give you guys, but if someone as a suggestion tell me about it.
 
A HID device is a keyboard, mouse or joystick. Not audio devices.
An HID can be also an output device like a USB DAC. At the very least is what Wikipedia says(Wikipedia isn't the most trustworthy website ever so it may also be an error):
A human interface device (HID) is a type of computer device usually used by humans that takes input from or provides output to humans.
and in any case I tried on other Operative Systems and in the "wants to connect a HID device" window there is a "FiiO ka17" option, so it still refers to the DAC, is just that chromium can't detected the ka17 on FreeBSD.
 
Can a media player (mpv, vlc, etc. ) detect the USB DAC, and can they play audio over the device?
I tried with Audacious, Firefox and even Chromium and the ka17 output the audio perfectly. But for some reason at the same time it can't be detected by Chromium as a device while in any other OS Chromium can detect it perfectly
 
maybe it has to do with this line in uaudio.c
/* prevent the uhid driver from attaching */

usbd_set_parent_iface(uaa->device, sc->sc_hid.iface_index,
sc->sc_mixer_iface_index);
 
What is `usb config -lv` saying about this device?

Note that there are probably several USB devices creates for this DAC.
`usbconfig -lv` gived me this incredibly long output

Code:
ugen0.5: bcdUSB=0x0200 bDeviceClass=0x00ef bDeviceSubClass=0x0002 bDeviceProtocol=0x0001 idVendor=0x2972 idProduct=0x0093 bcdDevice=0x0225 iManufacturer=0x0001 iProduct=0x0003 iSerialNumber=0x0002 bNumConfigurations=0x0002 vendor='FiiO Electronics Technology' product='FIIO KA17'


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0155
    bNumInterfaces = 0x0005
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080
    bMaxPower = 0x0000

    Additional Descriptor

    bLength = 0x08
    bDescriptorType = 0x0b
    bDescriptorSubType = 0x00
     RAW dump:
     0x00 | 0x08, 0x0b, 0x00, 0x02, 0x01, 0x00, 0x20, 0x00


    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0000
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0020
      iInterface = 0x0003  <FIIO KA17>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x09, 0x24, 0x01, 0x00, 0x02, 0x08, 0x48, 0x00,
       0x08 | 0x00

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0a
       RAW dump:
       0x00 | 0x08, 0x24, 0x0a, 0x29, 0x03, 0x07, 0x00, 0x09


      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0b
       RAW dump:
       0x00 | 0x08, 0x24, 0x0b, 0x28, 0x01, 0x29, 0x03, 0x08


      Additional Descriptor

      bLength = 0x11
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x11, 0x24, 0x02, 0x02, 0x01, 0x01, 0x00, 0x28,
       0x08 | 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00,
       0x10 | 0x06

      Additional Descriptor

      bLength = 0x12
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump:
       0x00 | 0x12, 0x24, 0x06, 0x0a, 0x02, 0x0f, 0x00, 0x00,
       0x08 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x10 | 0x00, 0x00


      Additional Descriptor

      bLength = 0x0c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump:
       0x00 | 0x0c, 0x24, 0x03, 0x14, 0x01, 0x03, 0x00, 0x0a,
       0x08 | 0x28, 0x00, 0x00, 0x00



    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0000
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >


    Interface 1 Alt 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0001
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x10
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x10, 0x24, 0x01, 0x02, 0x00, 0x01, 0x01, 0x00,
       0x08 | 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x06, 0x24, 0x02, 0x01, 0x04, 0x20


     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0308
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x08, 0x25, 0x01, 0x00, 0x00, 0x02, 0x08, 0x00


     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0011  <ISOCHRONOUS>
        wMaxPacketSize = 0x0004
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1 Alt 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0002
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x10
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x10, 0x24, 0x01, 0x02, 0x00, 0x01, 0x01, 0x00,
       0x08 | 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x06, 0x24, 0x02, 0x01, 0x02, 0x10


     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0184
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x08, 0x25, 0x01, 0x00, 0x00, 0x02, 0x08, 0x00


     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0011  <ISOCHRONOUS>
        wMaxPacketSize = 0x0004
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1 Alt 3
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0003
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x10
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x10, 0x24, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
       0x08 | 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x06, 0x24, 0x02, 0x01, 0x04, 0x20


     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0308
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x08, 0x25, 0x01, 0x00, 0x00, 0x02, 0x08, 0x00


     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0011  <ISOCHRONOUS>
        wMaxPacketSize = 0x0004
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0002
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0000
      bInterfaceClass = 0x00fe  <Application specific>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0001
      iInterface = 0x000a  <GuangZhou FIIO Electronics Co.,Ltd DFU>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x07
       RAW dump:
       0x00 | 0x09, 0x21, 0x07, 0xfa, 0x00, 0x40, 0x00, 0x10,
       0x08 | 0x01


    Interface 3
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0003
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x000e  <FIIO KA17 (MQA HID)>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x15,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0008
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 4
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0004
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0006  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x11
       RAW dump:
       0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x40,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0084  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0008
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0002  <OUT>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0008
        bRefresh = 0x0000
        bSynchAddress = 0x0000
 
`usbconfig -lv` gived me this incredibly long output

Code:
ugen0.5: bcdUSB=0x0200 bDeviceClass=0x00ef bDeviceSubClass=0x0002 bDeviceProtocol=0x0001 idVendor=0x2972 idProduct=0x0093 bcdDevice=0x0225 iManufacturer=0x0001 iProduct=0x0003 iSerialNumber=0x0002 bNumConfigurations=0x0002 vendor='FiiO Electronics Technology' product='FIIO KA17'


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0155
    bNumInterfaces = 0x0005
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080
    bMaxPower = 0x0000

    Additional Descriptor

    bLength = 0x08
    bDescriptorType = 0x0b
    bDescriptorSubType = 0x00
     RAW dump:
     0x00 | 0x08, 0x0b, 0x00, 0x02, 0x01, 0x00, 0x20, 0x00


    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0000
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0020
      iInterface = 0x0003  <FIIO KA17>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x09, 0x24, 0x01, 0x00, 0x02, 0x08, 0x48, 0x00,
       0x08 | 0x00

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0a
       RAW dump:
       0x00 | 0x08, 0x24, 0x0a, 0x29, 0x03, 0x07, 0x00, 0x09


      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0b
       RAW dump:
       0x00 | 0x08, 0x24, 0x0b, 0x28, 0x01, 0x29, 0x03, 0x08


      Additional Descriptor

      bLength = 0x11
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x11, 0x24, 0x02, 0x02, 0x01, 0x01, 0x00, 0x28,
       0x08 | 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00,
       0x10 | 0x06

      Additional Descriptor

      bLength = 0x12
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump:
       0x00 | 0x12, 0x24, 0x06, 0x0a, 0x02, 0x0f, 0x00, 0x00,
       0x08 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x10 | 0x00, 0x00


      Additional Descriptor

      bLength = 0x0c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump:
       0x00 | 0x0c, 0x24, 0x03, 0x14, 0x01, 0x03, 0x00, 0x0a,
       0x08 | 0x28, 0x00, 0x00, 0x00



    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0000
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >


    Interface 1 Alt 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0001
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x10
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x10, 0x24, 0x01, 0x02, 0x00, 0x01, 0x01, 0x00,
       0x08 | 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x06, 0x24, 0x02, 0x01, 0x04, 0x20


     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0308
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x08, 0x25, 0x01, 0x00, 0x00, 0x02, 0x08, 0x00


     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0011  <ISOCHRONOUS>
        wMaxPacketSize = 0x0004
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1 Alt 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0002
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x10
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x10, 0x24, 0x01, 0x02, 0x00, 0x01, 0x01, 0x00,
       0x08 | 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x06, 0x24, 0x02, 0x01, 0x02, 0x10


     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0184
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x08, 0x25, 0x01, 0x00, 0x00, 0x02, 0x08, 0x00


     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0011  <ISOCHRONOUS>
        wMaxPacketSize = 0x0004
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1 Alt 3
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0003
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002
      bInterfaceProtocol = 0x0020
      iInterface = 0x0004  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x10
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x10, 0x24, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00,
       0x08 | 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump:
       0x00 | 0x06, 0x24, 0x02, 0x01, 0x04, 0x20


     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize = 0x0308
        bInterval = 0x0001
        bRefresh = 0x0000
        bSynchAddress = 0x0000

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump:
       0x00 | 0x08, 0x25, 0x01, 0x00, 0x00, 0x02, 0x08, 0x00


     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0011  <ISOCHRONOUS>
        wMaxPacketSize = 0x0004
        bInterval = 0x0004
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0002
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0000
      bInterfaceClass = 0x00fe  <Application specific>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0001
      iInterface = 0x000a  <GuangZhou FIIO Electronics Co.,Ltd DFU>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x07
       RAW dump:
       0x00 | 0x09, 0x21, 0x07, 0xfa, 0x00, 0x40, 0x00, 0x10,
       0x08 | 0x01


    Interface 3
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0003
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x000e  <FIIO KA17 (MQA HID)>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x15,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0008
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 4
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0004
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0003  <HID device>
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0006  <FIIO KA17 >

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x11
       RAW dump:
       0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x40,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0084  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0008
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0002  <OUT>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0040
        bInterval = 0x0008
        bRefresh = 0x0000
        bSynchAddress = 0x0000
That's for all device, not just the DAC.

The way I usually do it:
Code:
# disconnect interface
usbconfig -lv > l1
# connect interface
usbconfig -lv | diff -u l1 -

However, if what covacat found indeed prevents attachment of the HID driver that won't give us what we want.

In that case you would have to remove that line from the source code and recompile and reload that module.
 
Back
Top