You are not logged in.
Recently, my USB headset microphone suddenly stopped working and I haven't been able to figure out the reason why.
I've tested this with another headset I know to be working and the issue still persists, so I don't understand why pulseaudio isn't picking up anything from mics.
I was looking around, and I saw from another post that someone asked for the output of " sudo fuser -v /dev/snd/* ", so I don't know if this will be useful information for helping resolve the issue but I'll list it here:
USER PID ACCESS COMMAND
/dev/snd/controlC0: neko-san 3072 F.... pulseaudio
/dev/snd/controlC1: neko-san 3072 F.... pulseaudio
/dev/snd/controlC2: neko-san 3072 F.... pulseaudio
/dev/snd/controlC3: neko-san 2926 F.... wireplumber
/dev/snd/pcmC0D7p: neko-san 3072 F...m pulseaudio
/dev/snd/pcmC2D0c: neko-san 3072 F...m pulseaudio
/dev/snd/pcmC2D0p: neko-san 3072 F...m pulseaudio
/dev/snd/seq: neko-san 2923 F.... pipewireHopefully someone here knows something...
Offline
You are combining wireplumber and pulseaudio which will generally conflict with eachother. If you want to keep pulseaudio install pipewire-media-session instead. If you want to switch your audio stack to pipewire entirely install wireplumber pipewire-alsa pipewire-pulse (replacing pulseaudio)
Offline
Switching over to pipewire-pulse, the way you mentioned, didn't seem to fix it. :/
USER PID ACCESS COMMAND
/dev/snd/controlC0: neko-san 2923 F.... pipewire
neko-san 2925 F.... wireplumber
/dev/snd/controlC1: neko-san 2925 F.... wireplumber
/dev/snd/controlC2: neko-san 2925 F.... wireplumber
/dev/snd/pcmC0D7p: neko-san 2923 F...m pipewire
/dev/snd/pcmC2D0c: neko-san 2923 F...m pipewire
/dev/snd/pcmC2D0p: neko-san 2923 F...m pipewire
/dev/snd/seq: neko-san 2923 F.... pipewireLast edited by N3k0-san (2022-12-12 23:53:47)
Offline
When did this start happening? Can you record accessing the HW directly with arecord? Starts to sound like a kernel regression or so.
Offline
It just started happening yesterday and I haven't changed/updated my kernel either; all was fine until this suddenly started happening
Also, I take it that arecord has something to do with alsamixer? (https://wiki.archlinux.org/title/Advanc … hone_input)
I've never messed with configuring ALSA before, at all, and I'm not exactly an experienced audio guy to really understand how to properly use it; especially in this scenario, so...
EDIT:
I made an attempt at it (based on the example from the wiki), but I'm not sure why it thinks the mic is "busy" somehow? Or maybe I'm just misinterpreting something...
neko-san@ARCH ~> pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 331
Tile Size: 65472
User Name: neko-san
Host Name: ARCH
Server Name: PulseAudio (on PipeWire 0.3.61)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo
Default Source: alsa_input.usb-GeneralPlus_USB_Audio_Device-00.mono-fallback
Cookie: 8030:5bcf
neko-san@ARCH ~> arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Generic [HD-Audio Generic], device 0: ALC897 Analog [ALC897 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 2: ALC897 Alt Analog [ALC897 Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
neko-san@ARCH ~> arecord --duration=5 --format=dat --device=hw:2,0 test-mic.wav; aplay test-mic.wav
arecord: main:831: audio open error: Device or resource busy
test-mic.wav: No such file or directoryThe only thing I recall actually changing at all recently though was me adding changes from a "mkinitcpio.conf.pacnew" but, even then, I reverted my changes back to what my mknitcpio.conf was before and it made no difference;
so, I don't know what's responsible for what's going on...
Last edited by N3k0-san (2022-12-13 06:17:53)
Offline
The device is busy if it's still in active use by something pipewire/pulseaudio and you'd either need to make sure you aren't actively recording anything already (e.g. pavucontrol or some other testing tools) FWIW what do you get from
pactl list sources
pactl list source-outputs?
If you want to stop pipewire to test arecord you'd do a
systemctl --user mask pipewire wireplumber pipewire-pulse --now #If you're on wayland this might crash the session depending on how things are set up, so be wary
arecord --duration=5 --format=dat --device=hw:2,0 test-mic.wav; aplay test-mic.wav
systemctl --user unmask pipewire wireplumber pipewire-pulse --now Offline
I run Xorg because I'm on Nvidia so it should be fine if I do that, I'd think...
I couldn't tell if actually did anything with the mic though
Terminal output:
neko-san@ARCH ~> pactl list sources
Source #304
State: IDLE
Name: alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo.monitor
Description: Monitor of USB Audio Device Analog Stereo
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "2"
alsa.card_name = "USB Audio Device"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "GeneralPlus USB Audio Device at usb-0000:0d:00.3-3, full speed"
alsa.name = "USB Audio"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "GeneralPlus USB Audio Device at usb-0000:0d:00.3-3, full speed"
api.alsa.card.name = "USB Audio Device"
api.alsa.path = "front:2"
api.alsa.pcm.card = "2"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "3"
device.api = "alsa"
device.class = "monitor"
device.id = "41"
device.profile.description = "Analog Stereo"
device.profile.name = "analog-stereo"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "USB Audio Device"
node.name = "alsa_output.usb-GeneralPlus_USB_Audio_Device-00.analog-stereo"
node.nick = "USB Audio Device"
node.pause-on-idle = "false"
object.path = "alsa:pcm:2:front:2:playback"
priority.driver = "1009"
priority.session = "1009"
factory.id = "18"
clock.quantum-limit = "8192"
client.id = "34"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "84"
object.serial = "304"
node.max-latency = "16384/48000"
api.alsa.period-size = "256"
api.alsa.period-num = "128"
api.alsa.headroom = "256"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "2"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio2"
device.bus = "usb"
device.bus-id = "usb-GeneralPlus_USB_Audio_Device-00"
device.bus_path = "pci-0000:0d:00.3-usb-0:3:1.0"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-usb"
device.name = "alsa_card.usb-GeneralPlus_USB_Audio_Device-00"
device.nick = "USB Audio Device"
device.plugged.usec = "7029458"
device.product.id = "0x2008"
device.product.name = "USB Audio Device"
device.serial = "GeneralPlus_USB_Audio_Device"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:0d:00.3/usb5/5-3/5-3:1.0/sound/card2"
device.vendor.id = "0x1b3f"
device.vendor.name = "Generalplus Technology Inc."
device.string = "2"
Formats:
pcm
Source #305
State: SUSPENDED
Name: alsa_input.usb-GeneralPlus_USB_Audio_Device-00.mono-fallback
Description: USB Audio Device Mono
Driver: PipeWire
Sample Specification: s16le 1ch 48000Hz
Channel Map: mono
Owner Module: 4294967295
Mute: no
Volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 20724 / 32% / -30.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "2"
alsa.card_name = "USB Audio Device"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "GeneralPlus USB Audio Device at usb-0000:0d:00.3-3, full speed"
alsa.name = "USB Audio"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "GeneralPlus USB Audio Device at usb-0000:0d:00.3-3, full speed"
api.alsa.card.name = "USB Audio Device"
api.alsa.path = "hw:2"
api.alsa.pcm.card = "2"
api.alsa.pcm.stream = "capture"
audio.channels = "1"
audio.position = "MONO"
card.profile.device = "2"
device.api = "alsa"
device.class = "sound"
device.id = "41"
device.profile.description = "Mono"
device.profile.name = "mono-fallback"
device.routes = "1"
factory.name = "api.alsa.pcm.source"
media.class = "Audio/Source"
device.description = "USB Audio Device"
node.name = "alsa_input.usb-GeneralPlus_USB_Audio_Device-00.mono-fallback"
node.nick = "USB Audio Device"
node.pause-on-idle = "false"
object.path = "alsa:pcm:2:hw:2:capture"
priority.driver = "2000"
priority.session = "2000"
factory.id = "18"
clock.quantum-limit = "8192"
client.id = "34"
node.driver = "true"
factory.mode = "split"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "75"
object.serial = "305"
node.max-latency = "16384/48000"
api.alsa.period-size = "512"
api.alsa.period-num = "64"
api.alsa.headroom = "512"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "2"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio2"
device.bus = "usb"
device.bus-id = "usb-GeneralPlus_USB_Audio_Device-00"
device.bus_path = "pci-0000:0d:00.3-usb-0:3:1.0"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-usb"
device.name = "alsa_card.usb-GeneralPlus_USB_Audio_Device-00"
device.nick = "USB Audio Device"
device.plugged.usec = "7029458"
device.product.id = "0x2008"
device.product.name = "USB Audio Device"
device.serial = "GeneralPlus_USB_Audio_Device"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:0d:00.3/usb5/5-3/5-3:1.0/sound/card2"
device.vendor.id = "0x1b3f"
device.vendor.name = "Generalplus Technology Inc."
device.string = "2"
Ports:
analog-input-mic: Microphone (type: Mic, priority: 8700, availability unknown)
Active Port: analog-input-mic
Formats:
pcm
Source #437
State: SUSPENDED
Name: alsa_output.pci-0000_0b_00.1.hdmi-stereo-extra1.monitor
Description: Monitor of TU102 High Definition Audio Controller Digital Stereo (HDMI 2)
Driver: PipeWire
Sample Specification: s32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: alsa_output.pci-0000_0b_00.1.hdmi-stereo-extra1
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "HDA NVidia"
alsa.class = "generic"
alsa.device = "7"
alsa.driver_name = "snd_hda_intel"
alsa.id = "HDMI 1"
alsa.long_card_name = "HDA NVidia at 0xfc080000 irq 99"
alsa.name = "FireTV"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "HDA NVidia at 0xfc080000 irq 99"
api.alsa.card.name = "HDA NVidia"
api.alsa.path = "hdmi:0,1"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "10"
device.api = "alsa"
device.class = "monitor"
device.id = "40"
device.profile.description = "Digital Stereo (HDMI 2)"
device.profile.name = "hdmi-stereo-extra1"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "TU102 High Definition Audio Controller"
node.name = "alsa_output.pci-0000_0b_00.1.hdmi-stereo-extra1"
node.nick = "FireTV"
node.pause-on-idle = "false"
object.path = "alsa:pcm:0:hdmi:0,1:playback"
priority.driver = "632"
priority.session = "632"
factory.id = "18"
clock.quantum-limit = "8192"
client.id = "34"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "110"
object.serial = "437"
node.max-latency = "16384/48000"
api.alsa.period-size = "1024"
api.alsa.period-num = "32"
api.alsa.headroom = "0"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
device.bus = "pci"
device.bus_path = "pci-0000:0b:00.1"
device.enum.api = "udev"
device.icon_name = "audio-card-analog-pci"
device.name = "alsa_card.pci-0000_0b_00.1"
device.nick = "HDA NVidia"
device.plugged.usec = "6334225"
device.product.id = "0x10f7"
device.product.name = "TU102 High Definition Audio Controller"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:0b:00.1/sound/card0"
device.vendor.id = "0x10de"
device.vendor.name = "NVIDIA Corporation"
device.string = "0"
Formats:
pcm
neko-san@ARCH ~> pactl list sources-outputs # returns nothing
neko-san@ARCH ~> systemctl --user mask pipewire wireplumber pipewire-pulse --now
arecord --duration=5 --format=dat --device=hw:2,0 test-mic.wav; aplay test-mic.wav
systemctl --user unmask pipewire wireplumber pipewire-pulse --now
Created symlink /home/neko-san/.config/systemd/user/pipewire.service → /dev/null.
Created symlink /home/neko-san/.config/systemd/user/wireplumber.service → /dev/null.
Created symlink /home/neko-san/.config/systemd/user/pipewire-pulse.service → /dev/null.
Recording WAVE 'test-mic.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
arecord: set_params:1358: Channels count non available
aplay: main:831: audio open error: Host is down
Removed "/home/neko-san/.config/systemd/user/pipewire.service".
Removed "/home/neko-san/.config/systemd/user/wireplumber.service".
Removed "/home/neko-san/.config/systemd/user/pipewire-pulse.service".
neko-san@ARCH ~> # Didn't seem to do anything? I have no idea; the plasma-pa applet doesn't see audio devices now eitherOffline
Things definitely worked like they should but you need to record a mono stream, try adding -c1 to the arecord invocation. or rather use
arecord -f S16_LE -c1 -r48000 test.wavinstead of specifying the dat shortcut.
Last edited by V1del (2022-12-13 11:17:46)
Offline
neko-san@ARCH ~> systemctl --user mask pipewire wireplumber pipewire-pulse --now
arecord -f S16_LE -c1 -r48000 test.wav; aplay test-mic.wav
systemctl --user unmask pipewire wireplumber pipewire-pulse --now
Created symlink /home/neko-san/.config/systemd/user/pipewire.service → /dev/null.
Created symlink /home/neko-san/.config/systemd/user/wireplumber.service → /dev/null.
Created symlink /home/neko-san/.config/systemd/user/pipewire-pulse.service → /dev/null.
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono # I did this for about 1 or 2 minutes
^CAborted by signal Interrupt...
arecord: pcm_read:2221: read error: Interrupted system call
aplay: main:831: audio open error: Host is down
Removed "/home/neko-san/.config/systemd/user/pipewire.service".
Removed "/home/neko-san/.config/systemd/user/wireplumber.service".
Removed "/home/neko-san/.config/systemd/user/pipewire-pulse.service".Offline
did test.wav contain audio? FWIW the host is down is likely due to pipewire being attempted as the default, either run that after pipewire started again or explicitly mention that afterwards.
Last edited by V1del (2022-12-14 08:26:44)
Offline
test.wav didn't seem to contain audio(??); it was about 44 KBs and didn't make any sound when I tried to play it back through VLC
Offline
Obviously you did try speaking/recording? If that doesn't give you audio you have a low level kernel or HW issue, how sure are you you do not have a mute button on the mic itself that is not propagated to the OS?
Offline
Obviously you did try speaking/recording?
Yes
If that doesn't give you audio you have a low level kernel or HW issue
I hadn't touched my kernel and it happens with every microphone I use now, so... I don't know.
I do compile my own kernel (mine is 6.0.8), although, the kernel configuration for that upstream has pretty much everything set to sane defaults; additionally...
I did touch the kernel config but I didn't touch audio at all because I know I have no audio knowledge at all and i didn't want to run into audio issues
how sure are you you do not have a mute button on the mic itself that is not propagated to the OS?
I'm definitely sure, I already checked for that and this isn't the case.
Last edited by N3k0-san (2022-12-14 09:06:54)
Offline
Something I notice though we forgot to pass -Dhw:2,0 on the second arecord invocation sorry about that, if you retry with that set as well what's the result?
Offline
This time audio went though but... it didn't play back anything I spoke, it sounded more like static?
Offline
I have no idea why but it suddenly started working today.
I didn't even run an update, so I don't understand why it suddenly decided to start working. ![]()
Offline
Not fully plugged in? Underpowered? Is it on a hub? Potential a loose connection in the HW itself?
Offline
It was fully plugged in at the USB port on the motherboard, I didn't even change the port either; although, you might be right about the HW itself having a loose connection because it has a spot in the middle where it has an additional jack that extends connects to another wire it came with tonextend the length.
My kid brother accidentally disconnected it yesterday, so we plugged it back in, and I noticed later that's when the mic started working again
But that still baffles me because I did use a completely different headset that I know to be functional, prior to this, and it was still an issue...
Thankfully, it works but I still don't quite understand what specifically changed to cause the issue to stop
Offline