Mikrofonen fungerar inte i Linux: Så här testar och åtgärdar du problemet

Microphone-Test.org ·

Mikrofonen fungerar inte i Linux: Så här testar och åtgärdar du problemet

På Linux är en mikrofon som inte fungerar oftast bara tystad snarare än trasig. ALSA-inspelningskanalen är inaktiverad i många distributioner, vilket innebär att kapseln fungerar medan drivrutinen inte vidarebefordrar något. En felaktig standardkälla eller en app som är begränsad till en sandlåda förklarar de flesta av de återstående fallen. Signalen går genom en stapel av lager: kärndrivrutinen ALSA, sedan PipeWire eller PulseAudio, och därefter själva applikationen. Signalen kan tappas bort i vilket lager som helst, och resultatet blir alltid samma tystnad. Rätt lösning beror helt på vilket lager som blockerar signalen. Den här guiden identifierar det lagret och åtgärdar sedan problemet med både grafiska och terminalbaserade steg. Börja med ett snabbt mikrofontest eller skrivbordets inmatningsmätare för att kontrollera hårdvaran. Ta sedan reda på om din distribution kör PipeWire eller PulseAudio, eftersom kommandona nedan varierar beroende på svaret.

Linux-mikrofonen fungerar inte: Checklista för snabb åtgärd

Testa med vårt mikrofontest eller ljudnivåmätaren på skrivbordet.
Slå på ljudet för Capture-kanalen i alsamixer och höj dess nivå.
Ställ in rätt ingång i pavucontrol (eller wpctl på PipeWire).
Kontrollera att din användare ingår i gruppen audio.
Starta om ljudet: systemctl --user restart pipewire pipewire-pulse eller pulseaudio -k.

Testa din Linux-mikrofon på mindre än en minut

Kontrollera att mikrofonen fångar upp ljud innan du ändrar några inställningar. Lösningen på ”ingen signal” skiljer sig helt från lösningen på ”signal, men ingen kan höra mig”. En live-ingångsmätare ger det snabbaste och mest pålitliga svaret, eftersom den reagerar på din röst i realtid. En loop där du spelar in och sedan spelar upp kan dölja fel i valet av enhet, så börja med en mätare. Öppna vårt mikrofontest online och tillåt åtkomst när webbläsaren frågar. Tala nu som vanligt. Om nivåindikatorn rör sig när du talar fungerar mikrofonen, drivrutinen och ljudservern som de ska. Problemet ligger då högre upp i kedjan, i routningen eller i en specifik app. Om mätaren förblir oförändrad är signalen blockerad eller så har fel ingång valts.

Testa din mikrofon →

Ditt skrivbord visar också mikrofonen inbyggt i systemet. På GNOME öppnar du Inställningar › Ljud › Ingång och väljer din enhet; ingångsnivåindikatorn ska röra sig när du talar. På KDE Plasma öppnar du Systeminställningar › Ljud och tittar på mätaren bredvid inspelningsenheten. Anta att indikatorn rör sig här men att en app fortfarande inte hör något. Då har du bevisat att felet är appspecifikt snarare än systemomfattande, så hoppa vidare till avsnitten om routning och behörigheter nedan. Tabellen visar de grafiska platser där ditt skrivbord visar mikrofonen, och vad avläsningen på var och en av dem bekräftar.

Var du ska tittaSökvägVad det bekräftar
GNOME:s ingångsmätareInställningar › Ljud › IngångOm systemet tar emot en signal och från vilken enhet
KDE:s ljudpanelSysteminställningar › LjudDen aktiva inspelningsenheten och dess routing per app
Volymkontrollpavucontrol › IngångsenheterLjudavstängning, förstärkning och vald hårdvaruport
Fliken Inspelningpavucontrol › InspelningVilken app spelar in från vilken enhet, live

Lär känna din ljudserver innan du felsöker

