Arch Linux - Audio richtig einrichten
Dieser Beitrag richtet sich zwar in erster Linie an Arch Linux, jedoch kann der Inhalt auch auf andere Linux Distributionen zutreffen.
Zuerst installieren wir die notwendigen Pakete. Ich bevorzuge Pipewire. Eine alternative wäre Pulseaudio, dies wird aber nicht so aktiv weiterentwickelt und man sagt, es wäre weniger zuverlässig. Daher beschränken wir uns heute nur auf Pipewire.
sudo pacman -Sy pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
Pipewire wird mittels Systemd User Units nach dem Login ausgeführt. Dabei kommen die beiden Units pipewire.socket
und pipewire-pulse.socket
zum Einsatz. Nach der Installation sollten diese bereits nach einem erneuten login automatisch starten. Die Units pipewire.service
und pipewire-pulse.service
werden bei Bedarf vom Socket-Unit aktiviert - diese sollten also nicht automatisch starten.
Leider kann es vorkommen, dass Pipewire (und auch Pulseaudio) nach dem login nicht immer funktionieren und diese immer händisch nach dem Login neu gestartet werden müssen oder das anderweitig erst mal kein sound da ist. Das ist jedoch bei jedem Rechner anders. Eine voll umfassende Lösung für jeden Rechner gibt es bis heute nicht wirklich, jedoch habe ich einen Workaround gefunden, welcher bei mir immer funktioniert hat. Dafür müssen die Systemd Units bearbeitet und einen Delay eingebaut werden (für 3 Sekunden Delay: ExecStartPre=/bin/sleep 3
). Zuerst müssen die Unit-Files an die richtige Stelle kopiert werden. Man könnte auch die Dateien, ohne zu kopieren, direkt bearbeiten, jedoch werden diese mit jedem Update wieder überschrieben.
sudo cp /usr/lib/systemd/user/pipewire.service /etc/systemd/user/
sudo cp /usr/lib/systemd/user/pipewire-pulse.service /etc/systemd/user/
sudo cp /usr/lib/systemd/user/wireplumber.service /etc/systemd/user/
Danach bearbeiten wir diese und fügen den Delay hinzu (siehe Screenshot).
sudo vim /etc/systemd/user/pipewire.service
sudo vim /etc/systemd/user/pipewire-pulse.service
sudo vim /etc/systemd/user/wireplumber.service
Nach einem reboot sollte aus den Lautsprechern / dem Headset schon Ton kommen, wenn man etwas abspielt. Die Grundkonfiguration wäre somit schon mal beendet. Wer noch tweaken möchte liest weiter.
Nun kopieren wir die relevanten Standard-Config-Files von /usr/share/pipewire/
nach /etc/pipewire/
.
sudo cp /usr/share/pipewire/pipewire.conf /usr/share/pipewire/pipewire-pulse.conf /usr/share/pipewire/minimal.conf /etc/pipewire/
Als Standardwert für die Sample-Rate setzen wir 48000 in /etc/pipewire/pipewire.conf
.
Um einen Virtual Sink zu erhalten (nützlich für Aufnahmen mittels Audacity oder ähnlichem) erweitern wir in /etc/pipewire/pipewire-pulse.conf
den Abschnitt context.modules
.
# VirtualSink
{ name = libpipewire-module-loopback
args = {
audio.position = [ FL FR ]
capture.props = {
media.class = Audio/Sink
node.name = VirtualSink
}
}
}
Und um Suspend on Idle zu deaktivieren gehen wir in /etc/pipewire/minimal.conf
, suchen nach suspend
und setzen jeden Fund auf false
.
node.suspend-on-idle = false
Alles erledigt. Rebooten und fett aufdrehen!
No Comments