我有一个 Debian/Windows 10 双启动系统,带有一个共享数据分区,我将其安装在/home
.问题是:如果我在/home
或 上安装任何东西/home/$USERNAME
,声音就不再起作用。 (见下文如何这是行不通的)
我尝试了以下操作:
- 当我安装
/dev/sda5
($DATA
)时/home
,声音中断。 - 当我安装
$DATA
并将/media/$USERNAME/$DATA
其绑定到时/home
,它破裂了。 - 当我像以前一样挂载数据并
$USERNAME
仅绑定子文件夹时,仍然没有声音 /home
当我在或上绑定随机文件夹时/home/$USERNAME
,沉默。- 当我
$DATA
像以前一样安装然后将所有子文件夹(Documents & co.)单独绑定到 时/home/$USERNAME
,一切正常。 - 我还添加了一个新用户并在那里做了同样的事情,该问题也适用于那里。
- 我尝试在 Ubuntu USB 记忆棒上重现该问题,但我无法再登录,因为我弄乱了权限(一切都是 root 且只读)。
- 在我的驱动器上安装较小的 FAT32 分区而不是 NTFS DATA 分区也是如此。
- 在 Debian 之前,我以同样的方式安装了 KUbuntu,但我不记得声音曾经起作用过。
我现在使用该单一工作选项作为解决方法,但我想知道根本原因并修复它。该文件夹的内容/home
对问题没有影响(我之前认为它与一些错误的配置文件有关)。任何人都可以重现该问题吗?
原来的问题
当我安装了某些东西时,系统无法识别任何声卡,即使大多数命令(aplay -l
等)可以像以前一样识别。
我尝试删除我能找到的所有旧配置文件,但没有结果。我尝试完全清除所有与声音相关的内容以重新安装它(并且几乎卸载了我的整个系统),但这也不起作用。
(有点)有趣的事实:在登录屏幕上,一切仍然正常。 Audacity 也可以开箱即用,但我没有测试过其他东西(YouTube、音乐、异星工厂)。在 Windows 和 Ubuntu 上,现场声音也工作得很好,所以这不是问题。
一些输出:
$aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: CX20585 Analog [CX20585 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
$aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
hdmi:CARD=Generic,DEV=0
HD-Audio Generic, HDMI 0
HDMI Audio Output
dmix:CARD=Generic,DEV=3
HD-Audio Generic, HDMI 0
Direct sample mixing device
dsnoop:CARD=Generic,DEV=3
HD-Audio Generic, HDMI 0
Direct sample snooping device
hw:CARD=Generic,DEV=3
HD-Audio Generic, HDMI 0
Direct hardware device without any conversions
plughw:CARD=Generic,DEV=3
HD-Audio Generic, HDMI 0
Hardware device with all software conversions
default:CARD=Generic_1
HD-Audio Generic, CX20585 Analog
Default Audio Device
sysdefault:CARD=Generic_1
HD-Audio Generic, CX20585 Analog
Default Audio Device
front:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
Front speakers
surround21:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
Direct sample mixing device
dsnoop:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
Direct sample snooping device
hw:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
Direct hardware device without any conversions
plughw:CARD=Generic_1,DEV=0
HD-Audio Generic, CX20585 Analog
Hardware device with all software conversions
$speaker-test
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory
$(ps axu | grep pulse)
Debian-+ 692 0.0 0.1 889324 11152 ? Ssl 12:47 0:00 /usr/bin/pulseaudio --daemonize=no
piegames 3742 0.0 0.0 12784 960 pts/0 S+ 13:31 0:00 grep pulse
$aplay somefile.wav
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
aplay: main:788: audio open error: No such file or directory
$paplay somefile.wav
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
pavucontrol
说与 PulseAudio 的连接失败并建议手动启动它。start-pulseaudio-x11
返回相同paplay
Alsamixer 工作正常,只是默认设备没有有用的设置,但切换设备会输出它应该输出的内容。
系统设置只是告诉我们没有找到任何设备;所有选项均呈灰色。
答案1
诊断:
Debian-+
您正在与主用户帐户 ( )不同的用户帐户( ,可能被截断)下运行 Pulseaudio 服务器piegames
。 Pulseaudio 应该以与产生声音的用户相同的用户身份运行。因此,在启动时,Pulseaudio 服务器会获取所有 ALSAhw
设备,而这些设备只能由一个进程打开,这就是为什么在运行等时无法通过 ALSA 获取声音。aplay
另一方面,Pulseaudio 拒绝来自以下设备的连接:不同的用户,这就是为什么您无法通过 Pulseaudio 获得声音的原因。
选项:
人们可以尝试完全禁用 Pulseaudio,但由于您似乎想使用 Gnome,这可能会引起相当大的头痛。
另一个选项是修复您的桌面登录过程,并确保 Pulseaudio 以与登录用户相同的用户身份启动。我对 Debian/Gnome 登录过程不够熟悉,无法给出分步说明描述。查看您的显示管理器(gdm
?)、登录过程以及涉及的配置文件,找出它启动 Pulseaudio 的位置,并修复需要修复的内容。很可能有一些配置文件把/home
事情搞砸了,但不可能猜测是哪些。
为了确保旧版 ALSA 应用程序能够与 Pulseaudio 配合使用,您需要
pcm.!default pulse
ctl.!default pulse
要么在~/.asoundrc
要么/etc/asound.conf
中,因此声音通过兼容层路由到 Pulseaudio。这应该已由发行版设置,我不知道您的情况出了什么问题。
由于您需要深入了解系统的内部,因此您将有要了解 Pulseaudio 和 ALSA 之间的区别以及更多信息,请开始阅读......
在已经存在的主目录上安装不同的发行版有时效果并不好。
或者,做一个完全的Debian 从头开始安装,包括使用主目录和所有内容创建一个新用户,并复制旧的数据仅有的。这意味着仅当您知道配置文件的用途时才复制它们。
所有选项都有点烦人,但我想这是没有办法的......