我刚刚在我的 Debian SID 计算机上进行了 dist 升级,声音消失了。
我可以在 root 中播放音频文件,但不能以普通用户的身份播放。我已经检查过我在“音频”组中。我已经检查过运行alsamixer是否有任何内容被静音,但所有线路都已启动并正在运行。
这是我在计算机上的音频输出:
$ lspci | grep Audio
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)
Run Code Online (Sandbox Code Playgroud)
我有一个未插入的 HDMI 输出(NVIDIA 控制器)。我的音频接头插在我的英特尔控制器上。我在运行alsamixer时可以看到这个驱动程序,但在pavucontrol输出设备中只能看到我显卡的 HDMI 输出。
列出我的音频接收器时,我只得到一个空设备:
$ pacmd list-sinks
1 sink(s) available.
* index: 2
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
state: IDLE
suspend cause:
priority: 1000
volume: front-left: 56362 / 86% / -3,93 dB, front-right: 55706 / 85% / -4,23 dB
balance -0,01
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 5,63 ms
max request: 6 KiB
max rewind: 6 KiB
monitor source: 2
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stéréo
used by: 0
linked by: 1
configured latency: 40,00 ms; range is 0,50 .. 2000,00 ms
module: 20
properties:
device.description = "Sortie factice"
device.class = "abstract"
device.icon_name = "audio-card"
Run Code Online (Sandbox Code Playgroud)
我不是很了解 Debian 中的声音系统是如何工作的,但我想我明白我的普通用户没有访问 Intel 芯片的权利。从这里开始,我被困住了,无法真正找出该怎么做......
我设法通过在 alsamixer 中禁用自动静音来恢复声音。在系统更新期间,此设置已以某种方式更改。
但是重新启动后,问题又回来了,但自动静音仍然关闭。
感谢 dirkt 的回答,我想我已经找到了这个问题的根源:当以普通用户和 root 用户身份运行aplay -L 时,我注意到了一些差异:
$ aplay -L
default
Playback/recording through the PulseAudio sound server
sysdefault:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
$ sudo aplay -L
default:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
sysdefault:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
Run Code Online (Sandbox Code Playgroud)
以简单用户身份运行时,默认卡似乎不一样。作为普通用户选择sysdefault而不是默认卡时,我可能会听到一些声音。
$ aplay -D sysdefault sound.wav
Run Code Online (Sandbox Code Playgroud)
但现在,我有点卡住了。我想我已经查明了问题的根源,但不知道如何解决它...
小智 7
我通过运行为我解决了这个问题:
sudo apt-get remove --purge timidity
Run Code Online (Sandbox Code Playgroud)
请确保这只会消除timidity和timidity-daemon。据我了解,守护进程在启动时会获取一些资源并阻止其他服务找到声卡。我认为胆怯与 MIDI 文件有关,因此请确保在卸载软件包时不需要它,并确保您知道要卸载的内容。
希望这可以解决某些用户的问题。解决上述问题后,您可能希望将来重新安装 timidity。