Il microfono non funziona su archlinux


9

Contesto

Sono in esecuzione archlinuxsul mio laptop da anni e non ho mai avuto bisogno del microfono. Ora ne ho bisogno ma non riesco a trovare un modo per configurarlo correttamente.

Io uso alsae pulseadio.

In esecuzione alsamixercome utente ho due calibri:

  ||      ||
Master  Capture

Li ho entrambi disattivati ​​e abilitati a valori sensibili (~ 50%).

In esecuzione alsamixercome root ho diversi calibri:

  ||        ||        ||      ||      ||       ||
Master  Headphones  Speaker  PCM  Microphone MIC Boot 

 ||      ||       ||        ||       ||
Beep  Loopback Internal  Internal  Capture

Se abilito Loopbackcome root posso sentire il microfono attraverso gli altoparlanti .

Se seleziono esplicitamente la mia scheda audio alsamixercome utente, ottengo gli stessi comandi dell'esecuzione come root (e se abilito Loopbackqui, sento anche il microfono dagli altoparlanti). Ottengo quanto segue:

inserisci qui la descrizione dell'immagine

(A destra ci sono altri due Internalindicatori, il Loopback(abilita / disabilita) e un mutevole Off-hook)

Tuttavia, indipendentemente da ciò che faccio e da quanto mi intrometto con gli indicatori alsa, non riesco mai a passare il microfono all'applicazione utente. In sostanza, ogni volta che corro arecordottengo il seguente output:

$ arecord -vv -f dat /dev/null 
Recording WAVE '/dev/null' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
ALSA <-> PulseAudio PCM I/O Plugin
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 6755399441055744000
#+                                                 | 00%

aplayd'altra parte, funziona perfettamente.


La mia scheda audio è ( lspci):

# lspci| grep -i audio
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)

Ho guardato il wiki dell'arco e ho provato a impostare quanto segue /etc/modprobe.d/modprobe.conf(e riavviato la macchina):

options snd-hda-intel model=dell-m6-dmic