Ljudet i Linux är uppbyggt i lager, och rätt lösning beror på vilket lager som är felaktigt. I grunden ligger ALSA, drivrutinen på kärnnivå som kommunicerar med ljudkortet. Ovanpå den körs en ljudserver som mixar strömmar och dirigerar dem mellan appar. Två servrar dominerar. Moderna distributioner levereras med PipeWire. Fedora var först med att införa den, och Ubuntu har använt den som standard sedan version 22.10. PipeWire kör ett kompatibilitetslager som kallas pipewire-pulse, så att äldre verktyg fortfarande fungerar som vanligt. Äldre utgåvor och vissa konservativa installationer kör fortfarande PulseAudio. Båda servrarna ligger ovanpå ALSA, och en tystad kanal i ALSA kommer att tysta vilken som helst av dem.

Ta reda på vilken server du använder innan du lägger tid på fel verktyg. Kör wpctl status i en terminal. En ren lista över sänkor och källor betyder att PipeWire är aktiv. Om kommandot saknas befinner du dig troligen på PulseAudio; bekräfta med pactl info. Detta är viktigt eftersom kommandona skiljer sig åt. PipeWire drivs med wpctl, medan PulseAudio använder pactl. Det grafiska verktyget pavucontrol fungerar med båda, eftersom pipewire-pulse hanterar samma anrop. Tabellen nedan sammanfattar de viktigaste verktygen och vad de gör.

VerktygTypVad det gör
pavucontrolGrafisktSlår på ljudet för ingångar, ställer in förstärkning, väljer port och visar inspelningsvägar per app
alsamixerTerminal (TUI)Styr det råa ALSA-kortet: stänger av inspelning, aktiverar inspelning och justerar hårdvaruförstärkningen
arecord / aplayTerminalVisar en lista över inspelningsenheter och spelar in eller spelar upp en fil direkt via ALSA
wpctlTerminalVisar en lista över enheter i PipeWire, ställer in standardkällan och stänger av eller slår på ljudet

Varför en fungerande mikrofon fortfarande blir tyst i Linux

En tystad inspelningskanal i ALSA är den främsta orsaken

ALSA styr varje inspelningskanal separat, och en av dem kan stängas av under alla andra. När det händer visar mätaren på skrivbordet noll oavsett hur högt du skruvar upp programvarans volym. Just detta tillstånd orsakar fler ”trasiga” mikrofoner på Linux än något hårdvarufel. Fällan är att det ofta är osynligt från den grafiska mixern. Lösningen finns i alsamixer, en terminalmixer som ger åtkomst till ljudkortet i råformat. Starta programmet och tryck sedan på F6 för att välja ditt ljudkort. Tryck på F4 för att växla till inspelningsvyn. Markera kanalen Capture med piltangenterna. Om det står MM under stapeln är den tystad; tryck på M för att slå på ljudet igen. En inspelningskanal måste också vara aktiverad. Tryck på Space på det markerade objektet tills det står CAPTURE i rött, höj sedan nivån med uppåtpilen. Många bärbara datorer har också ett reglage för Internal Mic Boost här, som är inställd på noll från fabriken. Om du höjer den återfår du en mikrofon som verkade död.

Felaktig standardkälla och felaktig routning

Ljudservern väljer en standardkälla, och den väljer inte alltid den du vill ha. Anslut ett USB-headset, en webbkamera med inbyggd mikrofon eller en HDMI-inspelningsenhet, så kan servern omedelbart välja den som standard. Routingfel kan också dölja sig i enskilda appar. PipeWire och PulseAudio låter varje program spela in från en annan enhet, inställd per ström. En app kan därför vara riktad mot en källa som inte producerar något, medan systemets standardkälla fungerar. Fliken Inspelning i pavucontrol visar detta direkt och listar alla appar som för närvarande spelar in samt vilken enhet de använder. Misstänk först routningsfel när mikrofonen fungerar i ett program men inte i ett annat. Bluetooth-headset komplicerar saken ytterligare. Ett headset med den högkvalitativa A2DP-profilen har ingen mikrofon alls. Systemet måste växla till profilen HSP/HFP innan bommikrofonen blir tillgänglig, och ljudkvaliteten försämras när detta sker.

Behörigheter, grupper och sandboxade appar

