USB headset not working
-
RPi0w w/ retropie-4.5-rpi1_zero.img (due to mame4all issues in 4.6/4.7)
Dell 2007FP 1600x1200 LCD via DVI
power and SNES USB controller, wireless USB keyboard / mouse & USB headset via powered USB hub built into monitorHeadset works in Recalbox & Lakka, but I'd prefer to use RetroPie w/ AM (at least for vertical mame4all / Vectrex)
Didn't work out of the box so as recommended on https://retropie.org.uk/docs/Sound-Issues/ I set dtparam=audio=off in config.txt.
pi@retropie:~ $ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=J65
Jabra EVOLVE 65, USB Audio
Default Audio Device
sysdefault:CARD=J65
Jabra EVOLVE 65, USB Audio
Default Audio Device
front:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Front speakers
surround21:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Direct sample mixing device
dsnoop:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Direct sample snooping device
hw:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Direct hardware device without any conversions
plughw:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Hardware device with all software conversionspi@retropie:~ $ amixer scontrols -D default
amixer: Mixer attach default error: No such file or directoryWhen I go into the Audio config from the RetroPie system menu I get lvl0 and ALSA errors. I'm not too far into setup & customization so let me know if starting over would be easier.
-
@ericball said in USB headset not working:
pi@retropie:~ $ amixer scontrols -D default
What does
amixer controls -D default
show up ? Do you have an$HOME/.asoundrc
file ? If yes, try deleting it and then run theamixer
command(s) again. -
@mitu - thanks for the response, unfortunately . . .
No ~pi/.asoundrc
pi@retropie:~ $ ls -al
total 48
drwxr-xr-x 7 pi pi 4096 Jan 16 18:29 .
drwxr-xr-x 3 root root 4096 Apr 8 2019 ..
lrwxrwxrwx 1 pi pi 43 Jan 16 11:23 .atari800.cfg -> /opt/retropie/configs/atari800/atari800.cfg
lrwxrwxrwx 1 pi pi 37 Jan 16 11:22 .attract -> /opt/retropie/configs/all/attractmodepi@retropie:~ $ amixer controls -D default
amixer: Control default open error: No such file or directorywith dtparam=audio=on in config.txt:
pi@retropie:~ $ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
dmix:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct sample mixing device
dmix:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct sample mixing device
dsnoop:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct sample snooping device
dsnoop:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct sample snooping device
hw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct hardware device without any conversions
hw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct hardware device without any conversions
plughw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Hardware device with all software conversions
plughw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Hardware device with all software conversions
default:CARD=J65
Jabra EVOLVE 65, USB Audio
Default Audio Device
sysdefault:CARD=J65
Jabra EVOLVE 65, USB Audio
Default Audio Device
front:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Front speakers
surround21:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Direct sample mixing device
dsnoop:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Direct sample snooping device
hw:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Direct hardware device without any conversions
plughw:CARD=J65,DEV=0
Jabra EVOLVE 65, USB Audio
Hardware device with all software conversionspi@retropie:~ $ amixer scontrols -D default
Simple mixer control 'PCM',0pi@retropie:~ $ amixer controls -D default
numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
numid=5,iface=PCM,name='IEC958 Playback Con Mask'
numid=4,iface=PCM,name='IEC958 Playback Default' -
@ericball said in USB headset not working:
numid=1,iface=MIXER,name='PCM Playback Volume'
Try adding this to the value of 'AudioDevice', by editing
es_settings.cfg
directly, and see if you still get the error. -
I've been doing some additional research and testing and I've identified two challenges.
First, when the internal "sound card" is disabled in /boot/config.txt the ALSA still maps the USB headset to card 1. I think that's what's causing the "lv0" errors and is what @mitu is addressing with the suggested es_settings.cfg change.
But the bigger problem is mame4all-pi uses a 44.1kHz sample rate and the USB headset only supports 48kHz. And while there is a samplerate setting in mame.cfg, rpi/config.cpp restricts it to a maximum of 44.1kHz. (And it looks like a couple of the emulator cores also hardcode 44.1kHz. So while I'm temped to "fix" mame4all-pi, I suspect it would require a lot of effort.)
I suspect both issues can be addressed via the ALSA config files, unfortunately there's no good, authoritative, how-to ALSA docs - just a lot of "this worked for me" of varying currency and applicability.
I will update this post if / when I make any progress.
-
I was able to get my USB headset to work.
First I changed from mame4all-pi on RetroPie 4.5 to lr-mame2000 on RetroPie 4.7.1 because I learned mame4all-pi doesn't have an option to rotate the display and my objective is to play classic vertical arcade games on a vertical (rotated) monitor.
Second I created /etc/modprobe.d/alsa-base.conf (using sudo vi) containing:
options snd_usb_audio index=0
options snd_bcm2835 index=1
options snd slots=snd_usb_audio,snd_bcm2835
(leaving dtparam=audio=on in /boot/config.txt)This reorders the "cards" so the USB headset is card 0, hdmi is card 1 and PWM is card 2. What I found is dtparam=audio=off still configured the USB headset as card 1 for whatever reason and I didn't get audio. After reordering it worked without any other modifications (although ES gives an error about unable to set volume, which is probably just a minor configuration tweak).
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.