ALSA 无法识别板载声卡

ALSA 无法识别板载声卡

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

该系统已全面更新。

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

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

高清显示器丢失后,NVIDIA 8400 连接到华硕VW246H通过 DVI 连接,音频改为连接到板载迷你插孔 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 音频。

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 信息脚本 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

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

  1. 下载并刻录 Mythbuntu 12.04.2 的 iso
  2. 启动系统以更改 BIOS 来使用内置视频并从 DVD(CD)启动
  3. 删除 NVIDIA 图形适配器
  4. 将刻录的 12.04.2 iso 插入 DVD
  5. 重新安装 12.04.2
  6. 终止自动打开/失败的 Mytbuntu 前端(由于数据库版本不匹配)
  7. 使用 Mytbuntu 控制中心将版本从安装默认版本 0.25 设置为 0.26 并启用存储库。
  8. 执行大量 apt-get update/dist-upgrade
  9. 使用 alsamixer 启用内置音频(带有 Reactek ALC887 芯片的 HDA-ATI-SB)。
  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 内核。

相关内容