Mikrofon funktioniert nicht unter Archlinux

8

Kontext

Ich laufe seit Jahren archlinuxauf meinem Laptop und brauchte das Mikrofon nie. Jetzt brauche ich es, kann aber keinen Weg finden, es richtig zu konfigurieren.

Ich benutze alsaund pulseadio.

Laufen alsamixerals Benutzer Ich habe zwei Lehren:

  ||      ||
Master  Capture

Ich habe beide nicht stummgeschaltet und auf vernünftige (~ 50%) Werte eingestellt.

Laufen alsamixerals root habe ich mehrere Messgeräte:

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

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

Wenn ich Loopbackals Root aktiviere, kann ich das Mikrofon über die Lautsprecher wieder hören .

Wenn ich meine Soundkarte explizit alsamixerals Benutzer auswähle, erhalte ich dieselben Befehle wie als Root (und wenn ich Loopbackhier aktiviere , höre ich das Mikrofon auch über die Lautsprecher). Ich bekomme folgendes:

Geben Sie hier die Bildbeschreibung ein

(Rechts sind zwei weitere InternalAnzeigen, die Loopback(aktivieren / deaktivieren) und eine veränderbare Off-hook)

Egal was ich mache und wie sehr ich mich in die alsa-Anzeigen einmische, es gelingt mir nie, das Mikrofon an die Benutzeranwendung weiterzugeben. Im Wesentlichen arecorderhalte ich bei jedem Start die folgende Ausgabe:

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

aplayfunktioniert andererseits perfekt.


Meine Soundkarte ist ( lspci):

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

Ich habe mir das Arch-Wiki angesehen und versucht, Folgendes /etc/modprobe.d/modprobe.confeinzustellen (und den Computer neu gestartet):

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

(Ich kann das Mikrofon nicht dazu bringen, Daten mit oder ohne diese Konfiguration an die Benutzeranwendung zu senden.)

Meine aktuellen hdaModule sind:

# 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

Der Vollständigkeit pulseaudiohalber ist dies meine Konfiguration (ich habe nicht versucht, mich in sie einzumischen):

$ 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

Nach dem Kommentar von Faheem Mitha bin ich zuversichtlich, dass der pulseaudio tmpfsdie richtigen Berechtigungen hat:

# 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

Und pavucontrolwurde stumm geschaltet. Mir war nicht bewusst, pavucontrolwas zu dem Problem überhaupt führte:

Geben Sie hier die Bildbeschreibung ein


Frage

Ich habe keine Ideen mehr. Ich glaube, dass das LoopbackAudio-Interface im Kernel-Bereich vorhanden ist , daher besteht mein Problem darin, dass ich die Mikrofondaten nicht in den Benutzerbereich bringen kann . Ich bin mir jedoch nicht 100% sicher.

Welche anderen Optionen kann ich snd-hda-intel(oder den anderen Modulen) geben, die für ein Mikrofon relevant sein könnten, das auf der Loopback-Schnittstelle funktioniert, sich aber nicht auf die Anwendungsschicht ausbreitet?

Könnte ich etwas falsch machen pulseaudio? Aber pulseaudioandererseits hat die alsaganze Zeit richtig (zusammen mit ) gearbeitet, und ich benutze audacityziemlich oft.

