Comet KVM Custom Audio Port(USB)

Hello,

I have a use case for a few dozen of individuals that I am testing the Comet KVM and Comet PoE KVM for right now. I would like to have the option to change the audio source from the existing configuration to using the USB Port. From my research so far, it appears that the kernel needs to be compiled with the snd-usb-audio.ko module. I am plugging the USB-A cable from the KVM into my devices USB-B port which presents itself as a USB Codec as well as serial port. Here are the details of what it detects right now.. but even if I modify the configuration at CLI to point to that CODEC, my suspicion is that it wont work until that module is compiled in.

Usecase:
Allow selecting of custom defined Audio Input and Output devices in the UI which are detected at the CLI.

Connecting the USB-A interface on the KVM into a USB-B interface on the host to receive the audio and send the audio from the selected interfaces. Specifically use the USB AUDIO Codec as a source for the received audio.

bash-4.4# lsusb
Bus 002 Device 007: ID 08bb:29c3
Bus 002 Device 005: ID 0451:2036
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 006: ID 0403:6010
Bus 002 Device 001: ID 1d6b:0001

bash-4.4# cat /sys/bus/usb/devices/2-1.2/product 2>/dev/null || echo "No product info"
USB AUDIO CODEC

USB Hub (2-1)
├── FTDI Dual RS232 (2-1.1)
└── USB Audio Codec (2-1.2)

Connected USB Devices:
Device 2-1: General Purpose USB Hub

Manufacturer: (not specified)
USB ID: 0451:2036

Device 2-1.1: Dual RS232 (Serial Adapter)

Manufacturer: FTDI
USB ID: 0403:6010

Device 2-1.2: USB AUDIO CODEC :star:

Manufacturer: BurrBrown from Texas Instruments
USB ID: 08bb:29c3

USB Controllers:

Bus 1: EHCI Host Controller (USB 2.0)
Bus 2: Generic Platform OHCI controller (USB 1.1)

After initially looking this over, I suspect there needs to be snd-usb-audio compiled in? and some modification of the UI to allow a dropdown slection of the detected audio devices. Happy to run some more command and debug as needed or if the source is posted I can roll my own.

-Mike

It should be implemented through UAC2 in the UDC. The question is why this is needed. JETKVM uses USB Audio because its hardware design initially did not account for HDMI Audio, making it unusable. As a result, USB Audio was adopted. However, since we have now implemented HDMI Audio, USB Audio should no longer be necessary.

Great question.

The use case is for a group of people who want to remote control their equipment. Most of our equipment has HDMI but doesn't support audio over HDMI since it's not traditional computers. However, the equipment uses standard USB CODECs for audio.

The problem we're solving is remote access to equipment when traveling. If we could get audio output via USB, we could control the equipment via keyboard and mouse (which the GLKVM does very well) and also hear the audio through the USB CODEC.

The advanced feature would be connecting microphone input from the browser to a second USB CODEC.

While HDMI audio works fine for normal computers, HDMI doesn't carry audio in our situation. We need the option to select USB CODEC as the audio source for both output and input. The system can use the browser's detected microphone, as long as we can configure the KVM to route browser microphone input to the USB CODEC.

Thank you for the clarification about UAC2/UDC implementation. I understand that refers to USB gadget mode where the KVM acts as a USB audio device to the target computer.

However, my request is for USB host support, not USB gadget functionality. I have an external USB audio codec (Texas Instruments BurrBrown) that I want to connect to the KVM's USB host port as an audio input source, similar to how the current HDMI audio input works.

The issue is that the kernel lacks the snd-usb-audio driver needed for USB host-side audio devices. When I connect the USB audio codec:

  • USB enumeration works correctly (device detected as ID 08bb:29c3)

  • Audio interfaces are properly identified (USB Audio Class 1.0)

  • But no audio driver binds to the device, so it can't function as an ALSA audio source

