wall_john 发表于 2005-8-21 18:32:31

“ATi出了fglrx驱动我的9700SE不支持”才怪

“ATi出了fglrx8.12.10我的9700SE不支持”这句话也不对,
我的也是9700SE,看看下面附件中的照片:
# lspci | grep ATI
01:00.0 VGA compatible controller: ATI Technologies Inc RV350
这是显示PCI设备

# lspci -n
00:00.0 Class 0600: 8086:3340 (rev 21)
00:01.0 Class 0604: 8086:3341 (rev 21)
00:1d.0 Class 0c03: 8086:24c2 (rev 03)
00:1d.1 Class 0c03: 8086:24c4 (rev 03)
00:1d.2 Class 0c03: 8086:24c7 (rev 03)
00:1d.7 Class 0c03: 8086:24cd (rev 03)
00:1e.0 Class 0604: 8086:2448 (rev 83)
00:1f.0 Class 0601: 8086:24cc (rev 03)
00:1f.1 Class 0101: 8086:24ca (rev 03)
00:1f.3 Class 0c05: 8086:24c3 (rev 03)
00:1f.5 Class 0401: 8086:24c5 (rev 03)
00:1f.6 Class 0703: 8086:24c6 (rev 03)
01:00.0 Class 0300: 1002:4e52            <--这个显示PCI设备的CHIPID 4e52,这个就是9700SE
02:09.0 Class 0c00: 104c:8023
02:0a.0 Class 0200: 10ec:8139 (rev 10)
02:0b.0 Class 0607: 1217:7114 (rev 20)
02:0b.1 Class 0607: 1217:7114 (rev 20)
02:0b.2 Class 0880: 1217:7110
02:0d.0 Class 0280: 8086:1043 (rev 04)

wall_john 发表于 2005-8-21 18:45:58

mobility ati 9700se的补丁和其他东西

fglrx-8.14.13.tar.gz中有:
fglrx_6_8_0-8.14.13-fc4.patch
libfglrx_ip.a.GCC3

一、安装ATI官方驱动包
先从ATI官方下ati-driver-installer-8.14.13.run,安装然后

二、编译安装内核fglrx.ko模块
把fglrx_6_8_0-8.14.13-fc4.patch考到/lib/modules/fglrx/build_mod/中
patch -p1 < fglrx_6_8_0-8.14.13-fc4.patch
把这个libfglrx_ip.a.GCC3覆盖/lib/modules/fglrx/build_mod/中原来的,
sh make.sh
cd ..
sh make_install.sh

三、fglrxconfig生成xorg.conf文件,修改xorg.conf文件
在/etc/X11/xorg.conf中:
Section "Device"
    Identifier                        "ATI Graphics Adapter"
    Driver                              "fglrx"
这个后面添加,下面语句
    ChipID                               0x4e50
强制制订芯片ID,原来的为0x4e52,0x4e50是mobility ati 9600的。

lophyxp 发表于 2005-8-21 22:14:30

非常感谢wall_john,终于知道怎么正确安装fglrx了。
但是还有一个地方不明白。
就是
Section "modules"怎么配置?
Load "dri"
Load "glx"
Load "GLcore"
这三项都要保留么?还是只留一个
Load “glx"
其他的都注释掉?

demonlj 发表于 2005-8-21 22:44:30

dri应该是要注释掉的

jiangtao9999 发表于 2005-8-21 22:45:52

dri 好像不是必须注释掉的吧?
我曾经的 XF86Config(和 xorg.conf 一个意思)
http://www.magiclinux.org/people/jiangtao9999/XF86Config

wall_john 发表于 2005-8-21 23:19:01

三个都留着也没问题,这两个必须要
Load "dri"   #libdri.a   Direct Rendering Infrastructure
Load "glx"   #libglx.aopengl

drm <-> dri <-> glx
根据我的理解glx是处理opengl等3D的实现模块,dri是直接渲染机制是3D数据
直接存取到显卡显存的接口,负责与内核中的drm(direct rendering manager)
管理模块衔接这样子。drm是实现显卡显存设备的fglrx.ko就是有内核中的drm
调用它开一个设备
# ls /dev/dri
card0
dri就通过该/dev/dri/card0为中介为glx存取数据。

Load "GLcore" 这个我都不知道是什么?

樱家冢 发表于 2005-8-22 00:01:41

dri和GLcore都要注释掉吧?留下glx就行了。

wall_john 发表于 2005-9-3 02:15:59

关于fglrx-8.16.20驱动支持9700se

因为/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC3(用于gcc3)和
/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC3(用于gcc4)中chipID
不支持9700se的0x4e52,所以要想办法用9600的0x4e50替代,即用修改
libfglrx_ip.a.GCC3(或libfglrx_ip.a.GCC4)中9600的chipid为9700se
的chipID方法,使编译后的fglrx.ko的内核模块能够支持9700se,修改方法
如下:
用khexedit打开libfglrx_ip.a.GCC3(或libfglrx_ip.a.GCC4),查找文件中
0x4e50所在替换为0x4e52即可,因为在libfglrx_ip.a.GCC3(或
libfglrx_ip.a.GCC4),0x4e50是逆序排列即高字节在前,所以搜索时应该查找
16进制的504e然后将其替换为524e,而且chipID应该位于文件末端,所以是
将该文件中最后一个504e替换为524e,之后保存文件重新编译即可.
不过这个新的驱动好象与8.14.13没什么大区别,除了在2.6.12上编译不要打
补丁外.

wall_john 发表于 2005-9-3 03:31:36

X Windows 模块关系图

X Windows 模块关系图

demonlj 发表于 2005-9-3 05:18:27

看来就感觉一个"烦"字 :wink:
页: [1]
查看完整版本: “ATi出了fglrx驱动我的9700SE不支持”才怪