690G的主板真的就不能有声音了么

CPU/显卡/打印机/USB设备等硬件问题
afteryou
帖子: 9
注册时间: 2008-03-18 0:24

690G的主板真的就不能有声音了么

#1

帖子 afteryou » 2008-08-29 23:16

从7.10到8.04
不管怎么折腾 始终还是没出过声音
:cry:
看来ubuntu只能拿来写写代码 做做东西了
想听音乐看电影还是去windows好了
头像
xzzgd
帖子: 116
注册时间: 2006-04-30 19:49

#2

帖子 xzzgd » 2008-08-30 9:32

我也是690g的板,我都是自己下载alsa-driver改一下代码,然后编译安装的。具体过程我是看的linuxsir上某位大侠帖子上的
头像
xzzgd
帖子: 116
注册时间: 2006-04-30 19:49

#3

帖子 xzzgd » 2008-08-30 9:33

内容如下
花了三天时间,终于把主板集成声卡给装好了,不敢独享,给需要的朋友们。
解决的方法还是很简单,只不过中间走了很多的弯路,还进了一个死胡同。
Part I 有一些分析过程,其实也是很简单的。如果你只是想知道应该怎么做,可以直接跳到ParII
Part II 说明了修改步骤。

Part I
在实验室的时候,电脑的集成声卡很差,有爆音,还有杂声。所以就在TAOBAO上淘了一块aureal的au8820。这块声卡,很好找,Debian装好的时候,自带的ALSA就能找到。可是主板集成的声卡,死活也找不到。

我用lspci明明能看到这个device
#lspci
00:00.0 Host bridge: ATI Technologies Inc Unknown device 7910
00:01.0 PCI bridge: ATI Technologies Inc Unknown device 7912
00:07.0 PCI bridge: ATI Technologies Inc Unknown device 7917
00:12.0 IDE interface: ATI Technologies Inc SB600 Non-Raid-5 SATA
00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)
00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)
00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)
00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)
00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)
00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)
00:14.0 SMBus: ATI Technologies Inc SB600 SMBus (rev 13)
00:14.1 IDE interface: ATI Technologies Inc SB600 IDE
00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge
00:14.4 PCI bridge: ATI Technologies Inc SB600 PCI to PCI Bridge
00:14.5 Multimedia audio controller: ATI Technologies Inc SB600 AC97 Audio
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc Unknown device 791e
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E PCI Express Fast Ethernet controller (rev 01)
03:06.0 Multimedia audio controller: Aureal Semiconductor Vortex 1 (rev 02)

我用alsaconf,可以找到au8820,可是找不到集成的声卡。所以,先看一下alsaconf的机制是什么样的。

所有加载的pci driver都会在/lib/modules/2.6.18-4-amd64/modules.pcimap这个文件中记录。(这里的2.6.18-4-amd64是和系统相关的)
如下:
more /lib/modules/2.6.18-4-amd64/modules.pcimap
# pci module vendor device subvendor subdevice class class_mask driver_data
BusLogic 0x0000104b 0x00001040 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0
BusLogic 0x0000104b 0x00000140 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0
BusLogic 0x0000104b 0x00008130 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0
其中就包括了,这个driver能作用的device的vendor和device。
alsaconf就是根据这两个参数来找的。
可以看到,对于au8820在modules.pcimap里有一行

#cat /lib/modules/2.6.18-4-amd64/modules.pcimap | grep -i au
snd-au8820 0x000012eb 0x00000001 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0

#lspci -nn|grep -i
可以看到
00:14.5 Multimedia audio controller [0401]: ATI Technologies Inc SB600 AC97 Audio [1002:4382]
03:06.0 Multimedia audio controller [0401]: Aureal Semiconductor Vortex 1 [12eb:0001] (rev 02)
vendor和device都是相同的。也就是说,这个device可以用snd-au8820这个driver来驱动

集成声卡的[1002:4382],在/lib/modules/2.6.18-4-amd64/modules.pcimap这个文件里找不到相应的driver.

