GNU/Linux >> Linux Esercitazione >  >> Linux

Audio Linux:disponibili solo altoparlanti o microfono, non entrambi

Ecco un problema piuttosto interessante che ho riscontrato di recente. Mi sono comprato un nuovo laptop, Lenovo IdeaPad 3, principale per testare diverse distribuzioni Linux. Come parte della mia configurazione iniziale, ho riscontrato uno strano problema con il sistema audio in Kubuntu. Vale a dire, potevo riprodurre l'audio, ma non c'era il microfono, oppure potevo registrare l'audio con il microfono ma non ci sarebbe stata uscita, né attraverso gli altoparlanti né le cuffie.

Questo mi ha fatto infuriare un po', perché non c'era alcun problema del genere in Windows 10 nella configurazione temporanea di avvio triplo del laptop. Così ho iniziato un lungo e apparentemente selvaggio inseguimento, cercando di risolvere questo problema. La caccia mi ha portato in dozzine di forum, discutendo problemi simili e correlati. La maggior parte di essi sembra concentrarsi sui nuovi modelli di laptop Lenovo. Volevo sfruttare questa opportunità per scrivere un piccolo tutorial, che si spera possa aiutarti, se dovessi riscontrare questo problema, ottenere la riproduzione simultanea e il microfono nelle tue sessioni desktop Linux. Dopo di me, Tuxers.

Problema in dettaglio

Comunque. Ho avuto Kubuntu in esecuzione, finora tutto bene. Sono stato in grado di riprodurre musica e video, nessun problema. Quindi, ho fatto clic sull'icona del volume nell'area di sistema e ho notato che era elencato solo un dispositivo:gli altoparlanti. Non c'era il dispositivo di scorrimento del microfono, come sono abituato a vedere in questo o quel desktop Linux, indipendentemente dalla scelta specifica dell'ambiente di lavoro.

In effetti, questo non è stato un colpo di fortuna. Non c'era microfono (apparentemente). Ho installato e avviato Audacity, quindi ho provato a registrarmi. Non c'era niente. A prima vista, il laptop non aveva un microfono, l'hardware era rotto o la distribuzione Linux utilizzava un driver sbagliato, che non supportava tutte le funzionalità della scheda audio necessarie.

Si è scoperto che nessuno di questi era corretto.

Configurazione PulseAudio

Ho eliminato immediatamente i problemi hardware:l'audio era tutto buono in Windows 10. Quindi ho pensato che forse il driver era del tutto sbagliato. Per verificarlo, ho avviato l'utilità PulseAudio e verificato la configurazione. E poi ho notato qualcosa di piuttosto interessante. Per l'hardware elencato, erano disponibili solo due profili:Uscita stereo e Ingresso stereo analogico. Se li cambiassi, avrei la riproduzione o il microfono ma non entrambi contemporaneamente.

Cosa non ha funzionato

A questo punto, ho passato tutto il tempo a cercare e cercare ancora un po'. Per il tuo bene, ecco un elenco di diverse cose che ho provato, così puoi prenderle in considerazione e, se necessario, scartarle:

  • Ho provato a modificare i parametri di avvio del driver audio (tramite i file di configurazione modprobe.d).
  • Ho provato a modificare i livelli di volume in diversi file di configurazione PulseAudio/ALSA.

Soluzione

L'esperienza sopra di me mi ha insegnato una cosa principale:quanto sia selvaggio e complesso il sottosistema audio in Linux e senza una buona ragione. Ci sono tonnellate di file di configurazione e opzioni e sono tutti assolutamente nerd nella loro natura. Alla fine, ho trovato una grande risorsa sul Wiki di Archlinux, che alla fine mi ha aiutato a sbloccare il mio problema. Quindi, in un certo senso, enormi complimenti agli utenti del forum per il loro lavoro.

L'idea è di creare un nuovo profilo PulseAudio, che consenta input e output simultanei.

Fase 1:controlla l'elenco dei tuoi dispositivi audio

Ci sono diversi modi per farlo. Puoi elencare il tuo hardware con lspci e anche utilizzare l'utilità della riga di comando PulseAudio pacmd:

