El micrófono no funciona en archlinux


9

Contexto

He estado funcionando archlinuxen mi computadora portátil durante años y nunca necesité el micrófono. Ahora lo necesito pero no puedo encontrar una manera de configurarlo correctamente.

Yo uso alsay pulseadio.

Corriendo alsamixercomo usuario tengo dos indicadores:

  ||      ||
Master  Capture

Los tengo sin silenciar y habilitados para valores sensibles (~ 50%).

Ejecutando alsamixercomo root tengo varios medidores:

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

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

Si habilito la Loopbackraíz , puedo escuchar el micrófono a través de los altavoces .

Si selecciono explícitamente mi tarjeta de sonido alsamixercomo usuario, obtengo los mismos comandos que ejecutar como root (y si habilito Loopbackaquí, también escucho el micrófono desde los altavoces). Me sale lo siguiente:

ingrese la descripción de la imagen aquí

(A la derecha hay dos Internalindicadores más , el Loopback(activar / desactivar) y un mutable Off-hook)

Sin embargo, no importa lo que haga y cuánto me entrometa con los indicadores de alsa, nunca logro pasar el micrófono a la aplicación del usuario. En esencia, cada vez que corro arecordme sale el siguiente resultado:

$ 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 otro lado, funciona perfectamente.


Mi tarjeta de sonido es ( lspci):

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

Miré el arch wiki y traté de configurar lo siguiente en /etc/modprobe.d/modprobe.conf(y reinicié la máquina):

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

(No puedo hacer que el micrófono envíe datos a la aplicación del usuario con o sin esa configuración).

Mis hdamódulos actuales son:

# 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, esta es mi pulseaudioconfiguración (no he intentado entrometerme con ella):

$ 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

Según el comentario de Faheem Mitha, estoy seguro de que pulseaudio tmpfstiene los permisos correctos:

# 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

Y pavucontrolfue silenciado. No estaba al tanto de pavucontrolcuál resultó en el problema en primer lugar:

ingrese la descripción de la imagen aquí


Pregunta

Estoy sin ideas. Yo creo que el Loopbackexiste interfaz de audio en el espacio del núcleo , por lo tanto, mi problema es que no puedo llevar los datos del micrófono en el espacio de usuario . Sin embargo, no estoy 100% seguro de ello.

¿Qué otras opciones puedo dar snd-hda-intel(o los otros módulos) que podrían ser relevantes para un micrófono que funciona en la interfaz de bucle invertido pero que no se propaga a la capa de aplicación?

¿Podría estar haciendo algo mal pulseaudio? Pero, de nuevo, pulseaudiofuncionó correctamente (junto con alsa) durante todo ese tiempo, y lo uso con audacitybastante frecuencia.


Hola. No desea ejecutar alsamixer como root; arruinarás tus permisos. Ver unix.stackexchange.com/questions/265043 . ¿Puedes proporcionar una captura de pantalla de alsamixer ejecutándose como usuario? Asegúrese de seleccionar su tarjeta de sonido.
Faheem Mitha

Activa el silencio de todo y lleva todo al máximo alsamixer.
Faheem Mitha

@FaheemMitha - Gracias, obtengo todos los indicadores si selecciono explícitamente la tarjeta de sonido alsamixer. Por ahora agregué la captura de pantalla y confirmó mis pulseaudiopermisos (incluso reinicié la máquina para asegurarme de que mi intromisión como root no afectara algo). Ahora estoy tratando de jugar más con pulseaudio.
grochmal

@FaheemMitha: activó todo, incluso Beep. Sin alegría.
grochmal

1
@FaheemMitha - Je, estaba silenciado por dentro pavucontrol. Eso lo resuelve. Realmente me pregunto cómo sucedió esto, tengo otra máquina que usa exactamente el mismo módulo Intel HDA, el mismo sistema operativo (con las mismas actualizaciones), el mismo alsa y el mismo pulseaudio; y no estaba silenciado allí. Antes de que su comentario pavucontrolno fuera instalado en ninguna de las dos máquinas (archlinux tiene pavucontrolun paquete separado).
grochmal

Respuestas:


9

Basado en la correspondencia con el póster (ver comentarios), resultó que la tarjeta de sonido estaba silenciada por dentro pavucontrol.


1
+1 Tuve el mismo problema, abra pavucontroly haga clic en la flecha hacia la derecha hasta que se resalte la pestaña "Dispositivos de entrada", luego haga clic en el icono de volumen (Silenciar audio) que para mí estaba activado de forma predeterminada.
Justin Bull

Probablemente debería agregar que estoy usando GNOME 3 y solo ahora noté que hay una alternancia de silencio en la configuración de sonido que también se puede usar (no es necesario pavucontrol).
Justin Bull

2

También me encontré con el problema de que mi micrófono no funcionaba en Arch Linux. En mi caso, no se muestra ningún dispositivo en "Dispositivos de entrada" en pavucontrol(Dice "no hay dispositivos de entrada disponibles"). Siguiendo el siguiente consejo de Arch Wiki lo arregló para mí:

  1. Ejecutar arecord -lpara averiguar la identificación del micrófono en hw:CARD,DEVICEnotación, por ejemplo, si la salida es

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

Entonces la identificación es hw:0,0

  1. Agregue la línea load-module module-alsa-source device=hw:0,0en/etc/pulse/default.pa

  2. pulseaudio -k; pulseaudio -D para reiniciar pulseaudio y activar los cambios.

Lo dejaré aquí en caso de que alguien tenga el mismo problema que el mío.


1

1.rm -rf ~ / .config / pulse

2.rm -rf / etc / pulse /

3.Enchufe los auriculares usb en la computadora portátil

4.pacman -S pulseaudio pavucontrol

  1. Agregue "load-module module-loopback latency_msec = 1" en /etc/pulse/default.pa

6 reiniciar

6.pavucontrol

OKAY.


Esto funcionó. Solo seguí hasta el cuarto paso y reinicié. Jodidamente funcionó. muchas gracias
nadie hace

0

Este enlace me solucionó: Micrófono no detectado por PulseAudio

Determine la tarjeta y el número de dispositivo de su micrófono:

$ 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.

Luego, edite /etc/pulse/default.pa e inserte una línea de módulo de carga que especifique su dispositivo de la siguiente manera:

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

Finalmente, reinicie pulseaudio para aplicar la nueva configuración:

$ pulseaudio -k ; pulseaudio -D

Si todo funcionó correctamente, ahora debería ver su micrófono aparecer cuando se ejecuta pavucontrol (en la pestaña Dispositivos de entrada).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.