这下好了,到[url]www.alsa-project.org/[url]下了最新了driver.
alsa-driver-1.0.14rc4.tar.bz2
解压后进目录
用grep -R 4382 *
还是找不到对这个device的支持。于是我想到,应该只要把这个device的加到某个驱动里,就可能用了。事实证明,这是对的,最后,我也是这样做的。
不过,就是这个时候,犯了一个大错,就多花了一天。:(

因为网上找到的SB600都说是用snd-hda-intel这个驱动。所以,改动了snd_hda_intel.c这个文件。
编译后加载上去。alsaconf真找到了。可是还是没有声音出来。又上网找了半天,都没有找到想要的结果。看来只能自己解决了。

.configure的时候加上--with-debug=detect
重新编译,加载。加载的时候显示出了一个错误:
no codec found
往回找,原来是读一个叫STATESTS的register的时候,读的数据是0x0。
加了几行代码,读出0x00~0xff的所有的register,并不是所有的都是0x00,看来读的过程还是没有问题,只是数据有问题。我也没有datasheet,也没有办法进一步调试了。

在下进了死胡同了,在网上东撞西撞的。无意中发现hda-intel是要SB600 AZALIA的驱动。而我的,是AC97。难道是开始就选错了?晕死了,重新来吧。(AZALIA是AC97的升级)

发现ATIIXP是用的AC97的CODEC。
修改atiixp.c后,编译,加载。果然成了。

Part II
下面的操作都要在root下完成
0.
这个修改是否支持你的主板?如果你是onda a69g,那一定可以用。
#lspci -nn
如果你的集成声卡也是[1002:4382],那么就可以用。

1.
上www.alsa-project.org下载最新的driver,utilities
ftp://ftp.alsa-project.org/pub/drive....14rc4.tar.bz2
ftp://ftp.alsa-project.org/pub/utils....14rc4.tar.bz2
解压
#tar jxf alsa-driver-1.0.14rc4.tar.bz2
#tar jxf alsa-utils-1.0.14rc4.tar.bz2

2.装备utilities
#cd alsa-utils-1.0.14rc4
#./configure && make && make install

3.修改atiixp.c
#cd ../alsa-driver-1.0.14rc4
#vi alsa-kernel/pci/atiixp.c
在290行左右有一个结构
static struct pci_device_id snd_atiixp_ids[] = {
{ 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
{ 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */
{ 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
{ 0, }
};
加一行,成如下
static struct pci_device_id snd_atiixp_ids[] = {
{ 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
{ 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */
{ 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
{ 0x1002, 0x4382, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB600 */
{ 0, }
};
保存退出(用:wq)

3.
编译,安装
# ./configure --with-cards=atiixp --with-sequencer=yes ; make ; make install


4.
#modprobe snd-atiixp

5.
#alsaconf

6.
#alsamixer
调节声音(注意的是,声卡是静音的,要打开)

7.
#alsactl store
头像
xzzgd
帖子: 116
注册时间: 2006-04-30 19:49

#4

帖子 xzzgd » 2008-08-30 9:35

当然我是下载的alsa-driver 1.0.17然后hack下代码安装的
完全没有问题,希望可以帮到你 :lol:
头像
laowu2141
帖子: 530
注册时间: 2007-06-19 11:25
系统: kubuntu 13.04
来自: 北京
联系:

#5

帖子 laowu2141 » 2008-09-01 20:42

我也是690G的主板,装上系统直接就有声音的,但是显示驱动太烂了!
xihaoabc
帖子: 11
注册时间: 2008-09-03 0:51

#6

帖子 xihaoabc » 2008-09-03 1:41

xzzgd 写了:当然我是下载的alsa-driver 1.0.17然后hack下代码安装的
完全没有问题,希望可以帮到你 :lol:
root@xihao-desktop:/home/xihao/1/alsa-utils-1.0.14rc4# alsaconf
-bash: alsaconf: command not found
root@xihao-desktop:/home/xihao/1/alsa-utils-1.0.14rc4# alsactl store
alsactl: save_state:1251: No soundcards found...
root@xihao-desktop:/home/xihao/1/alsa-utils-1.0.14rc4#
上次由 xihaoabc 在 2008-09-06 17:02,总共编辑 1 次。
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

#7

帖子 jarryson » 2008-09-03 13:17

我这里也是直接就有声音了啊。。。可以试试看8.10。alsa没有道理到现在还不支持690G
头像
xzzgd
帖子: 116
注册时间: 2006-04-30 19:49

#8

帖子 xzzgd » 2008-09-04 11:52

是alsa不支持,当然只要修改一点代码就可以了
头像
xzzgd
帖子: 116
注册时间: 2006-04-30 19:49

#9

帖子 xzzgd » 2008-09-04 12:17

我简化一下过程啊
1) 终端运行
# lspci -nn|grep audio
如果显示
00:14.5 Multimedia audio controller [0401]: ATI Technologies Inc SB600 AC97 Audio [1002:4382]
特别是最后是[1002:4382]就可以往下看了。
2)下载ftp://ftp.alsa-project.org/pub/driver/a ... 17.tar.bz2
解压缩,进入文件夹/alsa-driver-1.0.17/alsa-alsa-kernel/pci/,用文本编辑器打开atiixp.c,在290行左右有
{ 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
{ 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */
{ 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
在下面添加一行{ 0x1002, 0x4382, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB600 */
变成
{ 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
{ 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */
{ 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
{ 0x1002, 0x4382, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB600 */
保存退出
在终端里/alsa-driver-1.0.17文件夹下运行

代码: 全选

# ./configure --with-cards=atiixp --with-sequencer=yes ; make ; make install 
3)

代码: 全选

#modprobe snd-atiixp 
4)

代码: 全选

#alsaconf
找到声卡,搞定。
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

#10

帖子 HuntXu » 2008-09-04 12:17

太有钱,太新,太先进... :lol:
HUNT Unfortunately No Talent...
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

#11

帖子 jarryson » 2008-09-04 13:41

690G还新呢!我这里怎么都还好没有遇到问题。。。
xihaoabc
帖子: 11
注册时间: 2008-09-03 0:51

#12

帖子 xihaoabc » 2008-09-05 0:14

555
下载 速度 好慢阿!!!
不过 00:14.5 Multimedia audio controller [0401]: ATI Technologies Inc SB600 AC97 Audio [1002:4382]
这个完全一样
今天晚上 弄不出声音不睡觉了!!

十分感谢楼主细心的教导!
xihaoabc
帖子: 11
注册时间: 2008-09-03 0:51

#13

帖子 xihaoabc » 2008-09-05 0:41

install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
install: 无法创建一般文件 “/usr/include/sound”: Permission denied
make: *** [install-headers] 错误 1
xihaoabc
帖子: 11
注册时间: 2008-09-03 0:51

#14

帖子 xihaoabc » 2008-09-05 0:41

还是不行阿!!!
太郁闷了!
xihaoabc
帖子: 11
注册时间: 2008-09-03 0:51

#15

帖子 xihaoabc » 2008-09-05 0:46

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.04.1
Release: 8.04
Codename: hardy
root@any-desktop://home/any/alsa-driver-1.0.17# cat /etc/redhat-release
cat: /etc/redhat-release: No such file or directory
root@any-desktop://home/any/alsa-driver-1.0.17# lspci
00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge
00:02.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Graphics Port 0)
00:07.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 3)
00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA
00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)
00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)
00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)
00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)
00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)
00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)
00:14.1 IDE interface: ATI Technologies Inc SB600 IDE
00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:14.5 Multimedia audio controller: ATI Technologies Inc SB600 AC97 Audio
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon X1650 Series
01:00.1 Display controller: ATI Technologies Inc Radeon X1650 Series (Secondary)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E PCI Express Fast Ethernet controller (rev 01)
03:06.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 61)
03:06.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 61)
03:06.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 63)
回复