sudo lspci -knn | grep Audio -A3
03:00.1 Dispositivo audio [0403]:Advanced Micro Devices, Inc. [AMD/ATI] Raven/Raven2/Fenghuang Controller audio HDMI/DP [1002:15de]
Sottosistema:Lenovo Controller audio Raven/Raven2/Fenghuang HDMI/DP [17aa:3805]
Driver del kernel in uso:snd_hda_intel
Moduli del kernel:snd_hda_intel
03:00.2 Controller di crittografia [1080]:Advanced Micro Devices, Inc. [AMD] Famiglia 17h (modelli 10h-1fh) Processore di sicurezza della piattaforma [1022:15df]
--
03:00.5 Controller multimediale [0480]:Advanced Micro Devices, Inc. [AMD] Raven /Raven2/FireFlight/Renoir Audio Processor [1022:15e2]
Sottosistema:Lenovo Raven/Raven2/FireFlight/Renoir Audio Processor [17aa:3807]
Moduli del kernel:snd_pci_acp3x, snd_rn_pci_acp3x
03:00.6 Dispositivo audio [0403]:Advanced Micro Devices, Inc. [AMD] Famiglia 17h (modelli 10h-1fh) Controller audio HD [1022:15e3]
Sottosistema:Lenovo Family 17h (modelli 10h-1fh) Controller audio HD [1 7aa:3809]
Driver del kernel in uso:snd_hda_intel
Moduli del kernel:snd_hda_intel

pacmd list-sink | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '
name:
alsa.subdevice ="0 "
alsa.device ="0"

I due comandi consentono di identificare il numero esatto del bus PCI e il numero del dispositivo attaccato al bus. Avremo bisogno di queste informazioni per il nuovo profilo PulseAudio. Sul mio laptop, il dispositivo audio che desideriamo:il controller audio HD (non il controller audio HDMI/DP) si trova sul dominio 0000, bus 03, slot 00, funzione 6.

Fase 2:modifica la configurazione audio

Apri /etc/pulse/default.pa in un editor di testo, come root o sudo. Crea prima un backup di questo file. All'inizio del file, sotto i commenti di descrizione del file generico, incolla il seguente snippet di codice, in modo che si trovi sopra le altre direttive di configurazione:

### Carica dispositivo analogico
load-module module-alsa-sink device=hw:X,Y
load-module module-combine-sink sink_name=combined
set-default-sink combinato

Dove X è la carta e Y è il dispositivo. Nel mio caso, questo viene mappato su X =0, Y =3.

### Carica dispositivo analogico
load-module module-alsa-sink device=hw:0,3
load-module module-combine-sink sink_name=combined
set-default-sink combinato

A questo punto, la cosa più semplice è semplicemente riavviare il sistema.

Fase 3:verifica la configurazione e seleziona un nuovo profilo

Una volta riavviato il computer, nella tua distribuzione Linux, avvia lo strumento di configurazione PulseAudio e seleziona l'ultima scheda (Configurazione). Espandi l'elenco a discesa dei profili. Noterai ora che ci sono molti più profili disponibili, oltre ai due predefiniti. Seleziona Uscita stereo + Ingresso stereo analogico.

Avvia un'applicazione in grado di riprodurre suoni e registrare audio:Audacity è un buon esempio. E ora noterai che hai entrambe le funzionalità disponibili contemporaneamente e il tuo problema è stato risolto.

Conclusione

Eccoci qui. Sono felice di aver risolto il problema, ma sono terribilmente deluso dal fatto che questo tipo di problema possa o debba verificarsi nel 2021. Potresti essere incline a incolpare l'hardware e potresti persino cercare problemi audio specifici con AMD Raven/Raven2 Audio Processore, che potrebbe essere un buon punto di partenza indicativo. Ma alla fine, non è colpa dell'hardware che dovremmo incolpare. Non so perché la configurazione di PulseAudio dovrebbe essere diversa per questa particolare scheda su questa distribuzione, ma in ogni caso hai questo tutorial, quindi spero che le cose andranno tutto bene d'ora in poi.

Se stai riscontrando problemi audio sul tuo laptop Linux, prova a eseguire il debug del problema in modo metodico. L'audio funziona correttamente in altri sistemi operativi? L'audio funziona in modo selettivo nella tua distribuzione? Se sì, hai il giusto tipo di configurazione in atto? Usa i comandi lspci e pacmd per cercare di capire cosa c'è che non va, quindi è molto più probabile che ti azzeri sulle modifiche di configurazione corrette per il sottosistema audio. Nel mio caso si trattava di "semplice" creare un nuovo profilo PulseAudio. Ancora una volta, un grande ringraziamento alla gente di ArchLinux Wiki. Festeggiate, ragazzi.


Linux
  1. Come copiare in blocco le immagini solo di determinate dimensioni in Linux

  2. Il microfono Skype non funziona in Linux Mint 17 [Suggerimento rapido]

  3. Microsoft Teams è ora disponibile su Linux

  4. sox:comando non trovato

  5. fflush() non funziona in Linux

L'anno dell'insoddisfazione di Linux

Linux Mint 20 Ulyana Cinnamon - Ragionevole ma non cippatrice

Linux Mint 20 Ulyana Xfce - Non proprio lì

Ottimizzazione di Notepad++ su Linux

Le 10 migliori distribuzioni Linux

Linux reindirizza il file audio all'ingresso del microfono