- Usa kommandoer som pactl info og inxi -A for å sjekke om PipeWire er den aktive serveren.
- Sjekk statusen til tjenester som pipewire, wireplumber og pulseaudio med systemctl --user status.
- Distribusjoner som Debian 12 og Fedora bruker allerede PipeWire som standard, mens det i Ubuntu eller Arch må justeres manuelt.
- Deaktivering og maskering av PulseAudio unngår konflikter når du vil at PipeWire skal håndtere all lyd.
I de senere årene har lyd i GNU/Linux tatt en betydelig vending takket være PipeWire, PulseAudio, JACK og ALSA , og det er ikke alltid åpenbart hvilken daemon som faktisk håndterer systemets lyd. Noen ganger installerer vi en ny distro, alt høres fint ut, men vi er ikke sikre på hvilken server som kjører under eller hvordan vi kan sjekke det på en pålitelig måte.
Hvis du lurer på hvordan du kan finne ut om du bruker PipeWire på Linux , om PulseAudio fortsatt kjører, eller om du har begge kjørende samtidig uten å innse det, vil denne veiledningen gi en grundig forklaring. Du finner praktiske kommandoer, eksempler for Debian, Ubuntu, Arch, Manjaro og Fedora, og hvordan du bytter mellom PulseAudio og PipeWire (og omvendt) uten problemer.
Grunnleggende konsepter: ALSA, PulseAudio, JACK og PipeWire
Før vi begynner å utstede kommandoer, er det viktig å forstå rollen til hvert lag i Linux-lydstakken, fordi mange spørsmål oppstår nettopp ved å blande disse begrepene som om de var de samme.
For det første har vi ALSA, som er en del av Linux-kjernen og håndterer direkte kommunikasjon med lydmaskinvaren . ALSA leverer de nødvendige driverne og firmwaren for at lydkortet eller brikken din skal fungere; det er derfor den ikke erstattes av PipeWire eller noen annen server.
PulseAudio har blitt brukt i årevis som skrivebordslydserver oppå ALSA , vanligvis ansvarlig for å mikse forskjellige applikasjoner, kontrollere globalt volum, administrere utgangsprofiler, Bluetooth, osv. Det har lenge vært standarden i de fleste distribusjoner.
I profesjonelle miljøer eller miljøer med lav latens kommer JACK inn i bildet, en lydserver designet for studioer, musikere og produksjon . JACK er svært optimalisert for svært lav latens og kompleks ruting, men historisk sett har det vært litt mer tungvint å konfigurere for den gjennomsnittlige brukeren.
I tillegg til alt dette kommer PipeWire, en moderne medieserver som forener lyd og video . Den erstatter ikke bare PulseAudio og JACK, men er også designet for å håndtere skjermbilder, kameraer og videostrømmer, med forbedret sikkerhet for Wayland-miljøer og containeriserte applikasjoner som Flatpak.
Hva er egentlig PipeWire, og hvorfor tar så mange distribusjoner i bruk det?
PipeWire startet som en multimediastrømmeserver designet for video og skjermcasting , og utviklet seg også til en kraftig lydserver. Utviklingen er nært knyttet til Red Hat, GNOME, systemd og Flatpak-økosystemene, og Fedora var en av de første distribusjonene som tok det i bruk i stor grad.
Prosjektet startet i utgangspunktet med ideer som PulseVideo, en liten server som distribuerte video fra V4L2-kameraer til diverse applikasjoner ved hjelp av GStreamer, D-Bus og filbeskrivelsesoverføring. Over tid ble det klart at denne tilnærmingen kunne utvides til skjermopptak under Wayland, og legge til sikkerhet og tillatelseskontroll gjennom portaler for isolerte applikasjoner.
For å få plass til lyd måtte PipeWire gjennomgå store omskrivninger for å bli en fullverdig medieserver , i stand til å administrere både videoenheter og lydstrømmer, og la klienter fleksibelt levere og konsumere strømmer.
Et av PipeWires hovedmål er å tilby en lydserver på Linux som oppfyller profesjonelle standarder , reduserer latens, integrerer PulseAudio og JACK på en koherent måte, og sikrer kompatibilitet med Bluetooth, skrivebordsapplikasjoner og musikkproduksjonsverktøy.
Videre er PipeWire tett integrert med GNOME og Wayland for skjermdeling og screencasting . GNOME Shell sender for eksempel en videostrøm til PipeWire når brukeren deler skjermen sin, og denne strømmen rutes til applikasjoner som Firefox, Chrome/Chromium eller OBS Studio gjennom sikre portaler.
PipeWire som erstatning for PulseAudio og JACK
En av nøklene til PipeWires suksess er at den emulerer PulseAudio- og JACK-API-ene , slik at mange applikasjoner kan fortsette å fungere uendret mens de faktisk kobler seg til PipeWire under.
Når det gjelder lyd på skrivebordet, kan PipeWire fungere som en PulseAudio-server takket være pipewire-pulse-komponenten . Applikasjoner skaper illusjonen av å kommunisere med PulseAudio, men datastrømmene ender til slutt opp i PipeWire, og dette gjenspeiles for eksempel i utdataene fra visse diagnostiske kommandoer.
For profesjonelle lydbrukere tilbyr PipeWire JACK-støtte gjennom dedikerte moduler og biblioteker . I noen distribusjoner administreres disse som pakker som pipewire-jack eller gjennom konfigurasjoner som erstatter JACK-bibliotekene under kjøring, rettet mot PipeWire-backend.
Det er viktig å merke seg at PipeWire ikke erstatter ALSA, ettersom ALSA fortsatt er essensielt for kjernen for å få tilgang til maskinvare. PipeWire er avhengig av ALSA for å kommunisere med lydkort, akkurat som PulseAudio og JACK gjorde.
I mange moderne distribusjoner, som nylige Debian 12 Bookworm- eller Fedora-utgivelser, er PipeWire allerede standard lydserver . I andre, som Ubuntu 22.04 LTS eller Linux Mint 21.x, kan du aktivere den i stedet for PulseAudio med noen få ekstra trinn.
Slik finner du ut om du bruker PipeWire: universelle metoder
Den mest direkte måten å sjekke hvilken lydserver du bruker, er å konsultere informasjonen som eksponeres av PulseAudio API-et, enten til en faktisk PulseAudio-daemon eller til erstatningen i PipeWire.
En veldig nyttig kommando er pactl info, som viser data fra lydserverenStart den alltid som en vanlig bruker (uten sudo):
$ pactl info
Se på linjen «Servernavn» i utdataene . Hvis du ser noe som ligner på:
Nombre del servidor: PulseAudio (on PipeWire 0.3.65)
Dette betyr at applikasjonene dine kobler seg til PulseAudio API-et, men serveren som faktisk håndterer lyden er PipeWire , i den angitte versjonen. Du kan også spesifisere denne informasjonen direkte med:
$ pactl info | grep 'Nombre del servidor'
Hvis du i stedet bare ser «PulseAudio» uten å nevne PipeWire , er det normalt å fortsette å bruke ren PulseAudio som hovedlydserver.
En annen veldig praktisk kommando er inxi -Asom tilbyr et lydsammendrag Hvis du har det programmet installert. Se på feltet i lyddelen. Server-1Hvis det indikerer noe sånt som:
Server-1: PipeWire v: 0.3.65 status: active
Det er tydelig at PipeWire er aktiv og konfigurert som primærserver . Hvis PulseAudio nevnes i stedet, vil systemet fortsette å bruke den klassiske serveren.
Sjekk PipeWire- og PulseAudio-tjenestene ved hjelp av systemd
En annen måte å bekrefte hva som kjører på er å sjekke systemd-brukertjenestene , siden både PulseAudio og PipeWire vanligvis kjører i brukerøkten, ikke som root.
For å se statusen til PulseAudio på systemer som administrerer det med systemd, kan du bruke:
$ systemctl --user status pulseaudio
Hvis utdataene viser tjenesten som «aktiv (kjører)» og du ser en prosess /usr/bin/pulseaudioDette betyr at PulseAudio kjører. Det utløses ofte av en socket. pulseaudio.socket, som lanserer tjenesten på forespørsel.
Når det gjelder PipeWire, ville den tilsvarende kommandoen være:
$ systemctl --user status pipewire
Hvis det vises som «aktiv (kjører)» med /usr/bin/pipewire Og dessuten har han sparket den pipewire.socketDu har PipeWire kjørende for brukeren din. Det er vanlig å se dette på systemer som har blitt migrert uten problemer. PipeWire og PulseAudio deaktivert eller maskert.
I noen tilfeller, spesielt etter å ha eksperimentert med pakker og skript, kan det hende du ende opp med at PipeWire og PulseAudio kjører samtidig . For eksempel kan du se begge tjenestene aktive på Arch eller Manjaro hvis erstatningspakkene ikke er riktig konfigurert. Dette kan føre til uvanlig oppførsel, så det er best å bare velge én som primærserver.
Slik sjekker du hvilken server distribusjonen din bruker: praktiske eksempler
Avhengig av hvilken distribusjon du bruker, varierer standardtilstanden betydelig . La oss se på de vanligste tilfellene, slik at du er klar over hva du kan forvente i hver enkelt.
Debian 12 bokorm
I Debian 12 er PipeWire 0.3.65 standard lydserver for nye installasjoner . Installasjonsprogrammet håndterer selv konfigurasjonen, så du trenger ikke å endre noe etter en ren installasjon.
Hvis du har oppgradert fra Debian 11 og noe ikke fungerer som det skal, kan det hende du fortsatt bruker PulseAudio som din aktive server , eller det kan hende at komponenter som Wireplumber mangler . Derfor er det så viktig å først sjekke gjeldende status ved hjelp av kommandoene som er nevnt tidligere.
Som en vanlig bruker , kjør:
$ pactl info | grep 'Nombre del servidor'
Hvis du ser « PulseAudio (on PipeWire 0.3.65) », bruker du en underliggende PipeWire-versjon. For ytterligere finjustering, sjekk også:
$ inxi -A
Hvis PipeWire er oppført som aktiv på Server-1 , er migreringen fullført. Hvis du fortsatt ser PulseAudio, må du installere eller justere de nødvendige pakkene.
Minimumskomponentene for en funksjonell PipeWire på Debian 12 inkluderer pakker som:
- rørledning
- rørtrådbinge
- rørledningspuls
- libpipewire-0.3-moduler
- rørlegger
- libwireplumber-0.4-0
- liblua5.3-0
Den anbefalte måten er å installere metapakken pipewire-audio, som er avhengig av wireplumber, pipewire-pulse, pipewire-alsa og libspa-0.2-bluetooth , og som for øvrig fjerner PulseAudio for å unngå konflikter mellom begge serverne.
Når pakkene er installert, kan du starte og aktivere PipeWire-tjenester fra brukerkontoen din med:
$ systemctl --user --now enable pipewire pipewire-pulse
$ systemctl --user daemon-reload
Og deaktiver PulseAudio helt slik at det ikke forstyrrer:
$ systemctl --user --now disable pulseaudio.service pulseaudio.socket
$ systemctl --user mask pulseaudio
Etter omstart eller ut- og innlogging, kjør på nytt pactl info | grep 'Nombre del servidor' for å bekrefte at serveren nå vises som PulseAudio på PipeWire.
Ubuntu 22.04 LTS og Linux Mint 21.x
I Ubuntu 22.04 LTS og Linux Mint 21.x er PulseAudio fortsatt standard lydserver i mange installasjoner, selv om PipeWire er tilgjengelig og kan aktiveres som en erstatning.
Hvis målet ditt er at systemet skal bruke PipeWire for lyd, må du installere flere pakker relatert til PipeWire og WirePlumber . Start med å oppdatere systemet:
sudo apt update && sudo apt upgrade -y
Installer deretter PipeWire og kompatibilitetsmoduler:
sudo apt install pipewire pipewire-audio-client-libraries pipewire-pulse pipewire-jack libspa-0.2-bluetooth -y
Deretter installerer du WirePlumber, den anbefalte øktbehandleren for PipeWire:
sudo apt install wireplumber -y
Når du har det, kan du Deaktiver PulseAudio og aktiver PipeWire som primærserver. med disse kommandoene (som brukeren din, uten sudo foran systemctl –bruker):
systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user mask pulseaudio
systemctl --user --now enable pipewire pipewire-pulse
Etter å ha startet systemet på nytt med:
sudo reboot
Sjekk tjenestene :
systemctl --user status pipewire
systemctl --user status wireplumber
Hvis begge er aktive, har du allerede PipeWire og WirePlumber håndterer lydenBekreft til slutt med pactl info at servernavnet viser PulseAudio (på PipeWire …).
Arch Linux og Manjaro
I Arch og derivater, som Manjaro, er det ganske enkelt å bli kvitt PulseAudio og PipeWire samtidig hvis du ikke følger en klar plan , spesielt hvis du kom fra en tidligere installasjon med JACK og tilpassede skript.
Hvis du vil bytte til PipeWire på Manjaro og gå bort fra PulseAudio, er en typisk strategi å avinstallere PulseAudio og legge til de riktige PipeWire-pakkene . For eksempel:
sudo pacman -Rdd pulseaudio
-Rdd -alternativet forhindrer draing av avhengigheter som kan ødelegge andre pakker , så bruk det forsiktig. Installer deretter PipeWire og modulene:
sudo pacman -S pipewire pipewire-alsa pipewire-jack pipewire-media-session pipewire-pulse
I noen profesjonelle lydorienterte konfigurasjoner kan det også komme i spill rørledningsjack-dropp fra AUR, som er installert med en hjelper som yay:
yay -S pipewire-jack-dropin
Etter omstart skal du ha PipeWire-håndtering av ALSA, JACK og PulseAudioFor å sjekke, bruk den på nytt. pactl info y systemctl --user status pipewire, og sjekk at PulseAudio ikke fortsatt kjører parallelt.
Hvis du tidligere hadde skript som startet JACK ved innlogging eller egendefinerte regler for å bytte mellom forskjellige lydgrensesnitt, anbefales det å deaktivere disse skriptene for å unngå konflikter , siden PipeWire automatisk kan emulere JACK når en klient trenger det, og bytte lydkort underveis uten ekstra hacking.
Fedora og PipeWires rolle i GNOME
I Fedora kom PipeWire først som en skjermcastingsløsning under Wayland , og tok gradvis også rollen som lydserver, og erstattet PulseAudio og tilrettela skjermdeling i nettlesere og opptaksapplikasjoner.
GNOME Shell genererer en videostrøm som sendes til PipeWire når du deler skjermen din , og den strømmen sendes deretter til apper som Firefox, Chrome/Chromium eller OBS Studio ved hjelp av portal-API-ene. I tillegg samhandler volumkontrollen du ser i GNOME med PipeWire ved hjelp av PulseAudio API-et.
På nåværende Fedora-systemer, hvis du kjører pactl info Du vil se at serveren er PulseAudio over PipeWire., Og systemctl --user status pipewire vil bekrefte at PipeWire er aktiv som en brukertjeneste.
Øktadministratorer: pipewire-media-session og WirePlumber
For at PipeWire skal fungere riktig, trenger den en øktbehandler , som er ansvarlig for å bestemme hvilken enhet som skal brukes, hvordan flyter rutes, hvordan Bluetooth-profiler administreres osv. For øyeblikket finnes det to hovedalternativer.
På den ene siden har vi pipewire-media-session, som tilbyr grunnleggende funksjonalitet , primært fokusert på skjermdeling og lite annet. Den har blitt brukt i tidligere versjoner og i miljøer med enkle krav.
På den annen side har vi WirePlumber, som er den anbefalte øktbehandleren i moderne distribusjoner . WirePlumber tilbyr mer avanserte policyer, bedre Bluetooth-støtte, automatisk profilbytte og mer fleksibel konfigurasjon for komplekse skrivebordsmiljøer.
I Debian 12, for eksempel, erstatter installasjon av wireplumber-pakken den gamle pipewire-media-session , og du må aktivere den som en brukertjeneste med:
$ systemctl --user --now enable wireplumber.service
Når du bruker WirePlumber, er det ikke lenger nødvendig å opprette bestemte tomme filer som var nødvendige i eldre medieøktkonfigurasjoner, for eksempel de som er relatert til JACK-laget; den moderne manageren tar seg av dette mer automatisk.
Tilleggskonfigurasjon: ALSA, JACK og Bluetooth med PipeWire
Selv om PipeWire sentraliserer lyden, er ALSA fortsatt nøkkelen til nivåkontroll.En god praksis er å åpne alsamixer en terminal og sjekk at alle viktige kanaler er aktive og på et rimelig nivå.
I alsamixer vises en dempet kanal med «MM» vises under linjen, mens en aktiv kanal viser «OO»Du kan veksle mellom av og på ved å trykke på tasten MSelv om PipeWire viser volumet på maksimalt, vil du ikke høre noe hvis ALSA har kanalen på minimum eller dempet.
For profesjonelle lydbrukere kan PipeWire fungere som en JACK-server ved å bruke pakker som pipewire-jack eller libspa-0.2-jack . I noen tilfeller brukes kommandoer som følgende:
# cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
# ldconfig
Dette sikrer at JACK-bibliotekene erstattes av PipeWire-biblioteker under kjøring , og peker til katalogen der PipeWire JACK-modulene er plassert, slik at applikasjoner kan fortsette å bruke JACK API, men på PipeWire-motoren.
Innen Bluetooth-arenaen samarbeider PipeWire med BlueZ for å tilby Bluetooth LE Audio-kompatible hodetelefoner når de brukes som en PulseAudio-erstatning . På distribusjoner som Debian er det ofte nødvendig å installere pakker som libspa-0.2-bluetooth og fjerne pulseaudio-module-bluetooth for å unngå feilen "Protokoll ikke tilgjengelig" når du kobler til enheter.
Avansert Bluetooth-konfigurasjon i PipeWire administreres gjennom filer som /usr/share/pipewire/media-session.d/bluez-monitor.conf eller tilsvarende avhengig av øktbehandleren. For å tilpasse kodeker og andre alternativer kopieres denne filen vanligvis til:
~/.config/pipewire/media-session.d/bluez-monitor.conf
og rediger den fra brukerkontoen din , uten root-rettigheter, for å justere detaljer uten å berøre de globale systeminnstillingene.
Slik deaktiverer du PulseAudio og bruker bare PipeWire
En av de vanligste feilene etter migrering til PipeWire er å la PulseAudio være delvis aktiv , slik at den noen ganger starter og noen ganger ikke, eller den aktiveres via socket og konkurrerer med PipeWire. For å unngå dette er det best å deaktivere den helt.
På systemer med brukerdrevet systemd er det vanlig å kjøre:
$ systemctl --user --now disable pulseaudio.service pulseaudio.socket
Og til slutt, hvis PulseAudio fortsetter å aktiveres av en eller annen grunn, masker tjenesten med:
$ systemctl --user mask pulseaudio
I mange tilfeller vil PulseAudio slutte å starte etter omstart, selv ved et uhell, og PipeWire vil ta over kontrollen . Hvis du noen gang vil gå tilbake til den forrige oppførselen, er det bare å avmaskere og aktivere PulseAudio på nytt.
$ systemctl --user unmask pulseaudio
$ systemctl --user --now enable pulseaudio.service pulseaudio.socket
Og hvis du ikke lenger vil bruke PipeWire til lyd, kan du deaktivere de PulseAudio-relaterte tjenestene :
$ systemctl --user --now disable pipewire pipewire-pulse
Lidenskapelig forfatter om verden av bytes og teknologi generelt. Jeg elsker å dele kunnskapen min gjennom å skrive, og det er det jeg skal gjøre i denne bloggen, vise deg alle de mest interessante tingene om dingser, programvare, maskinvare, teknologiske trender og mer. Målet mitt er å hjelpe deg med å navigere i den digitale verden på en enkel og underholdende måte.