麦克风无法在ArchLinux上使用


9

语境

我已经archlinux在笔记本电脑上运行了很多年,不需要麦克风。现在,我需要它,但是找不到正确配置它的方法。

我使用alsapulseadio

alsamixer作为用户运行,我有两个指标:

  ||      ||
Master  Capture

我将它们都取消静音并启用了合理的(〜50%)值。

alsamixer作为root 运行,我有几个指标:

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

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

如果启用Loopbackroot用户身份,我可以通过扬声器听到麦克风的声音

如果我alsamixer以用户身份明确选择了声卡,则得到的命令与以root用户身份运行的命令相同(如果Loopback在此处启用,则我也确实会听到扬声器的麦克风声音)。我得到以下内容:

在此处输入图片说明

(在右边还有两个Internal量表,Loopback(启用/禁用)和可变的Off-hook

但是,无论我做什么以及与Alsa仪表干涉多少,我都从未设法将麦克风传递给用户应用程序。本质上,每次运行时,arecord我都会得到以下输出:

$ 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另一方面,效果很好。


我的声卡是(lspci):

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

我查看了Arch Wiki,并尝试设置以下内容/etc/modprobe.d/modprobe.conf(并重新启动了计算机):

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

(无论是否配置,我都无法让麦克风将数据发送到用户应用程序。)

我当前的hda模块是:

# 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

为了完整起见,这是我的pulseaudio配置(我没有尝试过干预):

$ 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

根据Faheem Mitha的评论,我相信pulseaudio tmpfs拥有正确的权限:

# 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

pavucontrol被静音。我最初不知道是pavucontrol什么导致了该问题:

在此处输入图片说明


我没主意了。我相信的是,Loopback在存在音频接口内核空间,所以我的问题是,我不能把麦克风数据到用户空间。但是,我不是100%确定。

我可以给哪些其他选项snd-hda-intel(或其他模块)与在回送接口上工作但不传播到应用程序层的麦克风有关?

我可以做错什么pulseaudio吗?但是话又说回来,pulseaudioalsa这段时间内(和一起)都能正常工作,而且我audacity经常使用。


你好 您不想以root用户身份运行alsamixer。您会搞砸您的权限。参见unix.stackexchange.com/questions/265043。您可以提供以用户身份运行的alsamixer的屏幕截图吗?确保选择您的声卡。
Faheem Mitha

将所有内容取消静音,然后将所有内容最大化alsamixer
Faheem Mitha

@FaheemMitha-谢谢,如果我在中明确选择了声卡,我会得到所有的规格alsamixer。现在,我添加了屏幕截图并确认了我的pulseaudio权限(我甚至重新启动了计算机,以确保以root用户身份登录不会影响某些操作)。现在,我尝试与一起玩更多游戏pulseaudio
grochmal

@FaheemMitha-即使一切都保持静音Beep。不开心
grochmal

1
@FaheemMitha-嘿,里面没有声音了pavucontrol。解决了。我真的很想知道这是怎么发生的,我有一台机器使用完全相同的英特尔HDA模块,相同的操作系统(具有相同的更新),相同的alsa和相同的pulseaudio;并没有在那里静音。在pavucontrol两台计算机上均未安装您的注释之前(archlinux pavucontrol作为单独的软件包)。
grochmal

Answers:


9

根据与张贴者的对应关系(请参阅评论),结果发现声卡内部被静音了pavucontrol


1
+1出现相同的问题,打开pavucontrol并单击向右箭头,直到“输入设备”选项卡突出显示,然后单击默认情况下已激活的音量图标(静音)。
贾斯汀·布尔

我可能应该补充一点,我正在使用GNOME 3,只是现在才注意到声音设置中有一个静音开关,也可以使用该开关(不需要pavucontrol)。
贾斯汀·布尔

2

我还遇到了麦克风无法在Arch Linux上工作的问题。在我的情况下,“输入设备”下没有显示任何设备(显示pavucontrol“没有可用的输入设备”)。遵循Arch Wiki的以下建议为我修复了该问题:

  1. 运行arecord -lhw:CARD,DEVICE表示法找到麦克风的ID ,例如,如果输出是

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

那么id是 hw:0,0

  1. 添加行load-module module-alsa-source device=hw:0,0/etc/pulse/default.pa

  2. pulseaudio -k; pulseaudio -D 重新启动pulseaudio并激活更改。

如果有人遇到与我相同的问题,我将其保留在此处。


1

1.rm -rf〜/ .config /脉冲

2.rm -rf / etc / pulse /

3.将USB耳机插入笔记本电脑

4.pacman -S pulseaudio pavucontrol

  1. 在/etc/pulse/default.pa中添加“ load-module module-loopback delay_msec = 1”

6.重启

6,pavucontrol

好。


这工作了。我只遵循第4步,然后重新启动。它他妈的工作。非常感谢你
没有人

0

此链接使我感到混乱PulseAudio未检测到麦克风

确定麦克风的卡号和设备号:

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

然后,编辑/etc/pulse/default.pa并插入指定您设备的加载模块行,如下所示:

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

最后,重新启动pulseaudio以应用新设置:

$ pulseaudio -k ; pulseaudio -D

如果一切正常,现在运行pavucontrol时(在“输入设备”选项卡下),您应该会看到麦克风显示。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.