This would allow using the USB audio codec as an alternative audio input method alongside the existing HDMI audio, giving users more flexibility in audio routing - particularly useful for setups where HDMI audio extraction isn't optimal.

Would it be possible to include USB Audio Class host support (CONFIG_SND_USB_AUDIO) in future firmware builds?

-Mike

I will compile a firmware for you , give me a second

1 Like
1 Like

Thanks, I have downloaded it. Will this work on the KVM Poe and the Non Poe Version? I have both, so I just want to know which one I should test this on?

-Mike

Non poe

minmie,

Thank you!

Can you please create the same update for the PoE version so I can apply it as well and test before rolling it out?

So far this is testing VERY well in with the non PoE version, with only one change needed which I documented below. Now I have both audio coming from my remote device into my browser and I can send mic-audio TO my remote device using my USB mic which is detected by the browser.

Any chance this module will be incorporated into the mainline releases?

The only change I had to make was the following:

cat /etc/kvmd/janus/janus.plugin.ustreamer.jcfg

video: {

sink = "kvmd::ustreamer::h264"

}

acap: {

device = "hw:0,0"

tc358743 = "/dev/video0"

}

aplay: {

    **device = "hw:0,0"**

check = "/run/kvmd/otg/[email protected]"

}

1 Like

Will be added in the future release

2 Likes

Awesome! If you want to provide the beta for the PoE version I can test it today or whenever you get around to compiling it.

Mike

Love your support and looking forward to this too! While HDMI audio works decently well for me, older Intel UHD graphics drivers have a sound output bug where the first few seconds of audio are lost over HDMI and DP. Obviously this is bad because I miss notification sounds. Intel is terrible and never provided a fix, so there’s various hacks and workarounds out there which keep the output alive by playing static from an app, except that can’t work on restricted workstations. A USB output audio device which bypasses the Intel driver would definitely fix this.

I still need to explain that we will compile the required kernel modules, but for the application layer, we may only provide documentation, as this is not a common requirement. Adding it to the WEB UI would only increase user confusion.

I'm curious if you've given any thought to a JSON(-like?) config file someplace that doesn't get wiped with firmware upgrades that can do some of these one-off configurations more easily. Things like defining custom NTP servers by modifying the appropriate files automatically on reboot would be a great middle ground between having to hand-edit everything manually and having a cluttered UI. Adding a parser for a simple "enable_usb_audio": true would be awesome.

Just my guess here, but I had to hand edit the file listed above because by default its going to use whatever is in that config file which was the HDMI. I had to do some research with LSUSB to figure out what the hardware ID was I plugged it in to the box. Once I figure that out I was able to edit the file and swap the information for what I wanted. (After the kernel modules were added). Since I had to do that, I wonder if the hardware ID that I was presented with will ALWAYS be the same for ALL users that chose the route audio over USB. if so, then I think that parser would work. However, if it changes depending on device/device type then it might be more complex? Not sure, just a guess. I am happy with the result as it is now. When it rolls into prod release, I think I can just make a simple bash script to swap the line entry out for my use cases..

I haven't tested this across firmware updates, but rumor has it that storing that script at /etc/kvmd/user/scripts/S20_[script_name] may run it automatically on firmware updates that would wipe the config.

love seeing glinet adding feature requests. just purchased two more! up to four glkvms! keep it up!

1 Like

minmie,

Can I get the PoE beta build to test with my PoE KVM that includes the updated kernel modules that you prepared for me on the non-poe build?

I am going to write a short doc for my team on what they need to edit and how to edit it for both devices so we can start using both with usb audio.

thank you!

-Mike

It's almost time for us to release the new beta version. You can wait for the new beta firmware.

1 Like

Is it possible to get a rough time frame of the Comet POE Beta firmware that enables the use of USB sound?

Loving GL.iNet’s products

Flint 3

Comet POE

ATX Board

I look forward to using more products and to also refer to them as a usable option where they are a good fit for the said project.

maybe next week

1 Like