Le microphone ne fonctionne pas sur archlinux

9

Le contexte

Je cours archlinuxsur mon ordinateur portable depuis des années et je n'ai jamais eu besoin du microphone. Maintenant j'en ai besoin mais je ne trouve pas de moyen de le configurer correctement.

J'utilise alsaet pulseadio.

En alsamixertant qu'utilisateur, j'ai deux jauges:

  ||      ||
Master  Capture

Je les ai tous deux non muets et activés pour des valeurs sensibles (~ 50%).

En cours alsamixerd' exécution en tant que root, j'ai plusieurs jauges:

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

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

Si j'active le Loopbackroot, je peux entendre le microphone à travers les haut-parleurs .

Si je sélectionne explicitement ma carte son en alsamixertant qu'utilisateur, j'obtiens les mêmes commandes qu'en exécutant en tant que root (et si j'active Loopbackici, j'entends également le microphone des haut-parleurs). J'obtiens ce qui suit:

entrez la description de l'image ici

(À droite se trouvent deux autres Internaljauges, la Loopback(activer / désactiver) et une mutable Off-hook)

Pourtant, peu importe ce que je fais et à quel point je me mêle des jauges alsa, je n'arrive jamais à passer le microphone à l'application utilisateur. Essentiellement, chaque fois que je lance, arecordj'obtiens la sortie suivante:

$ 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, d'autre part, fonctionne parfaitement.


Ma carte son est ( lspci):

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

J'ai regardé le wiki de l'archive et j'ai essayé de configurer ce qui suit dans /etc/modprobe.d/modprobe.conf(et j'ai redémarré la machine):

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

(Je ne parviens pas à ce que le microphone envoie des données à l'application utilisateur avec ou sans cette configuration.)

Mes hdamodules actuels sont:

# 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

Pour être complet, pulseaudiovoici ma config (je n'ai pas essayé de m'en mêler):

$ 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

Selon le commentaire de Faheem Mitha, je suis convaincu que le pulseaudio tmpfsa les bonnes autorisations:

# 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

Et pavucontrolétait muet. Je ne savais pas pavucontrolce qui a entraîné le problème en premier lieu:

entrez la description de l'image ici


Question

Je suis à court d'idées. Je crois que l' Loopbackinterface audio existe dans l' espace du noyau , donc mon problème est que je ne peux pas importer les données du microphone dans l'espace utilisateur . Pourtant, je n'en suis pas sûr à 100%.

Quelles autres options puis-je donner à snd-hda-intel(ou aux autres modules) qui pourraient être pertinentes pour un microphone qui fonctionne sur l'interface de bouclage mais ne se propage pas à la couche application?

Pourrais-je faire quelque chose de mal avec pulseaudio? Mais là encore, a pulseaudiofonctionné correctement (avec alsa) pendant tout ce temps, et j'utilise audacityassez souvent.

grochmal
la source
Salut. Vous ne voulez pas exécuter alsamixer en tant que root; vous allez bousiller vos autorisations. Voir unix.stackexchange.com/questions/265043 . Pouvez-vous fournir une capture d'écran d'Alsamixer fonctionnant en tant qu'utilisateur? Assurez-vous de sélectionner votre carte son.
Faheem Mitha
Réactivez tout le son et amenez tout au maximum alsamixer.
Faheem Mitha
@FaheemMitha - Merci, j'obtiens toutes les jauges si je sélectionne explicitement la carte son alsamixer. Pour l'instant, j'ai ajouté la capture d'écran et confirmé mes pulseaudioautorisations (j'ai même redémarré la machine pour m'assurer que mon ingérence en tant que root n'affectait pas quelque chose). Maintenant j'essaye de jouer plus avec pulseaudio.
grochmal
@FaheemMitha - Tout non muet, même Beep. Pas de joie.
grochmal
1
@FaheemMitha - Heh, il a été coupé à l'intérieur pavucontrol. Cela le résout. Je me demande vraiment comment cela s'est produit, j'ai une autre machine utilisant exactement le même module Intel HDA, le même système d'exploitation (avec les mêmes mises à jour), le même alsa et le même pulseaudio; et ce n'était pas muet là-dedans. Avant que votre commentaire pavucontrolne soit installé sur aucune des deux machines (archlinux a pavucontrolun package séparé).
grochmal

Réponses:

9

Sur la base de la correspondance avec l'affiche (voir commentaires), il s'est avéré que la carte son était muette à l'intérieur pavucontrol.

Faheem Mitha
la source
1
+1 Eu le même problème, ouvrez pavucontrolet cliquez sur la flèche droite jusqu'à ce que l'onglet "Périphériques d'entrée" soit en surbrillance, puis cliquez sur l'icône de volume (Mute Audio) qui pour moi a été activée par défaut.
Justin Bull
Je devrais probablement ajouter que j'utilise GNOME 3 et que je viens juste de remarquer qu'il y a une bascule muette dans les paramètres sonores qui peut également être utilisée (pas besoin de pavucontrol).
Justin Bull
2

J'ai également rencontré le problème de mon microphone ne fonctionnant pas sur Arch Linux. Dans mon cas, il n'y a aucun périphérique affiché sous "Périphériques d'entrée" dans pavucontrol(Il dit "aucun périphérique d'entrée disponible"). En suivant les conseils suivants d'Arch Wiki, je l'ai corrigé:

  1. Exécutez arecord -lpour trouver l'id du microphone en hw:CARD,DEVICEnotation, par exemple si la sortie est

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

Ensuite, l'id est hw:0,0

  1. Ajoutez la ligne load-module module-alsa-source device=hw:0,0en/etc/pulse/default.pa

  2. pulseaudio -k; pulseaudio -D pour redémarrer pulseaudio et activer les modifications.

Je vais le laisser ici au cas où quelqu'un rencontrerait le même problème que le mien.

xji
la source
1

1.rm -rf ~ / .config / pulse

2.rm -rf / etc / pulse /

3.Branchez le casque USB sur un ordinateur portable

4.pacman -S pulseaudio pavucontrol

  1. Ajoutez "load-module module-loopback latency_msec = 1" dans /etc/pulse/default.pa

6. redémarrage

6. pavucontrol

D'ACCORD.

Nguyen Van Minh Hieu
la source
Cela a fonctionné. J'ai seulement suivi jusqu'à la 4ème étape et redémarré. putain ça a marché. merci beaucoup
personne il y a
0

Ce lien m'a trié: Microphone non détecté par PulseAudio

Déterminez le numéro de carte et d'appareil de votre micro:

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

Ensuite, éditez /etc/pulse/default.pa et insérez une ligne de module de chargement spécifiant votre périphérique comme suit:

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

Enfin, redémarrez pulseaudio pour appliquer les nouveaux paramètres:

$ pulseaudio -k ; pulseaudio -D

Si tout fonctionnait correctement, vous devriez maintenant voir votre micro apparaître lors de l'exécution de pavucontrol (sous l'onglet Périphériques d'entrée).

authentichigh
la source