Archlinux更新后pulseaudio 无端出错。。。

先说下环境:
Backend : ALSA
Desktop Environments: XFCE4
Applications : deadbeef , mplayer , adobe flash player
各应用都不能发声。
首先我一直以为是 ALSA (Advanced Linux Sound Architecture)的问题。到后来发现不是。

首先, alsa 是在 rc.conf中的(添加alsa daemon 到 /etc/rc.conf 的 DAEMONS 部分用于自动在启动时还原混音器设置。)。
alsamixer 查看了下,Master 和 PCM都是开启的( 底下标有MM的通道表示该通道是静音的,而00则表示它是开启的。)
alsamixer 能看到声音信息,这说明module 是正常加载了的。再确认了一下:

1
2
3
4
5
6
7
8
9
10
[admin@huangye ~]$ lsmod | grep "snd_"
snd_hda_codec_hdmi     21777  1
snd_hda_codec_analog    62100  1
snd_hda_intel          20114  5
snd_hda_codec          76464  3 snd_hda_intel,snd_hda_codec_analog,snd_hda_codec_hdmi
snd_pcm                60595  4 snd_hda_codec,snd_hda_intel,snd_hda_codec_hdmi
snd_page_alloc          5869  2 snd_pcm,snd_hda_intel
snd_hwdep               4942  1 snd_hda_codec
snd_timer              15438  1 snd_pcm
snd                    44501  16 snd_timer,snd_hwdep,snd_pcm,snd_hda_codec,snd_hda_intel,snd_hda_codec_analog,snd_hda_codec_hdmi

pulseaudio-alsa 这个包我是安装的了。
ps 列了下进程,发现 pusleaudio 也是正在运行的。
干掉再来:

1
2
pusleaudio -k
pusleaudio --start

还是不行。

1
speaker-test -c 2

如果正常情况下,应该先听到左边的喇叭播放声音,然后是右边的喇叭出声。(这个声音令我想起了七八十年代的没有收到信号的黑白电视发出的声音)
如果工作,你只需要保存混音器设置:

1
alsactl -f /var/lib/alsa/asound.state store

这会创建 /var/lib/alsa/asound.state 文件,保存 alsamixer 设置。

但是我这儿的情况是,speaker-test 显示正在播放声音,我却什么都听不到,挂上耳机或者放外音都没有声音。
接下来参考 ALSA 的SoundcardTesting测试了一番,还是无果。
查看了 alsa配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[admin@huangye etc]$ cat asound.conf
# Use PulseAudio by default
pcm.!default {
  type pulse
  fallback "sysdefault"
  hint {
    show on
    description "Default ALSA Output (currently PulseAudio Sound Server)"
  }
}

ctl.!default {
  type pulse
  fallback "sysdefault"
}

# vim:set ft=alsaconf:

[admin@huangye modprobe.d]$ cat modprobe.conf.bak
#
# /etc/modprobe.d/modprobe.conf
#

都是OK的。

于是我打开 deadbeef ,尝试着改变播放设备(edit->preferences -> sound ),终于,在切换到
Output plugin :ALSA output plugin
Output device : HDA Intel AD198x Analog Default Ouput device
时,可以正常播放歌曲了,但是默认使用pulseaudio 的mplayer , adobe flash player等依然保持沉默 :arrow:
这说明声卡是完全正常的。是pulseaudio 出问题了。

Archlinux pulseaudio wiki 上的一句话提醒了我:

XFCE4
Applications running under XFCE4 can take advantage of Pulseaudio. To manage Pulseaudio settings can use pavucontrol.

于是我安装了下 pavucontrol ,然后用这个稍微修改了下HDA Intel AD198x Analog声卡的配置,这下OK了。。。

到此,问题解决。


另外,wiki 上还有一句话:

No sound after install
Bad configuration files
If after starting pulseaudio, the system outputs no sound, it may be necessary to delete the contents of ~/.pulse. Pulseaudio will automatically create new configuration files
on its next start.

删除 用户家目录下的 .pulse 配置目录,也是一种尝试。

相关文档wiki:
PulseAudio
Advanced Linux Sound Architecture

更多
No Responses Post a comment

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS