Konteks
Saya telah menjalankan archlinux
laptop saya selama bertahun-tahun dan tidak pernah membutuhkan mikrofon. Sekarang saya membutuhkannya tetapi tidak dapat menemukan cara untuk mengkonfigurasinya dengan benar.
Saya menggunakan alsa
dan pulseadio
.
Berjalan alsamixer
sebagai pengguna, saya memiliki dua alat ukur:
|| ||
Master Capture
Saya memiliki keduanya tidak bersuara dan diaktifkan untuk nilai yang masuk akal (~ 50%).
Berjalan alsamixer
sebagai root, saya memiliki beberapa alat ukur:
|| || || || || ||
Master Headphones Speaker PCM Microphone MIC Boot
|| || || || ||
Beep Loopback Internal Internal Capture
Jika saya mengaktifkan Loopback
root sebagai saya bisa mendengar mikrofon kembali melalui speaker .
Jika saya secara eksplisit memilih kartu suara saya alsamixer
sebagai pengguna, saya mendapatkan perintah yang sama seperti menjalankan sebagai root (dan jika saya mengaktifkan di Loopback
sini saya juga mendengar mikrofon dari speaker). Saya mendapatkan yang berikut ini:
(Ke kanan adalah dua Internal
alat pengukur lagi , Loopback
(aktifkan / nonaktifkan) dan bisa berubah-ubah Off-hook
)
Namun, tidak peduli apa yang saya lakukan dan seberapa banyak saya ikut campur dengan alat pengukur alsa saya tidak pernah berhasil melewati mikrofon ke aplikasi pengguna. Intinya, setiap kali saya menjalankan arecord
saya mendapatkan output berikut:
$ 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
Sebaliknya, bekerja dengan sempurna.
Kartu suara saya adalah ( lspci
):
# lspci| grep -i audio
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA)
Saya melihat wiki lengkung dan mencoba mengatur yang berikut ini /etc/modprobe.d/modprobe.conf
(dan me-reboot mesin):
options snd-hda-intel model=dell-m6-dmic
(Saya tidak bisa mendapatkan mikrofon untuk mengirim data ke aplikasi pengguna dengan atau tanpa konfigurasi itu.)
hda
Modul saya saat ini adalah:
# 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
Untuk kelengkapan, ini adalah pulseaudio
konfigurasi saya (saya belum mencoba ikut campur):
$ 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
Sesuai komentar Faheem Mitha, saya yakin pulseaudio
tmpfs
haknya memiliki hak:
# 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
Dan pavucontrol
diredam. Saya tidak tahu pavucontrol
yang mengakibatkan masalah di tempat pertama:
Pertanyaan
Saya kehabisan ide. Saya percaya bahwa Loopback
antarmuka audio ada di ruang kernel , oleh karena itu masalah saya adalah saya tidak bisa membawa data mikrofon ke ruang pengguna . Namun, saya tidak 100% yakin akan hal itu.
Opsi apa lagi yang bisa saya berikan snd-hda-intel
(atau modul lain) yang mungkin relevan untuk mikrofon yang bekerja pada antarmuka loopback tetapi tidak merambat ke lapisan aplikasi?
Mungkinkah saya melakukan sesuatu yang salah pulseaudio
? Tetapi sekali lagi, pulseaudio
bekerja dengan benar (bersama-sama dengan alsa
) untuk semua waktu itu, dan saya audacity
cukup sering menggunakan .
alsamixer
.
alsamixer
. Untuk sekarang saya menambahkan tangkapan layar dan mengkonfirmasi pulseaudio
izin saya (saya bahkan me-reboot mesin untuk memastikan bahwa campur tangan saya sebagai root tidak mempengaruhi sesuatu). Sekarang saya mencoba bermain lebih banyak pulseaudio
.
Beep
. Tidak ada sukacita
pavucontrol
. Itu menyelesaikannya. Saya benar-benar bertanya-tanya bagaimana ini terjadi, saya memiliki komputer lain yang menggunakan modul Intel HDA yang sama persis, OS yang sama (dengan pembaruan yang sama), alsa yang sama dan pulseaudio yang sama; dan itu tidak diredam di sana. Sebelum komentar Anda pavucontrol
tidak diinstal pada kedua mesin (archlinux memiliki pavucontrol
sebagai paket terpisah).