上个月将 Debian Squeeze 升级到 Jessie(通过 Wheezy)后,我发现我在任何地方都没有声音。我浏览了几个 Debian wiki 页面和论坛帖子,并尝试了几个建议的解决方案(部分),但我很早就陷入困境,因为我的操作系统中似乎缺少一些重要的目录和/或(虚拟)文件。对于初学者 :
# alsactl init
alsactl: init:1758: No soundcards found...
但另一方面 :
lspci -nn | grep Audio
00:1b.0 Audio device [0403]: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio [8086:3b56] (rev 05)
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Redwood HDMI Audio [Radeon HD 5000 Series] [1002:aa60]
我没有/etc/modprobe.d/alsa-base.conf
。 modprobe.d 的内容是:
ls /etc/modprobe.d/
dkms.conf modesetting.conf oss4-base_noOSS3.conf
fbdev-blacklist.conf oss4-base.conf oss-compat.conf
local-b43.conf oss4-base_noALSA.conf osspd.conf
也没有/proc/asound
。我已经尝试过了apt-get update
,而且apt-get upgrade
次数多得我记不清了。也尝试过重新配置和重新安装alsa-base
。 (顺便说一句,alsa 软件包已安装。)
最后,昨天我重新编译了一个内核,激活了 alsa,停用了 oss,但结果仍然是一样的:没有声音,alsactl init 找不到声卡。显然,在上个月的安装过程中,声卡和驱动程序被正确识别:
cat /var/log/installer/hardware-summary | grep snd
lspci -knn: Kernel driver in use: snd_hda_intel
lspci -knn: Kernel driver in use: snd_hda_intel
lsmod: snd_hda_codec_conexant 17841 1
lsmod: snd_hda_codec_generic 63181 1 snd_hda_codec_conexant
lsmod: snd_hda_codec_hdmi 45118 1
lsmod: snd_hda_intel 26407 0
lsmod: snd_hda_controller 26646 1 snd_hda_intel
lsmod: snd_hda_codec 104500 5 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
lsmod: snd_hwdep 13148 1 snd_hda_codec
lsmod: snd_pcm 88662 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller
lsmod: snd_timer 26614 1 snd_pcm
lsmod: snd 65244 8 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
lsmod: soundcore 13026 2 snd,snd_hda_codec
/proc/interrupts: 42: 37 39 37 37 PCI-MSI-edge snd_hda_intel
/proc/interrupts: 43: 7 6 7 7 PCI-MSI-edge snd_hda_intel
但还有这个:
cat /dev/sndstat
OSS 4.2 (b 2010/201503091929)GPL (C) 4Front Technologies 1996-2011
Source configration options: --enable-libsalsa=NO --config-vmix=FIXEDPOINT
Audio devices:
0: HD Audio play pcm1 (OUTPUT)
1: HD Audio play pcm2 (OUTPUT)
2: HD Audio rec rec1 (INPUT)
3: HD Audio rec rec2 (INPUT)
4: HD Audio rec rec3 (INPUT)
MIDI devices:
Mixers:
0: High Definition Audio 0x14f15069
History:
/dev/oss/oss_hdaudio0/pcm0.05: pid 782 cmd 'nasd' OUT
/dev/oss/oss_hdaudio0/pcm1.01: pid 782 cmd 'nasd' IN
NOTICE! Device numbers shown above may be wrong.
Use the `ossinfo` command to find out the correct device names.
输出dpkg -l \*oss\*
:
dpkg -l \*oss\*
Gevraagd=(U)onbekend/(I)nstalleren/ve(R)wijderen/(P)wissen/(H)ouden
| Status=Niet/Inst/Conf/Uitgep/halF-geconf/Halfgeïnst/verWacht-trig/Trig-bezig
|/ Fout?=(geen)/heRinst. nodig/ (Status,Fout: hoofdletter=ernstig)
||/ Naam Versie Architectuur Omschrijving
+++-==============-============-============-=================================
ii alsa-oss 1.0.28-1 amd64 ALSA wrapper for OSS applications
un audiooss <geen> <geen> (geen beschrijving beschikbaar)
un dpkg-cross <geen> <geen> (geen beschrijving beschikbaar)
un libsdl1.2-oss <geen> <geen> (geen beschrijving beschikbaar)
un libsdl1.2debia <geen> <geen> (geen beschrijving beschikbaar)
ii libsox-fmt-oss 14.4.1-5 amd64 SoX OSS format I/O library
un mpg123-oss-3dn <geen> <geen> (geen beschrijving beschikbaar)
un mpg123-oss-i48 <geen> <geen> (geen beschrijving beschikbaar)
ii oss-compat 6 amd64 Open Sound System (OSS) compatibi
ii oss4-base 4.2-build201 amd64 Open Sound System - base package
ii oss4-dkms 4.2-build201 amd64 Open Sound System - DKMS module s
un oss4-modules <geen> <geen> (geen beschrijving beschikbaar)
rc osspd 1.3.2-6 amd64 OSS Proxy Daemon: Userland OSS em
un osspd-backend <geen> <geen> (geen beschrijving beschikbaar)
un osspd-pulseaud <geen> <geen> (geen beschrijving beschikbaar)
ii solfege-oss 3.22.2-2 amd64 OSS module for GNU Solfege
(geen beschrijving beschikbaar) = (无可用描述)
在我完全重新安装之前,有人有什么建议吗?
答案1
您已经安装了 OSS4,dkms
这意味着它会根据需要自动为您的内核重建模块。以下应该允许声卡由 ALSA 管理:
删除
oss4-dkms
并oss4-base
:dpkg --purge oss4-dkms oss4-base
检查模块是否已被删除:
dkms status
如有必要,使用
dkms remove
删除剩余的 OSS4 模块(选中/var/lib/dkms
);重启。
重新启动后,/proc/asound/cards
应该列出您的声卡。默认内核linux-image-3.16.0-4-amd64
(假设您正在使用amd64
)也应该在此配置中正常工作;它包含的 OSS 模块在 ALSA 之上提供 OSS 兼容性(借助oss-compat
)。