Kontext
Ich laufe seit Jahren archlinux
auf meinem Laptop und brauchte das Mikrofon nie. Jetzt brauche ich es, kann aber keinen Weg finden, es richtig zu konfigurieren.
Ich benutze alsa
und pulseadio
.
Laufen alsamixer
als Benutzer Ich habe zwei Lehren:
|| ||
Master Capture
Ich habe beide nicht stummgeschaltet und auf vernünftige (~ 50%) Werte eingestellt.
Laufen alsamixer
als root habe ich mehrere Messgeräte:
|| || || || || ||
Master Headphones Speaker PCM Microphone MIC Boot
|| || || || ||
Beep Loopback Internal Internal Capture
Wenn ich Loopback
als Root aktiviere, kann ich das Mikrofon über die Lautsprecher wieder hören .
Wenn ich meine Soundkarte explizit alsamixer
als Benutzer auswähle, erhalte ich dieselben Befehle wie als Root (und wenn ich Loopback
hier aktiviere , höre ich das Mikrofon auch über die Lautsprecher). Ich bekomme folgendes:
(Rechts sind zwei weitere Internal
Anzeigen, 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 arecord
erhalte 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%
aplay
funktioniert 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.conf
einzustellen (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 hda
Module 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 pulseaudio
halber 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
tmpfs
die 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 pavucontrol
wurde stumm geschaltet. Mir war nicht bewusst, pavucontrol
was zu dem Problem überhaupt führte:
Frage
Ich habe keine Ideen mehr. Ich glaube, dass das Loopback
Audio-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 pulseaudio
andererseits hat die alsa
ganze Zeit richtig (zusammen mit ) gearbeitet, und ich benutze audacity
ziemlich oft.
alsamixer
.
alsamixer
. Im Moment habe ich den Screenshot hinzugefügt und meine pulseaudio
Berechtigungen 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
.
Beep
. Keine Freude.
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 pavucontrol
auf keinem der beiden Computer installiert wurde (Archlinux hat pavucontrol
als separates Paket).