升级到 Debian Jessie 后找不到声卡

升级到 Debian Jessie 后找不到声卡

上个月将 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-dkmsoss4-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)。

相关内容