Contexto
Estou archlinux
em funcionamento no meu laptop há anos e nunca precisei do microfone. Agora eu preciso, mas não consigo encontrar uma maneira de configurá-lo corretamente.
Eu uso alsa
e pulseadio
.
Executando alsamixer
como usuário, tenho dois medidores:
|| ||
Master Capture
Eu tenho os dois emudecidos e habilitados para valores sensíveis (~ 50%).
Executando alsamixer
como root, tenho vários medidores:
|| || || || || ||
Master Headphones Speaker PCM Microphone MIC Boot
|| || || || ||
Beep Loopback Internal Internal Capture
Se eu ativar o Loopback
as root , posso ouvir o microfone de volta pelos alto-falantes .
Se eu selecionar explicitamente minha placa de som alsamixer
como usuário, obtenho os mesmos comandos que o root (e se eu ativar Loopback
aqui, também ouço o microfone dos alto-falantes). Eu recebo o seguinte:
(À direita, há mais dois Internal
medidores, o Loopback
(ativar / desativar) e um mutável Off-hook
)
No entanto, não importa o que eu faça e o quanto eu me importe com os medidores da alsa, nunca consigo passar o microfone para o aplicativo do usuário. Em essência, toda vez que corro arecord
, recebo a seguinte saída:
$ 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%
aplay
, por outro lado, funciona perfeitamente.
Minha placa de som é ( lspci
):
# lspci| grep -i audio
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)
Eu olhei para o wiki do arch e tentei configurar o seguinte em /etc/modprobe.d/modprobe.conf
(e reiniciei a máquina):
options snd-hda-intel model=dell-m6-dmic
(Não consigo que o microfone envie dados ao aplicativo do usuário com ou sem essa configuração.)
Meus hda
módulos atuais 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 ser completo, esta é a minha pulseaudio
configuração (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, estou confiante de que pulseaudio
tmpfs
tem as permissões corretas:
# 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 sabia pavucontrol
que resultou no problema em primeiro lugar:
Questão
Estou sem idéias. Eu acredito que a Loopback
interface de áudio existe no espaço do kernel , portanto, o meu problema é que eu não posso trazer os dados de microfone em espaço do usuário . No entanto, não tenho 100% de certeza disso.
Que outras opções posso dar snd-hda-intel
(ou aos 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 pulseaudio
? Mas, novamente, pulseaudio
funcionou corretamente (junto com alsa
) por todo esse tempo, e eu uso com audacity
bastante frequência.
fonte
alsamixer
.alsamixer
. Por enquanto, adicionei a captura de tela e confirmei minhaspulseaudio
permissões (até reiniciei a máquina para garantir que minha intromissão como root não afetasse algo). Agora estou tentando jogar mais compulseaudio
.Beep
. Sem alegriapavucontrol
. Isso resolve. Eu realmente me pergunto como isso aconteceu. Tenho outra máquina usando exatamente o mesmo módulo Intel HDA, o mesmo sistema operacional (com as mesmas atualizações), o mesmo alsa e o mesmo pulseaudio; e não foi silenciado lá. Antes de seu comentáriopavucontrol
não ter sido instalado em nenhuma das duas máquinas (o archlinux possuipavucontrol
um pacote separado).Respostas:
Com base na correspondência com o pôster (ver comentários), descobriu-se que a placa de som estava silenciada por dentro
pavucontrol
.fonte
pavucontrol
e clique na seta à direita até que a guia "Dispositivos de entrada" seja destacada e clique no ícone de volume (Silenciar áudio) que, para mim, foi ativado por padrão.pavucontrol
).Também encontrei o problema do meu microfone não funcionar no Arch Linux. No meu caso, não há nenhum dispositivo mostrado em "Dispositivos de entrada" em
pavucontrol
(Ele diz "nenhum dispositivo de entrada disponível"). Seguir o seguinte conselho do Arch Wiki o corrigiu para mim:arecord -l
para descobrir a identificação do microfone emhw:CARD,DEVICE
notação, por exemplo, se a saída for**** List of CAPTURE Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog[ALC269VC Analog] Subdevices: 1/1 Subdevice #0: subdevice #0
Então o id é
hw:0,0
Adicione a linha
load-module module-alsa-source device=hw:0,0
em/etc/pulse/default.pa
pulseaudio -k; pulseaudio -D
para reiniciar o pulseaudio e ativar as alterações.Vou deixar aqui para o caso de alguém encontrar o mesmo problema que o meu.
fonte
1.rm -rf ~ / .config / pulse
2.rm -rf / etc / pulse /
3.plugue o fone de ouvido usb no laptop
4.pacman -S pulseaudio pavucontrol
6.reboot
6.pavucontrol
ESTÁ BEM.
fonte
Este link me classificou: Microfone não detectado pelo PulseAudio
Determine o número do cartão e do dispositivo do seu microfone:
Em seguida, edite /etc/pulse/default.pa e insira uma linha do módulo de carga especificando seu dispositivo da seguinte maneira:
Por fim, reinicie o pulseaudio para aplicar as novas configurações:
Se tudo funcionou corretamente, agora você verá o seu microfone aparecer ao executar o pavucontrol (na guia Dispositivos de entrada).
fonte