(Non riesco a far sì che il microfono invii dati all'applicazione utente con o senza quella configurazione.)

I miei hdamoduli attuali sono:

# lsmod |grep hda
snd_hda_codec_si3054    16384  1
snd_hda_codec_realtek    69632  1
snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
snd_hda_intel          32768  5
snd_hda_codec         106496  4 snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hda_codec_generic,snd_hda_intel
snd_hda_core           61440  5 snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hwdep              16384  1 snd_hda_codec
snd_pcm                86016  4 snd_hda_codec_si3054,snd_hda_codec,snd_hda_intel,snd_hda_core
snd                    65536  18 snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hwdep,snd_timer,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel

Per completezza, questa è la mia pulseaudioconfigurazione (non ho provato a immischiarmi):

$ pulseaudio --dump-conf
### Read from configuration file: /etc/pulse/daemon.conf ###
daemonize = no
fail = yes
high-priority = yes
nice-level = -11
realtime-scheduling = yes
realtime-priority = 5
allow-module-loading = yes
allow-exit = yes
use-pid-file = yes
system-instance = no
local-server-type = user
cpu-limit = no
enable-shm = yes
flat-volumes = no
lock-memory = no
exit-idle-time = 20
scache-idle-time = 20
dl-search-path = /usr/lib/pulse-9.0/modules
default-script-file = /etc/pulse/default.pa
load-default-script-file = yes
log-target = 
log-level = notice
resample-method = auto
enable-remixing = yes
enable-lfe-remixing = no
lfe-crossover-freq = 0
default-sample-format = s16le
default-sample-rate = 44100
alternate-sample-rate = 48000
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 4
default-fragment-size-msec = 25
enable-deferred-volume = yes
deferred-volume-safety-margin-usec = 8000
deferred-volume-extra-delay-usec = 0
shm-size-bytes = 0
log-meta = no
log-time = no
log-backtrace = 0
rlimit-fsize = -1
rlimit-data = -1
rlimit-stack = -1
rlimit-core = -1
rlimit-rss = -1
rlimit-as = -1
rlimit-nproc = -1
rlimit-nofile = 256
rlimit-memlock = -1
rlimit-locks = -1
rlimit-sigpending = -1
rlimit-msgqueue = -1
rlimit-nice = 31
rlimit-rtprio = 9
rlimit-rttime = 200000

Secondo il commento di Faheem Mitha, sono sicuro che pulseaudio tmpfsabbia i permessi giusti:

# ls -la /run/user/861213/pulse/
total 4
drwx------ 2 grochmal users  80 Jul  4 21:44 .
drwx------ 5 grochmal users 120 Jul  4 21:46 ..
srw-rw-rw- 1 grochmal users   0 Jul  4 21:44 native
-rw------- 1 grochmal users   4 Jul  4 21:44 pid

Ed è pavucontrolstato disattivato. Non ero a conoscenza di ciò pavucontrolche ha causato il problema in primo luogo:

inserisci qui la descrizione dell'immagine


Domanda

Sono senza idee. Io credo che l' Loopbackinterfaccia audio esiste in spazio del kernel , quindi, il mio problema è che non riesco a portare i dati del microfono in spazio utente . Tuttavia, non ne sono sicuro al 100%.

Quali altre opzioni posso offrire snd-hda-intel(o agli altri moduli) che potrebbero essere rilevanti per un microfono che funziona sull'interfaccia di loopback ma non si propaga al livello dell'applicazione?

Potrei fare qualcosa di sbagliato in pulseaudio? Ma poi, ha pulseaudiofunzionato correttamente (insieme alsa) per tutto quel tempo, e lo uso audacityabbastanza spesso.


Ciao. Non vuoi eseguire alsamixer come root; rovinerai le tue autorizzazioni. Vedi unix.stackexchange.com/questions/265043 . Puoi fornire uno screenshot di alsamixer in esecuzione come utente? Assicurati di selezionare la tua scheda audio.
Faheem Mitha,

Riattiva tutto e porta tutto al massimo alsamixer.
Faheem Mitha,

@FaheemMitha - Grazie, ottengo tutti gli indicatori se seleziono esplicitamente la scheda audio alsamixer. Per ora ho aggiunto lo screenshot e confermato i miei pulseaudiopermessi (ho anche riavviato la macchina per assicurarmi che il mio intromissione come root non influisse su qualcosa). Ora sto provando a giocare di più con pulseaudio.
grochmal

@FaheemMitha - Riattiva tutto, anche Beep. Nessuna gioia.
grochmal

1
@FaheemMitha - Heh, è ​​stato disattivato all'interno pavucontrol. Questo lo risolve. Mi chiedo davvero come sia successo, ho un'altra macchina che utilizza esattamente lo stesso modulo Intel HDA, lo stesso sistema operativo (con gli stessi aggiornamenti), lo stesso alsa e lo stesso pulseaudio; e non è stato disattivato. Prima che il tuo commento pavucontrolnon fosse installato su nessuna delle due macchine (archlinux ha pavucontrolun pacchetto separato).
grochmal

Risposte:


9

Sulla base della corrispondenza con il poster (vedi commenti), si è scoperto che la scheda audio era disattivata all'interno pavucontrol.


1
+1 Ha avuto lo stesso problema, Apri pavucontrole fai clic sulla freccia destra fino a evidenziare la scheda "Dispositivi di input", quindi fai clic sull'icona del volume (Disattiva audio) che per me è stata attivata per impostazione predefinita.
Justin Bull,

Dovrei probabilmente aggiungere che sto usando GNOME 3 e solo ora ho notato che c'è un interruttore muto nelle impostazioni audio che può anche essere usato (non è necessario pavucontrol).
Justin Bull,

2

Ho anche incontrato il problema del mio microfono che non funzionava su Arch Linux. Nel mio caso non c'è nessun dispositivo mostrato sotto "Dispositivi di input" in pavucontrol(dice "nessun dispositivo di input disponibile"). Seguendo i seguenti consigli di Arch Wiki ho risolto il problema per me:

  1. Corri arecord -lper scoprire l'ID del microfono in hw:CARD,DEVICEnotazione, ad esempio se l'uscita è

**** List of CAPTURE Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog[ALC269VC Analog] Subdevices: 1/1 Subdevice #0: subdevice #0

Quindi l'id è hw:0,0

  1. Aggiungere la riga load-module module-alsa-source device=hw:0,0in/etc/pulse/default.pa

  2. pulseaudio -k; pulseaudio -D per riavviare pulseaudio e attivare le modifiche.

Lo lascerò qui nel caso qualcuno incontrasse lo stesso mio problema.


1

1.rm -rf ~ / .config / pulse

2.rm -rf / etc / pulse /

3. Collegare la cuffia USB al laptop

4.pacman -S pulseaudio pavucontrol

  1. Aggiungi "load-module module-loopback latency_msec = 1" in /etc/pulse/default.pa

6.reboot

6.pavucontrol

OK.


Questo ha funzionato. Ho seguito solo fino al 4 ° passaggio e riavviato. ha funzionato, cazzo. grazie mille
nessuno

0

Questo link mi ha risolto: il microfono non è stato rilevato da PulseAudio

Determina la scheda e il numero del dispositivo del tuo microfono:

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
In hw:CARD,DEVICE notation, you would specify the above device as hw:0,0.

Quindi, modifica /etc/pulse/default.pa e inserisci una riga del modulo di carico specificando il tuo dispositivo come segue:

load-module module-alsa-source device=hw:0,0
# the line above should be somewhere before the line below
.ifexists module-udev-detect.so

Infine, riavvia pulseaudio per applicare le nuove impostazioni:

$ pulseaudio -k ; pulseaudio -D

Se tutto ha funzionato correttamente, ora dovresti vedere il tuo microfono mostrarsi quando esegui pavucontrol (nella scheda Dispositivi di input).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.