ALSA无法识别板载声卡

在Mythbuntu 12.04.2中,ALSA(1.0.25 + dfsg-0ubuntu1.1)无法识别A88GMV板载AMD 880 HD Audio(卡)。

该系统已完全更新。

该系统还包含NVIDIA显卡( GeForce 8400 GS )和NVIDIA HD Audio控制器(rev a1)以及主板板载HD 4250图形控制器(在BIOS中禁用)。

该系统以前通过HDMI连接到音频放大器,然后连接到高清显示器。

在丢失高清显示器后,NVIDIA 8400通过DVI连接到华硕VW246H ,并且音频被更改为连接到板载迷你插孔5.1外部扬声器。 BIOS音频设置为AMD 880 HD Audio(禁用 – 在板载HDMI上设置音频输出)和HD Audio Controller(启用 – 先前已禁用)。 这些设置适用于双启动Win7。

运行Mythbuntu 12.04.2时没有音频。 ALSA(alsamixer)仅报告了NVIDIA 8400 GS内置音频(HDA-intel),而不是ATI板载AMD 880 HD Audio。

lspci报告两张牌:

 00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 3c) 00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller 00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) 00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller 00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge 00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller ... 01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 8400 GS] (rev a2) 01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1) 

来自ALSA Information Script v 0.4.61

 !!Soundcards recognised by ALSA !!----------------------------- 0 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xfcf7c000 irq 19 !!PCI Soundcards installed in the system !!-------------------------------------- 00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) 01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1) 

也:

 !!Modprobe options (Sound related) !!-------------------------------- snd-atiixp-modem: index=-2 snd-intel8x0m: index=-2 snd-via82xx-modem: index=-2 snd-usb-audio: index=-2 snd-usb-caiaq: index=-2 snd-usb-ua101: index=-2 snd-usb-us122l: index=-2 snd-usb-usx2y: index=-2 snd-cmipci: mpu_port=0x330 fm_port=0x388 snd-pcsp: index=-2 snd-usb-audio: index=-2 snd-hda-intel: probe_mask=0x102 

并且:

 !!ALSA/HDA dmesg !!-------------- [ 23.442280] cfg80211: 2474000 KHz - 2494000 KHz @ 20000 KHz), (600 mBi, 2000 mBm) [ 23.447440] snd_hda_intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [ 23.447444] hda_intel: codec_mask forced to 0x2 [ 23.457977] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' -- [ 26.316757] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 26.480043] hda-intel: azx_get_response timeout, switching to polling mode: last cmd=0x100f0000 [ 27.332070] wlan0: authenticate with 00:18:f8:f9:63:74 (try 1) -- [ 27.350482] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 27.488061] hda-intel: Codec #1 probe error; disabling it... [ 27.520036] hda-intel: no codecs initialized [ 27.520142] snd_hda_intel 0000:00:14.2: PCI INT A disabled [ 27.520343] snd_hda_intel 0000:01:00.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19 [ 27.520346] hda_intel: Disabling MSI [ 27.520347] hda_intel: codec_mask forced to 0x2 [ 27.520366] snd_hda_intel 0000:01:00.1: setting latency timer to 64 [ 27.760052] HDMI status: Codec=1 Pin=5 Presence_Detect=0 ELD_Valid=0 [ 27.760139] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:02.0/0000:01:00.1/sound/card0/input7 [ 27.960225] init: mythtv-backend main process (1964) terminated with status 127 

其他信息:

 !!Kernel Information !!------------------ Kernel release: 3.2.0-40-generic Operating System: GNU/Linux Architecture: x86_64 Processor: x86_64 SMP Enabled: Yes !!ALSA Version !!------------ Driver version: 1.0.24 Library version: 1.0.25 Utilities version: 1.0.25 !!Loaded ALSA modules !!------------------- snd_hda_intel !!Sound Servers on this system !!---------------------------- Pulseaudio: Installed - Yes (/usr/bin/pulseaudio) Running - Yes ESound Daemon: Installed - Yes (/usr/bin/esd) Running - No 

完整的ALSA信息脚本v 0.4.61报告在这里 。 ( http://pastebin.com/EAaDqrFE )

网络搜索建议用OSS替换ALSA或编辑/etc/modprobe.d/alsa-base.conf,我不赞成这两种情况。 (见这个 )

好吧,我解决了问题,这就是我做到的

  1. 为Mythbuntu 12.04.2下载并刻录iso
  2. 引导系统更改BIOS以使用内置video并从DVD(CD)启动
  3. 删除NVIDIA图形适配器
  4. 插入将12.04.2 iso刻录到DVD中
  5. 重新安装12.04.2
  6. 杀死自动打开/失败的Mytbuntu前端(由于数据库版本不匹配)
  7. 使用Mytbuntu Control Center从安装默认值0.25将版本设置为0.26并启用repositries。
  8. 执行大规模的apt-get update / dist-upgrade
  9. 使用alsamixer启用内置音频(HDA-ATI-SB带有Reactek ALC887芯片。)
  10. 使用PulseAudio VolumeContol设置设备和音量(设备0是音频)
  11. 完成安装并设置前端设置。
  12. 关闭并重新安装NVIDIA图形适配器。
  13. 重新启动,更改了BIOS中的图形适配器选择,并为NVIDIA安装了驱动程序。

注意:奇怪的出现,完全更新的12.04 … fontend / backend使用内核3.2.0-40-generic,而新的前端安装使用内核3.5.0-27-generic。

现在,内置声音(卡)被ALSA识别,音频效果很好。

注意:12.04.2内核与12.04.1不同,请参见此处将12.04.1更新为12.04.2内核。