Åtkomstkontrollen blockerar mikrofonen utan att visa något felmeddelande. Tidigare måste en användare tillhöra gruppen audio för att kunna nå ljudenheterna. De flesta moderna skrivbordsmiljöer hanterar detta via sessionen, men en minimalinstallation eller serverinstallation kan fortfarande kräva det. Sandboxning är det nyare och större problemet. Program som är paketerade som Flatpak eller Snap körs inuti ett isoleringslager som kan neka åtkomst till mikrofonen även när resten av systemet fungerar. Appen får då tystnad utan något felmeddelande. Du granskar och beviljar dessa behörigheter med Flatseal, en grafisk redigerare för Flatpak-portaler, eller från terminalen med flatpak permissions. Webbläsare lägger till ett eget separat lager ovanpå. En webbplats måste tillåtas i webbläsaren oavsett systemets tillstånd. Våra guider Firefox och Chrome behandlar den här frågan i webbläsaren i detalj.

Så här åtgärdar du problemet, från den vanligaste orsaken och nedåt

Gå igenom dessa åtgärder i ordning. Hoppa inte direkt till de mer drastiska åtgärderna. Ordningen är avsiktlig. Den löser de flesta fallen först, med minsta möjliga störning. Att slå på ljudet och dirigera ljudet tillsammans står för de flesta mikrofonfel i Linux. Först därefter går man vidare till att starta om ljudservern. Efter varje ändring ska du återgå till mikrofontestet eller ingångsmätaren på skrivbordet. Kontrollera igen om det finns någon signal innan du går vidare, så att du alltid vet vilket steg som gjorde skillnaden.

Slå på ljudet och dirigera om med pavucontrol

Installera och öppna pavucontrol först, eftersom det grafiskt åtgärdar de vanligaste felen. Gå till fliken Ingångsenheter. Leta reda på din mikrofon och kontrollera att avstängningsknappen för ljudet bredvid nivåreglaget inte är aktiverad. Höj ingångsvolymen om den är för låg. Kontrollera rullgardinsmenyn Port, eftersom bärbara datorer ofta har både en inbyggd mikrofon och ett headsetuttag under samma enhet. Öppna nu fliken Inspelning medan din app är igång. Varje app i listan har en enhetsväljare till höger. Ställ in den krånglande appen så att den uttryckligen pekar på rätt mikrofon. Denna enkla omkonfigurering löser många rapporter om att det ”fungerar överallt utom här”. Konferensappar har också sina egna väljare, så ställ in enheten även där. Våra guider för Zoom och Discord går igenom dessa paneler steg för steg.

Aktivera inspelning i alsamixer och testa sedan från terminalen

Gå till alsamixer när den grafiska mixern visar en platt mätare. Följ stegen för att slå på ljudet och aktivera inspelning som beskrivs ovan: F6 för kortet, F4 för inspelning, sedan M och Space på Capture-kanalen. När kanalen är aktiverad, verifiera hårdvaruvägen direkt via ALSA. Kör arecord -l för att lista alla inspelningsenheter som kärnan ser. Om din mikrofon saknas här beror felet på ett drivrutins- eller anslutningsproblem, inte på inställningarna. Om den visas, spela in ett kort klipp och spela upp det med arecord -d 5 test.wav && aplay test.wav. Om du hör din röst bekräftas att ALSA-vägen fungerar, vilket begränsar felet till servern eller appen. På PipeWire gör du samma sak med wpctl status för att läsa käll-ID:t, sedan wpctl set-default <id> och wpctl set-mute <id> 0.

Starta om ljudservern när mätaren förblir stillastående

Anta att kanalen inte är tystad, att rätt källa är vald och att mätaren fortfarande inte rör sig. Ljudservern har troligen fastnat. Detta är ett känt tillstånd efter viloläge, efter att ett USB-gränssnitt har bytts ut under drift eller efter en drivrutinsuppdatering. Genom att starta om servern tvingas hela ljudgrafen att byggas upp på nytt utan att datorn behöver startas om. På PipeWire kör du systemctl --user restart pipewire pipewire-pulse wireplumber. På PulseAudio kör du pulseaudio -k, och daemonen startas om automatiskt. Ljudet bryts kortvarigt under tiden. Betrakta detta som en återställningsknapp för en låst ljudstack, inte som ett rutinmässigt steg. Tabellen nedan visar vanliga symptom, deras vanligaste orsaker och den snabbaste lösningen.

