原来的问题

原来的问题

我有一个 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 从头开始​​安装,包括使用主目录和所有内容创建一个新用户,并复制旧的数据仅有的。这意味着仅当您知道配置文件的用途时才复制它们。

所有选项都有点烦人,但我想这是没有办法的......

相关内容