Microfone não está funcionando no archlinux

6

Contexto

Estou correndo archlinux no meu laptop há anos e nunca precisei do microfone. Agora eu preciso disso, mas não consigo encontrar uma maneira de configurá-lo corretamente.

Eu uso alsa e pulseadio .

Executando alsamixer como usuário Eu tenho dois medidores:

  ||      ||
Master  Capture

Eu tenho os dois não ativados e ativados para valores sensatos (~ 50%).

Executando alsamixer como root Eu tenho vários medidores:

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

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

Se eu ativar o Loopback como root , poderei ouvir o microfone de volta pelos alto-falantes .

Se eu selecionar explicitamente minha placa de som em alsamixer como usuário, recebo os mesmos comandos que executar como root (e se eu ativar Loopback aqui, também ouço o microfone dos alto-falantes). Eu recebo o seguinte:

(àdireitaestãomaisdoisInternalgauges,oLoopback(ativar/desativar)eummutávelOff-hook)

Noentanto,nãoimportaoqueeufaçaequantoeumeintrometacomosindicadoresdeáudio,nuncaconsigopassaromicrofoneparaoaplicativodousuário.Emessência,todavezqueexecutoarecord,receboaseguintesaída:

$arecord-vv-fdat/dev/nullRecordingWAVE'/dev/null':Signed16bitLittleEndian,Rate48000Hz,StereoALSA<->PulseAudioPCMI/OPluginItssetupis:stream:CAPTUREaccess:RW_INTERLEAVEDformat:S16_LEsubformat:STDchannels:2rate:48000exactrate:48000(48000/1)msbits:16buffer_size:24000period_size:6000period_time:125000tstamp_mode:NONEtstamp_type:GETTIMEOFDAYperiod_step:1avail_min:6000period_event:0start_threshold:1stop_threshold:24000silence_threshold:0silence_size:0boundary:6755399441055744000#+|00%

aplay,poroutrolado,funcionaperfeitamente.

Minhaplacadesomé(lspci):

#lspci|grep-iaudio00:14.2Audiodevice:AdvancedMicroDevices,Inc.[AMD/ATI]SBx00Azalia(IntelHDA)

Euolheiparao arch wiki e tentei definir o seguinte em /etc/modprobe.d/modprobe.conf (e reinicie a máquina):

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

(não consigo fazer o microfone enviar dados para o aplicativo do usuário com ou sem essa configuração).

Meus módulos atuais de hda são:

# 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

Para completar, este é o meu pulseaudio config (não tentei me intrometer):

$ 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

De acordo com o comentário de Faheem Mitha, tenho certeza de que pulseaudio tmpfs tem as permissões certas:

# 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

E pavucontrol foi silenciado. Eu não estava ciente de pavucontrol que resultou no problema em primeiro lugar:

Pergunta

Estou sem ideias. Acredito que a interface de áudio Loopback existe no espaço do kernel , portanto, meu problema é que não consigo trazer os dados do microfone para o espaço do usuário . No entanto, não tenho 100% de certeza.

Quais outras opções posso dar para snd-hda-intel (ou os outros módulos) que podem ser relevantes para um microfone que funciona na interface de loopback, mas não se propaga para a camada de aplicativo?

Eu poderia estar fazendo algo errado com pulseaudio ? Mas, novamente, pulseaudio funcionou corretamente (junto com alsa ) por todo esse tempo, e eu uso audacity com bastante frequência.

    
por grochmal 04.07.2016 / 22:37

1 resposta

9

Com base na correspondência com o pôster (ver comentários), descobriu-se que a placa de som estava desativada dentro de pavucontrol .

    
por 05.07.2016 / 15:34