LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1507|回复: 8

2.6.15内核给ati radeon mobility 9000显卡安装8.22.5驱动后fglrx和fglrx_agp加载成

[复制链接]
发表于 2006-3-8 21:47:38 | 显示全部楼层 |阅读模式
系统rh9,内核2.6.15,重编时只把agpgart支持编入内核,drm和ati芯片都没选。

安装的步骤:
./ati-driver-installer-8.22.5-i386.run
最后提示说:installation complete!
我看到log中说到verify_area未定义。就将ati 驱动源码中verify_area替换成了access_ok。
重新编译链接无错。启动X后lsmod,fglrx和fglrx_agp模块都正常加载了:

  1. [root@YanXT:root](0)# lsmod
  2. Module                  Size  Used by
  3. i810_audio             35472  1
  4. ac97_codec             18432  1 i810_audio
  5. fglrx_agp              51424  0
  6. fglrx                 453740  0
  7. e1000                 106624  0
  8. usbhid                 35808  0
  9. rtc                    11300  0
复制代码

为什么会比原来的驱动多出了一个fglrx_agp.ko?
以下是检测信息:

  1. [root@YanXT:root](0)# fglrxinfo
  2. display: :0.0  screen: 0
  3. OpenGL vendor string: Mesa project: www.mesa3d.org
  4. OpenGL renderer string: Mesa GLX Indirect
  5. OpenGL version string: 1.3 Mesa 4.0.4
复制代码
  1. [root@YanXT:root](0)# dmesg |grep [a,A][g,G][p,P]
  2. ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
  3. Linux agpgart interface v0.101 (c) Dave Jones
  4. Fire GL agpgart support
  5. fglrx_agp is probing for an AGP device
  6. agpgart: Detected an Intel 855PM Chipset.
  7. agpgart: Maximum main memory to use for agp memory: 439M
  8. agpgart: AGP aperture is 256M @ 0x40000000
  9. [fglrx] Loaded fglrx_agp module
  10. [fglrx] From fglrx_agp.ko: Inter module comm successful with fglrx_agp.ko
  11. [fglrx] ATI agpgart module loaded
  12. [fglrx] AGP detected, AgpState   = 0x1f000217 (hardware caps of chipset)
  13. agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
  14. agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
  15. agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
  16. [fglrx] AGP enabled,  AgpCommand = 0x1f000314 (selected caps)
复制代码

  1. [root@YanXT:root](0)# glxinfo |grep direct
  2. direct rendering: No
  3. OpenGL renderer string: Mesa GLX Indirect
