DietPi icon indicating copy to clipboard operation
DietPi copied to clipboard

Birdnetgo can't recognize soundcard

Open miloit opened this issue 3 weeks ago • 9 comments

Creating a bug report/issue

  • [x] I have searched the existing open and closed issues

Required Information

  • DietPi version | cat /boot/dietpi/.version
  • Distro version | echo $G_DISTRO_NAME $G_RASPBIAN
  • Kernel version | uname -a
  • SBC model | echo $G_HW_MODEL_NAME or (EG: RPi3)
  • Power supply used | (EG: 5V 1A RAVpower)
  • SD card used | (EG: SanDisk ultra)

Description

BirdNET-Go does not detect my USB audio device (JMTek / CM477-30757), even though Linux correctly detects the device as card 0. The audio device list in the BirdNET-Go web UI is empty, and BirdNET-Go cannot open or initialize any ALSA audio device.

Steps to Reproduce (for bugs)

  1. Connect CM477-30757 USB sound card
  2. Confirm in Linux that ALSA sees the device (arecord -l shows card 0)
  3. Start BirdNET-Go (birdnet-go realtime)
  4. Open web UI → Settings → Audio
  5. Audio device list shows no devices
  6. Audio processing fails to start (no input source)

Expected behavior

BirdNET-Go should detect the available ALSA audio device (hw:0,0) and allow selecting it through the web UI. Audio processing should begin normally.

Actual behavior

  • Audio device selector is empty
  • BirdNET-Go logs show no ALSA devices found
  • BirdNET-Go cannot use hw:0,0

Linux does detect the sound card:

arecord -l
**** Liste der Hardware-Geräte (CAPTURE) ****
Karte 0: CM47730757 [CM477-30757], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

But BirdNET-Go does not.

⚠️ Audio device validation failed: no hardware audio capture devices found

Screenshots

[If applicable, add screenshots to help explain your problem]

Environment

Version Information (build date)

nightly-20251028 Provide the following line from your system:

System Information

  • Device:
    • [ ] Raspberry Pi (specify model, e.g., Raspberry Pi 4 Model B)
    • [x] Other SBC Radxa Zero
    • [ ] PC/Server (please specify)
  • OS: Debian 13.1
  • Additional hardware (if applicable):
    • USB Audio device: JMTek CM477-30757 USB Audio Adapter

miloit avatar Nov 18 '25 06:11 miloit

Hello! I'm not familiar with github and how reporting similar issues should be submitted. I'm having the same issue with an RPi 4 B and 2GB ram.

I'm using a USB LavMicroU for the microphone

layman29049 avatar Nov 19 '25 04:11 layman29049

here is my issue on birdnetgo

https://github.com/tphakala/birdnet-go/issues/1506

root@birdnet:~# systemctl status pipewire.service
Unit pipewire.service could not be found.
root@birdnet:~# systemctl status wireplumber.service
Unit wireplumber.service could not be found.
aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: CM47730757 [CM477-30757], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
cat /proc/asound/card0/pcm0p/sub0/status
closed

miloit avatar Nov 19 '25 08:11 miloit

Thanks for your reports. I recognized the same when testing on VM, was not sure whether it is due to emulated hardware, and we figured that a common use case is to extract the audio stream for a netcam.

But let's have another look into this. I figured that I might have missed audio group membership:

sudo usermod -aG audio birdnet

And then some sandboxing in the systemd unit might need to be lowered, like removing PrivateDevices, but first things first.

MichaIng avatar Nov 19 '25 15:11 MichaIng

@MichaIng should I do sth. now or you doing the changes?

miloit avatar Nov 19 '25 17:11 miloit

adding this

sudo usermod -aG audio birdnet

no changes

miloit avatar Nov 19 '25 17:11 miloit

Fixed with: https://github.com/MichaIng/DietPi/commit/62eced8

@miloit @layman29049 do this your end:

sudo usermod -aG audio birdnet
sudo sed --follow-symlinks -i '/^PrivateDevices=/d' /etc/systemd/system/birdnet.service
sudo systemctl daemon-reload
sudo systemctl restart birdnet

@mtekman FYI, kinda embarrassing when I tested it (without systemd unit sandboxing), I totally forgot about the audio group, which is all that was needed. After adding sandboxing, makes sense that PrivateDevices needs to be removed, since it overmounts /dev with pseudo-only device nodes, masking /dev/snd/.

MichaIng avatar Nov 19 '25 17:11 MichaIng

oh wow I've never noticed that param, good spot! it was working fine with my RTSP stream obviously, but I just assumed it would autodetect any soundcards

mtekman avatar Nov 19 '25 18:11 mtekman

Those commands were successful, thank you!

layman29049 avatar Nov 19 '25 23:11 layman29049

wt., 18 lis 2025, 07:38 użytkownik miloit @.***> napisał:

miloit created an issue (MichaIng/DietPi#7828) https://github.com/MichaIng/DietPi/issues/7828 Creating a bug report/issue

  • I have searched the existing open and closed issues

Required Information

  • DietPi version | cat /boot/dietpi/.version
  • Distro version | echo $G_DISTRO_NAME $G_RASPBIAN
  • Kernel version | uname -a
  • SBC model | echo $G_HW_MODEL_NAME or (EG: RPi3)
  • Power supply used | (EG: 5V 1A RAVpower)
  • SD card used | (EG: SanDisk ultra)

Description

BirdNET-Go does not detect my USB audio device (JMTek / CM477-30757), even though Linux correctly detects the device as card 0. The audio device list in the BirdNET-Go web UI is empty, and BirdNET-Go cannot open or initialize any ALSA audio device. Steps to Reproduce (for bugs)

  1. Connect CM477-30757 USB sound card
  2. Confirm in Linux that ALSA sees the device (arecord -l shows card 0)
  3. Start BirdNET-Go (birdnet-go realtime)
  4. Open web UI → Settings → Audio
  5. Audio device list shows no devices
  6. Audio processing fails to start (no input source)

Expected behavior

BirdNET-Go should detect the available ALSA audio device (hw:0,0) and allow selecting it through the web UI. Audio processing should begin normally. Actual behavior

  • Audio device selector is empty
  • BirdNET-Go logs show no ALSA devices found
  • BirdNET-Go cannot use hw:0,0

Linux does detect the sound card:

arecord -l **** Liste der Hardware-Geräte (CAPTURE) **** Karte 0: CM47730757 [CM477-30757], Gerät 0: USB Audio [USB Audio] Sub-Geräte: 1/1 Sub-Gerät #0: subdevice #0

But BirdNET-Go does not.

⚠️ Audio device validation failed: no hardware audio capture devices found

Screenshots

[If applicable, add screenshots to help explain your problem] Environment Version Information (build date)

nightly-20251028 https://github.com/tphakala/birdnet-go Provide the following line from your system: System Information

  • Device:
    • Raspberry Pi (specify model, e.g., Raspberry Pi 4 Model B)
    • Other SBC Radxa Zero
    • PC/Server (please specify)
  • OS: Debian 13.1
  • Additional hardware (if applicable):
    • USB Audio device: JMTek CM477-30757 USB Audio Adapter

— Reply to this email directly, view it on GitHub https://github.com/MichaIng/DietPi/issues/7828, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALLIDHL6CUABRU5RM2Q7ZA335K5GXAVCNFSM6AAAAACMNLSNQGVHI2DSMVQWIX3LMV43ASLTON2WKOZTGYZTMNBQGYYDMMQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

aiSzzPL avatar Nov 22 '25 11:11 aiSzzPL