|
系统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模块都正常加载了:
- [root@YanXT:root](0)# lsmod
- Module Size Used by
- i810_audio 35472 1
- ac97_codec 18432 1 i810_audio
- fglrx_agp 51424 0
- fglrx 453740 0
- e1000 106624 0
- usbhid 35808 0
- rtc 11300 0
复制代码
为什么会比原来的驱动多出了一个fglrx_agp.ko?
以下是检测信息:
- [root@YanXT:root](0)# fglrxinfo
- display: :0.0 screen: 0
- OpenGL vendor string: Mesa project: www.mesa3d.org
- OpenGL renderer string: Mesa GLX Indirect
- OpenGL version string: 1.3 Mesa 4.0.4
复制代码- [root@YanXT:root](0)# dmesg |grep [a,A][g,G][p,P]
- ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
- Linux agpgart interface v0.101 (c) Dave Jones
- Fire GL agpgart support
- fglrx_agp is probing for an AGP device
- agpgart: Detected an Intel 855PM Chipset.
- agpgart: Maximum main memory to use for agp memory: 439M
- agpgart: AGP aperture is 256M @ 0x40000000
- [fglrx] Loaded fglrx_agp module
- [fglrx] From fglrx_agp.ko: Inter module comm successful with fglrx_agp.ko
- [fglrx] ATI agpgart module loaded
- [fglrx] AGP detected, AgpState = 0x1f000217 (hardware caps of chipset)
- agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
- agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
- agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
- [fglrx] AGP enabled, AgpCommand = 0x1f000314 (selected caps)
复制代码
- [root@YanXT:root](0)# glxinfo |grep direct
- direct rendering: No
- OpenGL renderer string: Mesa GLX Indirect
复制代码
- [root@YanXT:root](0)# dmesg |grep fglrx
- fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
- [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
- [fglrx] module loaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- [fglrx] module unloaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
- [fglrx] module loaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- [fglrx] module unloaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
- [fglrx] module loaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- [fglrx] module unloaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- [fglrx] Maximum main memory to use for locked dma buffers: 430 MBytes.
- [fglrx] module loaded - fglrx 8.22.5 [Feb 7 2006] on minor 0
- fglrx_agp is probing for an AGP device
- [fglrx] Loaded fglrx_agp module
- [fglrx] Testing inter module communication
- [fglrx] From fglrx_agp.ko: Inter module comm successful with fglrx_agp.ko
- [fglrx] ATI agpgart module loaded
- [fglrx] AGP detected, AgpState = 0x1f000217 (hardware caps of chipset)
- [fglrx] AGP enabled, AgpCommand = 0x1f000314 (selected caps)
- [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模块? |
|