复制代码

  1. [root@YanXT:root](0)# dmesg |grep fglrx
  2. fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
  3. [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
  4. [fglrx] module loaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  5. [fglrx] module unloaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  6. [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
  7. [fglrx] module loaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  8. [fglrx] module unloaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  9. [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
  10. [fglrx] module loaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  11. [fglrx] module unloaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  12. [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
  13. [fglrx] module loaded - fglrx 8.22.5 [Feb  7 2006] on minor 0
  14. fglrx_agp is probing for an AGP device
  15. [fglrx] Loaded fglrx_agp module
  16. [fglrx] Testing inter module communication
  17. [fglrx] From fglrx_agp.ko: Inter module comm successful with fglrx_agp.ko
  18. [fglrx] ATI agpgart module loaded
  19. [fglrx] AGP detected, AgpState   = 0x1f000217 (hardware caps of chipset)
  20. [fglrx] AGP enabled,  AgpCommand = 0x1f000314 (selected caps)
  21. [fglrx:firegl_unlock] *ERROR* Process 6301 using kernel context 0
复制代码

ati驱动没有装上,还是mesa啊。这是为什么呢?
恳请各位高手指教,谢谢!

ps:起初我没有改驱动源码(将verify_area替换成access_ok)时。编译只是有警告。启动X时log中显示因为verify_area未定义所以加载fglrx_agp失败,这时虽然fglrx_agp模块没有加载上,但是fglrxinfo和glxinfo却显示ATI驱动信息,3D启动。是这个fglrx_agp模块的问题么?但是注销/重启X时竟然黑屏,只能重启机器,比较郁闷。
后来我想修改make.sh企图跳过编译fglrx_agp,但是会出现新的一大堆问题。暂时放弃了。
不知道怎样控制在启动X时只加载fglrx模块?
发表于 2006-3-8 22:06:17 | 显示全部楼层
root 是否有加速?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 22:27:20 | 显示全部楼层
Post by 终极幻想
root 是否有加速?


不太明白幻想兄的意思,我一直是在root下操作的呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 23:58:08 | 显示全部楼层
这是我没有修改驱动源码时的情况:
即是没有替换verify_area。而且使用InternalAGPGART。

  1. [root@YanXT:root](141)# lsmod
  2. Module                  Size  Used by
  3. fglrx                 453740  10
  4. i810_audio             35472  1
  5. ac97_codec             18432  1 i810_audio
  6. e1000                 106624  0
  7. usbhid                 35808  0
  8. rtc                    11300  0

  9. [root@YanXT:root](0)# fglrxinfo
  10. display: :0.0  screen: 0
  11. OpenGL vendor string: ATI Technologies Inc.
  12. OpenGL renderer string: FireMV 2400 PCI DDR Generic
  13. OpenGL version string: 1.3.1050 (X4.3.0-8.22.5)
复制代码

  1.     Option "UseInternalAGPGART"         "yes"
复制代码


怎么会识别为FireMV 2400?晕了?
这种情况下注销X会黑屏。。。
回复 支持 反对

使用道具 举报

发表于 2006-3-9 03:11:30 | 显示全部楼层
没用过 flgrx 驱动,都是用 radeon 的。:(。。
回复 支持 反对

使用道具 举报

发表于 2006-3-9 11:12:14 | 显示全部楼层
agpgart 必须是 ko ,不能编入 kernel .

fglrx 可能会用自己的 agp .
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-9 12:05:39 | 显示全部楼层
Post by dyhml
agpgart 必须是 ko ,不能编入 kernel .

fglrx 可能会用自己的 agp .


嗯,谢谢dyhml兄的提醒。我之前确实没有试过把agpgart编成ko。
晚上回去试试。这几天试了N多可能。晕死了:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-9 21:58:13 | 显示全部楼层
Post by dyhml
agpgart 必须是 ko ,不能编入 kernel .

fglrx 可能会用自己的 agp .


刚刚按照dyhml兄所说试了一下,好像还是不行啊。
我昨天是完全没有支持agpgart--没有编入内核或者编成模块。
今天直接修改.config,然后make modules。倒是很方便。
然后,修改驱动代码,将verify_area替换,重新编译。启动X。
还是没有安装成功:

  1. OpenGL vendor string: Mesa project: www.mesa3d.org
  2. OpenGL renderer string: Mesa GLX Indirect
  3. OpenGL version string: 1.3 Mesa 4.0.4

  4. direct rendering: No
  5. OpenGL renderer string: Mesa GLX Indirect
复制代码


问题是即使不把agpgart编入内核,在启动X时自己也会自动加载:

  1. Module                  Size  Used by
  2. i810_audio             35472  1
  3. ac97_codec             18432  1 i810_audio
  4. fglrx_agp              51424  0
  5. fglrx                 453740  0
  6. agpgart                30088  1 fglrx
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-9 23:04:43 | 显示全部楼层
以下是我没有改代码加载fglrx_agp失败时的检测信息:

  1. OpenGL vendor string: ATI Technologies Inc.
  2. OpenGL renderer string: FireMV 2400 PCI DDR Generic
  3. OpenGL version string: 1.3.1050 (X4.3.0-8.22.5)

  4. direct rendering: Yes
  5. Module                  Size  Used by
  6. i810_audio             35472  1
  7. ac97_codec             18432  1 i810_audio
  8. fglrx                 453740  9
  9. agpgart                30088  1 fglrx
复制代码


  1. fgl_glxgears
  2. Using GLX_SGIX_pbuffer
  3. 445 frames in 5.0 seconds = 89.000 FPS
  4. glxgears
  5. 5530 frames in 5.0 seconds = 1106.000 FPS
复制代码


怎么会这样呢?完全不符合逻辑啊。
看来我的理解还是有问题。。。嗯。。bluffing
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表