How to replace pipewire?
Unfortunately, pipewire can't work with my usb microphone. Replacing pipewire with pulseaudio helped me solve this problem. How can I replace it on this OS?
46 Replies
Pardon, what?
I think you have an XY problem here: replacing the audio engine bazzite is built around is not a solution for an incorrectly detected peripheral. The solution is to determine why your peripheral is not working.
the first step here is
wpctl status
and comparing the output of pactl list cards
and pactl list sources
When I was on Arch Linux, my microphones worked only with pulseaudio. But if this problem can be solved without uninstalling pipewire, I will be happy.
wpctl status input:

pactl list cards output:

and pactl list sources output:


What is the name of your microphone?
If "Fifine" is included anywhere in the name... then it's being detected by pipewire fine.
pipewire has a pulseaudio implementation through pipewire-pulse, which is included in bazzite
It does appear to be using a USB microphone by that description, per pactl list sources and wpctl status.
The fifine headset bit that is the USB microphone
Should be working fine
is it not working?
its correctly selected as default sink
Microphone is detected, but there is no sound. The same problem is with the built-in microphone on the USB headphones. Dmesg shows this:
[ 2602.528665] usb 1-1.1: cannot submit urb 0, error -28: not enough bandwidth
fifine ampligame a6v
[ 2602.528665] usb 1-1.1: cannot submit urb 0, error -28: not enough bandwidthAH! Should have led with that. are you on an external hub, or directly connected to the mainboard? Windows will degrade quality if you load a device on a port that cannot provide enough data (ie: is USB2) or power (IE: is an external hub limited to 0.1A per port.) Linux, by contrast, will simply reject the data in order to prevent damage to the peripheral. this is a USB issue, not a pipewire issue switching to pulse merely disguises the issue rather than solving it
but it wouldn't even show up in pipewire if usb refused the connection
the solution is to move your cable to a USB 3 port directly on your motherboard.
also, there's no way in hell usb2 isn't sufficient for a headset
No, but it would if USB accepted it, but then the device overloaded and disconnected.
unless the headset usb chipset is just cursed
Unfortunately I don't have a USB 3.0 port.
You'd be surprised. If they are on an overcrowded controller, they could very easily be overloading it.
are you sure this is the hub-port the usb headset is connected to?
can you post result of
lsusb
or even better: lsusb -vNo, I am not, but I have seen this exact issue many a time with exactly the same cause and effect as I listed.
sorry i meant to to reply to @Soda
can you post the output of lsusb -v
Full or only about mic?
mic is fine
well
headset
lsusb -v shows a lot of useless information but its the only way to show negotiated speed and stuff
which is useful
Here

Also, it could very easily still be a power issue - if the headphones have, for example, a combined 3 watt output (1.5 watt per ear), that would be 0.6 amp, which could easily overload an unprepared motherboard or especially a hub.
That would still register in dmesg as 'not enough bandwidth'
its negotiated as USB 1.1 yikes
that makes sense
for a mouse that is fine
not a headset
Yeah, that's your problem without a shadow of a doubt.
12Mbps is not enough for audio, period. I'm surprised your audio out is working
ok never mind
my headset is also USB 1.1
Logitech Pro X 2
never had a single issue
If I turn on monitoring on my headphones in alsamixer, I start hearing the built-in microphone. The quality is just terrible.
try a different usb port maybe?
hopefully using a different internal usb hub
so if possible use one far away from the original usb port
I tried all ports on the board and on the case. Also, there is no sound.
From your home directory go to
.config/wireplumber/wireplumber.conf.d/
and create new text file alsa-config.conf
A put this inside the file
monitor.alsa.properties = {
# Use ALSA-Card-Profile devices. They use UCM or the profile
# configuration to configure the device and mixer settings.
# alsa.use-acp = true
# Use UCM instead of profile when available. Can be disabled
# to skip trying to use the UCM profile.
alsa.use-ucm = true
}
More info about it https://wiki.archlinux.org/title/PipeWire#Microphone_is_not_detected_by_PipeWire
And restart pc. Sorry for formating but I am on the phone.If I don't have this directory, should I create it?
which directory you don't see? but yes create it
Doesn't work...
Check if you got more profiles option for your microphone

and it doesn't work with mono input?
Yes
what does
arecord -l
shows? List of CAPTURE Hardware Devices
card 0: PCH [HDA Intel PCH], device 0: ALC883 Analog [ALC883 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC883 Alt Analog [ALC883 Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Microphone [Fifine Microphone], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Headset [fifine Headset], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
run
arecord --duration=5 --format=dat --device=hw:2,0 test-mic.wav
and speak to the microphone, it will record for 5s and play the file. Does this work?
arecord --duration=5 --format=dat --device=hw:2,0 -c 1 test-mic.wav
arecord --duration=5 --format=dat --device=hw:2,0 -c 1 test-mic.wav
arecord: main:850: audio open error: No such file or directory
Is my problem unsolvable?its likely a bug with pipewire on your headset