SymptomTrolig orsakLösning
Mätaren på skrivbordet visar noll, alla enheterCapture-kanalen är tystad i ALSASlå på ljudet och aktivera Capture i alsamixer (M, sedan Space)
Fungerar i en app, men inte i en annanRoutning per app till fel källaOmfördela enheten i pavucontrol › Inspelning
Mikrofonen slutar fungera efter att man anslutit ett headsetStandardkällan har flyttats till en ny enhetStäll in källan med wpctl set-default eller pavucontrol
Mikrofonen i Bluetooth-headsetet saknasEnheten är i A2DP-profilenByt till HSP/HFP i profillistan för pavucontrol
Endast en app hör tystnadFlatpak eller så blockerar Snap-sandboxen mikrofonenBevilja åtkomst i Flatseal eller via flatpak permissions
Signalen återkommer endast efter varje omstartLjudservern har fastnat efter vilolägeStarta om pipewire och wireplumber, eller kör pulseaudio -k

Så här håller du din Linux-mikrofon i gott skick

Det finns några vanor som gör att mikrofonen fortsätter att fungera när den väl är tillbaka. Håll systemet uppdaterat, eftersom PipeWire och WirePlumber ofta släpper ut rättningar för routning och Bluetooth. Fäst den mikrofon du vill ha som standardkälla, så att ett nyanslutet headset inte i smyg kan ta över platsen. Granska dina behörigheter för Flatpak då och då, och bevilja endast mikrofonåtkomst till appar som behöver det. När mikrofonen måste fungera i en webbläsare, en skrivbordsapp och terminalen, testa den på varje plats. En mikrofon som spelar in perfekt med arecord kan fortfarande blockeras ett lager högre upp, i en sandlåda eller en webbläsarflik. Beteendet varierar också beroende på distribution och skrivbordsmiljö, så en Fedora-korrigering kan finnas under en annan meny i Ubuntu. Om du växlar mellan datorer täcker vår Chromebook-guide samma kontroller på ChromeOS.

Vanliga frågor

Hur vet jag om mitt system använder PipeWire eller PulseAudio?

Kör wpctl status i en terminal. En lista över sänkor och källor betyder att PipeWire körs. Om kommandot saknas, kör pactl info och läs raden Server Name. Fedora och Ubuntu 22.10 eller nyare använder PipeWire som standard; äldre versioner använder PulseAudio.

Min mikrofon fungerar med arecord men inte i mina appar. Varför?

Att arecord fungerar visar att ALSA-hårdvaruvägen är korrekt. Felet ligger i ljudservern eller appen. Öppna fliken Inspelning i pavucontrol och peka appen mot rätt källa. Om appen är en Flatpak, kontrollera dess mikrofonbehörighet i Flatseal.

Varför visas inte mikrofonen på mitt Bluetooth-headset?

A2DP-läget med hög kvalitet stöder inte mikrofon. Headsetet måste växla till HSP- eller HFP-profilen innan dess bommikrofon blir tillgänglig. Öppna pavucontrol, leta reda på enheten under listan över konfigurationer eller profiler och välj headsetprofilen. Räkna med att ljudkvaliteten försämras när du gör detta.

Hur slår jag på mikrofonen från terminalen?

På ALSA öppnar du alsamixer, trycker på F4 för inspelningsvyn, väljer Capture och trycker på M för att slå på mikrofonen. På PipeWire letar du upp käll-ID:t med wpctl status och kör sedan wpctl set-mute <id> 0. En tystad inspelningskanal i ALSA är den vanligaste orsaken till att ingången är tyst.

Hur startar jag om ljudet på Linux utan att starta om?

På PipeWire kör du systemctl --user restart pipewire pipewire-pulse wireplumber. På PulseAudio kör du pulseaudio -k så startar daemonen om sig själv. Ljudet bryts under en sekund medan servern återuppbygger sin graf. Använd detta endast efter att kontroller av att slå på ljudet och av routningen har misslyckats.

Testa din mikrofon

Testa din mikrofon →