USB audio in proxmox

Hi everyone,

I’ve got myself in too deep and this problem is starting to go over my head. I’m trying to set up a Home Assistant “Alexa-like” assistant with voice input/output on a Proxmox server, but I’m hitting a wall with audio.

System setup:

Home Assistant OS running in a Proxmox VM (VMID 100, 4GB RAM, 32GB disk)

Proxmox Host: Debian 12 / Linux kernel 6.14.8-2-pve

USB devices passed through:

USB microphone: C-Media PnP Sound Device

USB audio dongle: C-Media USB Audio Device (08bb:2902)

Steps I’ve tried:

USB passthrough in Proxmox: added the dongle to VM hardware, verified with qm config 100.

Inside HA OS terminal:

lsusb
shows-
Bus 002 Device 003: ID 08bb:2902 C-Media Electronics Inc. USB PnP Sound Device

Check the ALSA device nodes:
ls -l /dev/snd/by-id/
lrwxrwxrwx 1 root root 12 Nov 1 13:11 usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00 → …/controlC1
ls /dev/snd/by-id/

Result:

usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00

The device path exists, but aplay -l shows:

aplay: device_list: no soundcards found…

I tried Squeezelite add-on inside HA as i’ve found this suggested in other posts, it sees no ALSA audio device.

Problem:

The USB dongle shows up in /dev/snd/by-id/ but Home Assistant does not recognize it as a sound card.

No TTS or playback works via the USB dongle.

Request:

Has anyone successfully used a USB audio dongle in Home Assistant inside a Proxmox VM? Is this a limitation of HAOS do I need HA supervised to do this?

Thanks in advance for any advice!

First supervised is unsupported for end user deployment. Take on that mantle of you wish. But I’m not sure any of the builds have sound drivers in them. You don’t usually hook up audio directly to the box. You’re usually commanding something somewhere else. Like a VPE or the like… Did you determine or would work without prox first? Because of that won’t you’re hosed before you start.

Thanks for the reply,
No I really don’t want to take that on if i can help it :sweat_smile:
I thought doing it in ha/proxmox would be the easist way as where the server is, is where i want the smart speaker, I made the mistake of asking chat GPT if it can be done which of cousre it said yes, in hindsight was a terrible idea :man_facepalming:
So can i do this from the same device by creating another vm in proxmox and running Ubuntu or somthing like that?

Do you want the good news or the bad.

I short with enough hacking you might be able to but it won’t be easy nor stable.

You’re better off going raw ha on the server putting it in a closet and finding an appropriate satellite. Else you’ll be fighting BOTH voice assistant AND hacky configuration. So it’s very much a… You really don’t want to…

For everyone else… HAOS is a server OS plan on putting it in a closet - not actively using it in place.

Thanks for the advice much appreciated, guess I’ll buy another PI instead then :slight_smile:

If you’re going for that try a voice pe first.

yeah that looks tempting, but ideally I would like to replace all of my alexa speakers and from what i can see it can’t stream audio. I’ve already set up snapcast on one of them as proff of concept,so i’m hoping to add a voice assistant to that and then dot them all around the house.

It absolutely streams audio pair it with music assistant. I have six of them. It’s the easy button. The rest you’ll be fighting the tech.

oh great thanks! Thats going to cost about the same as pis with hats ect then, I’ll give it a try :grinning:

To the original poster:

I am in the same boat, I have an USB DAC, passed through to a VM running HA. I can get tts and sound output but it is garbled. Trying to figure this out, I found your post with a very similar problem.

I think it is weird that it says no soundcard found but ha audio info actually gives a positive looking output.

Btw. I had this perfectly working previously when HA was on an RPI5 with the DAC directly connected vs now, after moving from RPI to a KVM with the USB DAC passed through.

➜  ~ aplay -l     
aplay: device_list:279: no soundcards found...
➜  ~ ha audio info
audio:
  application:
  - addon: 2a018ee8_squeezelite
    index: 0
    mute: false
    name: SqueezeLite
    stream_index: 0
    stream_type: output
    volume: 0
  card:
  - driver: module-alsa-card.c
    index: 0
    name: alsa_card.usb-SMSL_SMSL_USB_AUDIO-00
    profiles:
    - active: true
      description: Analog Stereo Output
      name: output:analog-stereo
    - active: false
      description: Digital Stereo (IEC958) Output
      name: output:iec958-stereo
    - active: false
      description: "Off"
      name: "off"
  input: []
  output:
  - applications:
    - addon: 2a018ee8_squeezelite
      index: 0
      mute: false
      name: SqueezeLite
      stream_index: 0
      stream_type: output
      volume: 0
    card: 0
    default: true
    description: SMSL USB AUDIO Analog Stereo
    index: 0
    mute: false
    name: alsa_output.usb-SMSL_SMSL_USB_AUDIO-00.analog-stereo
    volume: 1
host: 172.30.32.4
update_available: false
version: 2025.08.0
version_latest: 2025.08.0

On the other hand I see stuff like this:

ha audio logs
[13:06:51] INFO: Adjust ALSA mixer settings for /dev/snd/controlC0
[13:06:53] INFO: Adjust ALSA mixer settings for /dev/snd/controlC1
s6-rc: info: service alsa-init successfully started
s6-rc: info: service pulseaudio: starting
W: [pulseaudio] main.c: Running in system mode, but --disallow-module-loading not set.
W: [pulseaudio] main.c: Home directory of user 'root' is not '/var/run/pulse', ignoring.
W: [pulseaudio] caps.c: Normally all extra capabilities would be dropped now, but that's impossible because PulseAudio was built without capabilities support.
W: [pulseaudio] main.c: OK, so you are running PA in system mode. Please make sure that you actually do want to do that.
W: [pulseaudio] main.c: Please read http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/ for an explanation why system mode is usually a bad idea.
W: [pulseaudio] module-udev-detect.c: Failed to open /proc/asound/card0: No such file or directory
E: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
W: [pulseaudio] module-udev-detect.c: Failed to open /proc/asound/card1: No such file or directory
N: [pulseaudio] alsa-util.c: Disabling timer-based scheduling because running inside a VM.
E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.bluez': unit failed
s6-rc: info: service pulseaudio successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
E: [alsa-sink-USB Audio] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write.
E: [alsa-sink-USB Audio] alsa-sink.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers.
E: [alsa-sink-USB Audio] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.