gro♀
quelle
Hallo. Sie möchten alsamixer nicht als root ausführen. Sie werden Ihre Berechtigungen vermasseln. Siehe unix.stackexchange.com/questions/265043 . Können Sie einen Screenshot von alsamixer bereitstellen, der als Benutzer ausgeführt wird? Stellen Sie sicher, dass Sie Ihre Soundkarte auswählen.
Faheem Mitha
Schalten Sie alles stumm und bringen Sie alles auf das Maximum alsamixer.
Faheem Mitha
@FaheemMitha - Danke, ich bekomme alle Anzeigen, wenn ich die Soundkarte explizit auswähle alsamixer. Im Moment habe ich den Screenshot hinzugefügt und meine pulseaudioBerechtigungen bestätigt (ich habe den Computer sogar neu gestartet, um sicherzustellen, dass meine Einmischung als Root nichts beeinflusst). Jetzt versuche ich mehr damit zu spielen pulseaudio.
gro♀
@FaheemMitha - Nicht stummgeschaltet, auch nicht Beep. Keine Freude.
gro♀
1
@FaheemMitha - Heh, es war innen stummgeschaltet pavucontrol. Das löst es. Ich frage mich wirklich, wie das passiert ist. Ich habe einen anderen Computer, der genau dasselbe Intel HDA-Modul, dasselbe Betriebssystem (mit denselben Updates), dieselbe Alsa und dasselbe Pulseaudio verwendet. und es wurde dort nicht stumm geschaltet. Bevor Ihr Kommentar pavucontrolauf keinem der beiden Computer installiert wurde (Archlinux hat pavucontrolals separates Paket).
Gro♀

Antworten:

9

Aufgrund der Korrespondenz mit dem Poster (siehe Kommentare) stellte sich heraus, dass die Soundkarte im Inneren stummgeschaltet war pavucontrol.

Faheem Mitha
quelle
1
+1 Hatte das gleiche Problem: Öffnen Sie pavucontrolund klicken Sie auf den Rechtspfeil, bis die Registerkarte "Eingabegeräte" markiert ist. Klicken Sie dann auf das Lautstärkesymbol (Audio stumm schalten), das für mich standardmäßig aktiviert war.
Justin Bull
Ich sollte wahrscheinlich hinzufügen, dass ich GNOME 3 verwende und erst jetzt bemerkt habe, dass die Soundeinstellungen stumm geschaltet sind, was auch verwendet werden kann (keine Notwendigkeit pavucontrol).
Justin Bull
2

Ich habe auch das Problem festgestellt, dass mein Mikrofon unter Arch Linux nicht funktioniert. In meinem Fall wird unter "Eingabegeräte" in kein Gerät angezeigt pavucontrol(es steht "Keine Eingabegeräte verfügbar"). Nach den folgenden Ratschlägen aus dem Arch Wiki wurde das Problem für mich behoben:

  1. Führen arecord -lSie den Vorgang aus, um die ID des Mikrofons in hw:CARD,DEVICENotation herauszufinden , z. B. ob der Ausgang ist

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

Dann ist die ID hw:0,0

  1. Fügen Sie die Zeile load-module module-alsa-source device=hw:0,0in/etc/pulse/default.pa

  2. pulseaudio -k; pulseaudio -D um pulseaudio neu zu starten und die Änderungen zu aktivieren.

Ich lasse es hier, falls jemand auf das gleiche Problem stößt wie ich.

xji
quelle
0

1.rm -rf ~ / .config / puls

2.rm -rf / etc / puls /

3. Stecken Sie den USB-Kopfhörer in den Laptop

4. Pacman-S Pulseaudio Pavucontrol

  1. Fügen Sie in /etc/pulse/default.pa "load-module module-loopback latency_msec = 1" hinzu

6. neu starten

6.Pavucontrol

OK.

Nguyen Van Minh Hieu
quelle
0

Dieser Link hat mich aussortiert: Mikrofon von PulseAudio nicht erkannt

Bestimmen Sie die Karten- und Gerätenummer Ihres Mikrofons:

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

Bearbeiten Sie dann /etc/pulse/default.pa und fügen Sie eine Lademodulzeile ein, in der Ihr Gerät wie folgt angegeben ist:

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

Starten Sie pulseaudio abschließend neu, um die neuen Einstellungen zu übernehmen:

$ pulseaudio -k ; pulseaudio -D

Wenn alles richtig funktioniert hat, sollte jetzt Ihr Mikrofon angezeigt werden, wenn Sie pavucontrol ausführen (auf der Registerkarte Eingabegeräte).

authentichigh
quelle