| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux入门与提高 > 安装与配置

kernel 2.6.10安装ATI 8.8.25驱动

时间:2006-01-05 08:54:31  来源:中国IT实验室  作者:Linux联盟收集

小弟今天经过痛苦的摸索终于解决了ATI驱动的安装问题,感谢ATI的新驱动和rage3d.org上面各位大虾的补丁,终于可以玩tux racer了,虽然不好玩(个人观点).不敢独享,特将过程写再者里,以防菜鸟在遇到同样的困难:

1.下载 ATI最新的驱动程序,http://www.ati.com/support/driver.html 选择你需要的驱动版本,我这里针对的是xorg 6.8,kernel 2.6.10的驱动,要确认你的内核和x的版本,运行
http://www2.ati.com/drivers/linux/Check.sh
和 uname -a

2.下载这个补丁,来自www.rage3d.org

3.安装rpm包 rpm -Uh --force 下载的软件包的名字.rpm 主意看这里出现的错误信息.

4.打补丁 如果是FC系列的话,cd /lib/modules/fglrx/,
patch -p0 < 下载的补丁的路径和文件名
注意看是不是有两行输出表示patch 成功了.进入下一步.不行检查路径.

5.cd /lib/modules/fglrx/build_mod 运行 sh make.sh
注意出错的话请不要继续
cd ..
sh make_install.sh

6.备份原来的 xorg.conf(非常重要的一步,别怪我没警告你)
cp /etc/X11/xorg.conf /随便你放在哪里

7.fglrxconfig 配置显卡,随便选择吧,
也可以参考我的,
基本上都可以回车,只是注意显示器的刷新率,好好想想,最好别超过85

8.别忙着重新启动,肯定不行,生成的配置文件在 /etc/X11 下面,叫做 XF86Config-4,这是给XFree86用的,我现在用的是xorg.6.8,对应的配置文件是xorg.conf,你刚才备份吧,所以运行
cd /etc/X11
cp XF86Config-4 xorg.conf

9.还有一个地方,个人感觉很变态,重起之后,x起不来,进入字符界面下面,x的log指出鼠标和键盘出错,
没办法,修改xorg.conf,这个文件是分Section的
Section "InputDevice"
中间一堆什么注释阿,乱七八糟的
后面有一行
EndSection
表示这一个Section结束了
这样的 "InputDevice" Section有两个,一个是描述鼠标的一个是描述键盘的,
把新的xorg.conf里的这两段都用旧的替换(我们备份的文件xorg.conf里面有同样的"InputDevice"Section

10.重新启动的时候到了.顺利进入图形界面,恭喜你成功了,请跳到 13步继续,我得跟不幸的人先说几句.

11,如果黑屏闪动,出现错误提示,不要慌张,先看看错误信息,给自己到杯水,把这个信息抄下来找我.我可没说一定有办法解决.

12.显恢复了再说,把之前备份的文件复制回去, cp /你放的哪了/xorg.conf /etc/X11/

13. 运行两个重要的命令,确认我们的3d好用了,
运行 flgrxinfor 看输出是不是
[root@robin X11]# fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON 9550 Generic
OpenGL version string: 1.3.4769 (X4.3.0-8.8.25)
类似的.
[root@robin X11]# dmesg | grep agp
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected NVIDIA nForce2 chipset
agpgart: Maximum main memory to use for agp memory: 203M
agpgart: AGP aperture is 128M @ 0xd0000000
agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode
agpgart: Putting AGP V3 device at 0000:02:00.0 into 8x mode
看看你的3d和AGP开好了没有.
如果AGP有错误,请接着修改你的xorg.conf文件,找到一行写着

Option "UseInternalAGPGART" "yes"

改成
Option "UseInternalAGPGART" "no"

再重起看看,有些帖子建议使用init 3,或者telinit 3,这个经过测试,有些系统没办法正确运行这个命令,所以重新启动更加方便快捷.


附:
fglrx8.08-2.6.10.patch
--- agpgart_be.c 2005-01-06 9:05:02.000000000 +0100
+++ agpgart_be.c 2005-01-06 9:19:16.000000000 +0100

@@ -255,6 +255,12 @@
 }
 #endif

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+#define firegl_pci_find_class(class,from) pci_get_class(class,from)
+#else
+#define firegl_pci_find_class(class,from) pci_find_class(class,from)
+#endif
+
 int agp_backend_acquire(void)
 {
  if (agp_bridge.type == NOT_SUPPORTED) {
@@ -718,7 +724,7 @@
   *        AGP devices and collect their data.
   */

- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
      device)) != NULL) {
   pci_read_config_dword(device, 0x04, &scratch);

@@ -794,6 +800,13 @@
     command &= ~0x00000001;
   }
  }
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+            // the reference count has been increased in agp_backend_initialize.
+        if (device)
+            pci_dev_put(device);
+#endif
+
  /*
   * PASS2: Figure out the 4X/2X/1X setting and enable the
   *        target (our motherboard chipset).
@@ -839,8 +852,9 @@
   *        command registers.
   */

- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
      device)) != NULL) {
+
   pci_read_config_dword(device, 0x04, &scratch);

   if (!(scratch & 0x00100000))
@@ -871,6 +885,12 @@
         }
  }

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+            // the reference count has been increased in agp_backend_initialize.
+        if (device)
+            pci_dev_put(device);
+#endif
+
     return 0; /* success */
 }

@@ -5119,8 +5139,9 @@
   *        AGP devices and collect their data.
   */

- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
      device)) != NULL) {
+
   pci_read_config_dword(device, 0x04, &scratch);

   if (!(scratch & 0x00100000))
@@ -5187,6 +5208,13 @@
     command &= ~0x00000001;
   }
  }
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+            // the reference count has been increased in agp_backend_initialize.
+        if (device)
+            pci_dev_put(device);
+#endif
+
  /*
   * PASS2: Figure out the 4X/2X/1X setting and enable the
   *        target (our motherboard chipset).
@@ -5217,8 +5245,9 @@
   *        command registers.
   */

- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
      device)) != NULL) {
+
   pci_read_config_dword(device, 0x04, &scratch);

   if (!(scratch & 0x00100000))
@@ -5249,6 +5278,12 @@
         }
  }

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+            // the reference count has been increased in agp_backend_initialize.
+        if (device)
+            pci_dev_put(device);
+#endif
+
     return(0); /* success */
 }

@@ -6494,10 +6529,10 @@
     // locate host bridge device
 #ifdef __x86_64__
     do {
-        dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+        dev = firegl_pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
     } while((dev) && !agp_check_supported_device(dev));
 #else
-    if ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
+    if ((dev = firegl_pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
         return -ENODEV;
 #endif

@@ -7040,8 +7075,12 @@
                     &agp_bridge.mode);
     return hp_zx1_setup(dev);
    }
-   dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+   dev = firegl_pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
   } while (dev);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+                if(dev) pci_dev_put(dev);
+#endif
   return -ENODEV;
  }
 #endif /* __ia64__ */
@@ -7462,6 +7501,11 @@
  agp_bridge.free_gatt_table();
  vfree(agp_bridge.key_list);

 1/4    1 2 3 4 ›› ›|

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
    无相关信息
栏目更新
栏目热门