LukeSmithxyz / voidrice

My dotfiles (deployed by LARBS)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pipewire wont recognize audio cards, only a dummy output

narukeh opened this issue · comments

I saw your video installing an encrypted artix, so i thought i should do it to. I still use Arch, since i don't care about systemd.
i installed it the manual arch-way (not the new python script). I did not use larbs, but in end effect did everything the same (the commands in larbs.sh and voidrice).
(Installed on another laptop a month ago and did not have this issue (unencrypted tho))

Cant select the default card because my sound cards wont show in pulsemixer, so i cant play any audio. Only a dummy output shows up.

Since pipewire is started just like any other program in xprofile, i just pkilled it and started it again, but it gave me a bunch of errors.

$ sudo pkill pipewire
sudo pkill pipewire
sudo pkill pipewire-pulse
sudo pkill pipewire-pulse
setsid -f pipewire
[sudo] password for hegashi:
$ [W][02902.505500] mod.rt       | [     module-rt.c:  274 pw_rtkit_check_xdg_portal()] Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
[W][02902.505527] mod.rt       | [     module-rt.c: 1035 pipewire__module_init()] found session bus but no portal
[W][02902.515561] mod.rt       | [     module-rt.c:  274 pw_rtkit_check_xdg_portal()] Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
[W][02902.515602] mod.rt       | [     module-rt.c: 1035 pipewire__module_init()] found session bus but no portal
M 09:46:28.373247             mod.rt ../pipewire/src/modules/module-rt.c:274:pw_rtkit_check_xdg_portal: Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
M 09:46:28.373302             mod.rt ../pipewire/src/modules/module-rt.c:1035:pipewire__module_init: found session bus but no portal
[W][02902.531239] mod.protocol-pulse | [        server.c:  610 start_unix_server()] server 0x55e703946930: socket '/run/user/1000/pulse/native' is in use
[W][02902.531292] mod.protocol-pulse | [        server.c: 1042 servers_create_and_start()] pulse-server 0x55e703946180: failed to start server on 'unix:/run/user/1000/pulse/native': Address already in use
[E][02902.531302] mod.protocol-pulse | [  pulse-server.c: 5642 pw_protocol_pulse_new()] 0x55e703946180: no servers could be started: Address already in use
[E][02902.531355] pw.conf      | [          conf.c:  594 load_module()] 0x55e7038f67d0: could not load mandatory module "libpipewire-module-protocol-pulse": Address already in use
[E][02902.531488] default      | [      pipewire.c:  125 main()] failed to create context: Address already in use
M 09:46:29.777838        wireplumber ../wireplumber/src/main.c:364:on_disconnected: disconnected from pipewire

My guess: it wants to start pipewire on this "adress" unix:/run/user/1000/pulse/native, but it cant since its already in use, but how is it in use since i killed it? I just dont get it. (In the past very rarely pipewire would crash, and thats how i used to restart it, then it always worked.) Pulsemixer wont start after i pkill/setsid pipewire, i have to relogin using sudo pkill -u $USER

I have these *pipe* programs installed:

$ diff -usa <(p -Qqe | grep -E 'pipe|pulse') <(p -Qqs 'pipe|pulse')
--- /proc/self/fd/11    2023-03-05 09:57:45.233408729 +0100
+++ /proc/self/fd/12    2023-03-05 09:57:45.233408729 +0100
@@ -1,4 +1,13 @@
+libcanberra
+libpipeline
+libpipewire
+libpulse
+libwireplumber
+pipewire
 pipewire-alsa
+pipewire-audio
 pipewire-jack
 pipewire-pulse
+pulseaudio-qt
 pulsemixer
+wireplumber

Then i thought maybe i need more firmware (even tho i never needed an additional package for audio to work) so i installed sof-firmware, but no result.
Then i copied the /usr/share/pipewire/pipewire.conf template to ~cf/pipewire/pipewire.conf, and changing only 2 relevant lines at the end

$ diff -usa /usr/share/pipewire/pipewire.conf pipewire.conf
--- /usr/share/pipewire/pipewire.conf   2023-02-20 18:44:50.000000000 +0100
+++ pipewire.conf       2023-03-05 08:34:35.823358953 +0100
@@ -279,12 +279,12 @@
     # but it is better to start it as a systemd service.
     # Run the session manager with -h for options.
     #
-    #{ path = "/usr/bin/pipewire-media-session" args = "" }
+    { path = "/usr/bin/wireplumber" args = "" }
     #
     # You can optionally start the pulseaudio-server here as well
     # but it is better to start it as a systemd service.
     # It can be interesting to start another daemon here that listens
     # on another address with the -a option (eg. -a tcp:4713).
     #
-    #{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
+    { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
 ]

but no result, still getting only a dummy output.

Then i commented pipewire in xprofile, and did systemctl --user enable pipewire-pulse.service, logout/login, still no result.

Then i formated my laptop, installed Arch again, and it is still the same thing, just a dummy output. My guess, there was an update somewhere which requires modifying a config somewhere.

All hail alsa-firmware and/or alsa-utils
(i guess in the past they have been pulled as dependencies, so i never had to to extra stuff)