|
|

楼主 |
发表于 2008-3-5 23:12:53
|
显示全部楼层
Post by tpxc;1822780
我也是SB live的卡,和你一模一样没有碰到问题.
我直接把模块编译进内核的
可能我的卡有问题,目前不清楚。
内核版本: sys-kernel/gentoo-sources-2.6.23-r8
多次配置未能解决问题,发现ALSA可以单独打开调试信息,试试看。
配置内核,开启全部ALSA调试功能,在死机前最后输出几行如下:
- ACPI: PCI Interrupt 0000:02:03.0[A] -> GSI 19(level, low) -> IRQ 19
- ALSA sound/pci/emu10k1/emu10k1_main.c : 1638 : vendor=0x1102, device=0x2, [b][color="Red"]subsystem_vendor_id=0x11011102[/color][/b], subsystem_id=0x1101
- ALSA sound/pci/emu10k1/emu10k1_main.c : 1669 : Sound card name = SB Live [unknown], vendor=0x1102, device=0x2, subsystem=0x1101102
复制代码
声卡识别不正确,本来内核已经有支持SB0220的驱动,但是读出来的声卡类型是unknown.
sound/pci/emu10k1/emu10k1_main.c : 1638 行附近,发现subsystem_vendor_id这个值是从声卡读出来的。
[color="Red"]subsystem_vendor_id=0x11011102 对应于下面snd_emu_chip_details的subsystem,
从PCI配置寄存器0x2c~0x2f读得
0x2c~0x2d subsystem_vendor_id
0x2c~0x2d subsystem_id
下面结构定义的subsystem为 subsystem_vendor_id + subsystem_id
sound/pci/emu10k1/emu10k1_main.c 中有关SB0220的定义如下:
- static struct snd_emu_chip_details emu_chip_details[] = {
- /* Tested by ALSA bug#1680 26th December 2005 */
- /* note: It really has SB0220 written on the card. */
- {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80661102,
- .driver = "EMU10K1", .name = "SB Live 5.1 Dell OEM [SB0220]",
- .id = "Live",
- .emu10k1_chip = 1,
- .ac97_chip = 1,
- .sblive51 = 1} ,
- /* Tested by Thomas Zehetbauer 27th Aug 2005 */
- {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80651102,
- .driver = "EMU10K1", .name = "SB Live 5.1 [SB0220]",
- .id = "Live",
- .emu10k1_chip = 1,
- .ac97_chip = 1,
- .sblive51 = 1} ,
- {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x100a1102,
- .driver = "EMU10K1", .name = "SB Live 5.1 [SB0220]",
- .id = "Live",
- .emu10k1_chip = 1,
- .ac97_chip = 1,
- .sblive51 = 1} ,
- /*[Article Author]系统unknown的创新声卡定义*/
- {.vendor = 0x1102, .device = 0x0002,
- .driver = "EMU10K1", .name = "SB Live [Unknown]",
- .id = "Live",
- .emu10k1_chip = 1,
- .ac97_chip = 1,
- .sblive51 = 1} ,
- ....
复制代码
lspci -xxx 读出来的配置寄存器subsystem的确是0x11011102
- 02:03.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
- 00: 02 11 02 00 05 00 90 02 0a 00 01 04 00 20 80 00
- 10: 01 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 20: 00 00 00 00 00 00 00 00 00 00 00 00 [color="Red"][b]02 11 01 11[/b][/color]
- 30: 00 00 00 00 dc 00 00 00 00 00 00 00 0a 01 02 14
- 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 06
- e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 02:03.1 Input device controller: Creative Labs SB Live! Game Port (rev 0a)
- 00: 02 11 02 70 05 00 90 02 0a 00 80 09 00 20 80 00
- 10: 01 dc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 20: 00 00 00 00 00 00 00 00 00 00 00 00 02 11 20 00
- 30: 00 00 00 00 dc 00 00 00 00 00 00 00 00 00 00 00
- 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 06
- e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- ....
复制代码
tpxc 确认下声卡型号,如果是一样的,能把你的声卡用
lspci -xxx 读PCI配置寄存器出来参考吗?
声卡:
http://www.soomal.com/gb/001/007/00000005.htm
谢谢 |
|