LinuxSir.cn,穿越时空的Linuxsir!

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

最新内核:2.6.25上不能安装ATI驱动 8.3-8.4的解决方法

[复制链接]
发表于 2008-4-22 15:04:24 | 显示全部楼层 |阅读模式
最新内核:2.6.25上不能安装ATI驱动 8.3-8.4的解决方法

我是个追新的人,特别是新内核,这次2.6.25一发布,我就下载编译了,但
痛苦的事情也接接着来了,因为我用的是ATI的显卡,结果新内核的变化使得安装ATI的
显卡驱动出错,找了网上N个地方,找到一个PATCH,但前几次打这个补丁的时候出错,
以为是补丁的问题,今天又在另一个网站上看到这个补丁,内容一样,再次CP下来,保存为
.patch的格式,再打补丁,结果成功了,高兴的不得了,现在把这个过程和这个补丁放上来,
让使用2.6.25内核并使用ATI显卡的朋友们少走些弯路吧,真TMD不是活呀。
请先备份你的xorg.conf文件,因为uninstall 驱动时,这个文件会重新换原来的。
注:这个补丁是针对以下错误使用的:

  1. make -C /lib/modules/2.6.25/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
  2. make[1]: Entering directory `/usr/src/linux-2.6.25'
  3.   CC [M]  /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
  4. /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_PosixSecurityCapGetEffectiveVector’:
  5. /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1888: error: implicit declaration of function ‘cap_t’
  6. /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_PosixSecurityCapSetEffectiveVector’:
  7. /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1896: error: invalid lvalue in assignment
  8. make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
  9. make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
  10. make[1]: Leaving directory `/usr/src/linux-2.6.25'
  11. make: *** [kmod_build] Error 2
  12. build failed with return value 2
  13. [Error] Kernel Module : Failed to compile kernel module - please consult readme.
复制代码


如果你的错误中还有如下信息:

  1. /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_check_pci’:
  2. /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1951: error: implicit declaration of function ‘pci_find_slot’
复制代码

这个错误是你编译的内核模块中:


  1. Enable deprecated pci_find_* API (PCI_LEGACY)

  2. Say Y here if you want to include support for the deprecated
  3. pci_find_slot() and pci_find_device() APIs. Most drivers have
  4. been converted over to using the proper hotplug APIs, so this
  5. option serves to include/exclude only a few drivers that are
  6. still using this API.
复制代码

这一项没有选择。

ATI的最新驱动8.476请大家自己到ATI的网站上下载吧,放在你想放的目录下,使用以下命令:
$./ati-driver-installer-8-4-x86.x86_64.run --extract NewDirectory(这个你可以自己命名的文件夹,
我使用ati-8.4这个文件夹,以下以此为例)
$cp firegl_public.patch ati-8.4

然后执行以以命令:
$patch -p0 < firegl_public.patch
好了,补丁打好了。(但我不知道如何再把这个解压的目录再打包成:ati-driver-installer-8-4-x86.x86_64.run
,所以只好用另一个笨方法安装显卡驱动了。)
接下来修改:
$vi /etc/inittab
修改:id:5:initdefault: > id:3:initdefault:

保存,重启电脑,选择进入你最新的内核:2.6.25,以ROOT身份进入。
如果你以前安装了ATI的驱动,请先UNINSTALL了,这样再安装会安全些:
# cd /usr/share/ati/
# sh fglrx-uninstall.sh

这样就可以UNINSTALL原来安装的ATI驱动了,现在进入你下载放置ati-driver-installer-8-4-x86.x86_64.run
的目录,执行:sh ati-driver-installer-8-4-x86.x86_64.run 命令来安装驱动,结果是会出错的,不怕,我们打补丁
现在可以使用了。
# cd /lib/modules/fglrx/build_mod/
#cp /home/linux-tool/displayer-driver/ati-8.4//common/lib/modules/fglrx/build_mod/firegl_public.c /lib/modules/fglrx/build_mod/

覆盖原来的文件后,就在这个:/lib/modules/fglrx/build_mod/ 目录下执行:
# sh make.sh

执行成功能,提示你要运行另一个文件来安装驱动的模块:
# cd /lib/modules/fglrx/ (# cd ../)
# sh make_install.sh

这样,编译好的显卡驱动模块就安装好了,
覆盖你自己的xorg.conf文件吧:
#cp xorg.conf /etc/X11

#vi /etc/inittab
修改:id:3:initdefault: > id:5:initdefault:
保存,重新电脑,进入后打开终端,输入:fgl_glxgears ,看是不是有个3D的框出来,有就说明驱动成功了。

另外,这个新的内核:2.6.25还一个问题,就是ALSA的1.0.16驱动安装也会出错,在编译alsa-driver时会提示:

  1.   CC [M]  /home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.o
  2. /home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.c: In function ‘snd_timer_request’:
  3. /home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.c:155: error: wrong type argument to unary exclamation mark
  4. make[3]: *** [/home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.o] Error 1
  5. make[2]: *** [/home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore] Error 2
  6. make[1]: *** [_module_/home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16] Error 2
  7. make[1]: Leaving directory `/usr/src/linux-2.6.25'
  8. make: *** [compile] Error 2
复制代码

原因不太清楚,但这个网站上公布的最新稳定版本就是这样,安装不了,这都是因为2.6.25内核的变化导致的,不过也不怕,
我使用ALSA的开发版本就没问题了,请在这个地址:

  1. ftp://ftp.suse.com/pub/projects/alsa/snapshot/
复制代码


下载你要的DRIVER,就可以编译安装ALSA了。

   同时,我也有个问题想请大家帮我,我现在使用VMware-workstation-e.x.p-84113.i386 版本,
在这个2.6.25安装时,不能build vmnet.ko、vmblock.ko,vmci.ko,vmmon.ko,vsock.ko等这些模块。
在安装过程中就没的提示说要build 这些模块,这是咋回事呢,但我的centos 5.1原来的内核:2.6.18-53.1.14.el5
就可以正常安装和使用 VMware-workstation-e.x.p-84113.i386,找了网上几个地方,都是不行,真不知道要如何解决这个问题了,请大家帮帮我吧,谢谢了。

注:上传的附件一个是补丁,另一个我的2.6.25新内核的config 文件,可做为编译内核的参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-4-22 20:08:44 | 显示全部楼层
ati的驱动真是愁人啊。
vm的问题可以去vm的官方论坛看看,如果无解,那应该就是暂时无解了。
回复 支持 反对

使用道具 举报

发表于 2008-4-22 20:40:32 | 显示全部楼层
vmware就等着vmware-any-any117补丁了,网上似乎没什么好的解决办法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-22 21:10:53 | 显示全部楼层
http://bbs.archlinux.org/viewtopic.php?id=47332

这个网址里说可以解决这个问题,但自己 的E文太差了,没明白咋搞的,明白的兄弟给解释一下吧,谢谢了,急用呀!!!:yun:
回复 支持 反对

使用道具 举报

发表于 2008-4-22 21:33:41 | 显示全部楼层
vmware-server 2.0的可以.
有一个地方通不过但是不影响使用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-22 21:39:43 | 显示全部楼层
Post by grassofhust;1841366
vmware-server 2.0的可以.
有一个地方通不过但是不影响使用


这个版本的对外接USB设备支持的好吗?
回复 支持 反对

使用道具 举报

发表于 2008-4-22 21:53:08 | 显示全部楼层
这个我没接过,dvd和usb设备我都移除了。若不行,也可以用文件共享的。
不知道USB接口的鼠标算不算。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-22 23:30:03 | 显示全部楼层
Post by grassofhust;1841374
这个我没接过,dvd和usb设备我都移除了。若不行,也可以用文件共享的。
不知道USB接口的鼠标算不算。


其实我原来是用VIRTUALBOX的,但它的USB外接设备支持不是特别好,因为用PALM TERO 650,想用WINDOWS下的一些同步功能,这个共享就不行了。
同时,我还要在WINDOWS下打印东西,虽然VIRTUALBOX已解决了打印问题,但有时还要重新设置权限,不方便,所以想使用VMWARE workstatioN b !!
回复 支持 反对

使用道具 举报

发表于 2008-5-6 08:39:26 | 显示全部楼层
昨天因为把内核中的“Enable deprecated pci_find_* API (PCI_LEGACY)”取消了,结果以前安装ATI驱动没问题现在也变成有问题了,原来是这么回事。重新编译一下内核,再试试去。
2.6.25内核我也没装上现在的这个版本ati驱动,又找到了解决办法。lz可真是大好人呐。
谢谢lz
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-6 20:16:04 | 显示全部楼层
Post by Dennis.Wang;1846215
昨天因为把内核中的“Enable deprecated pci_find_* API (PCI_LEGACY)”取消了,结果以前安装ATI驱动没问题现在也变成有问题了,原来是这么回事。重新编译一下内核,再试试去。
2.6.25内核我也没装上现在的这个版本ati驱动,又找到了解决办法。lz可真是大好人呐。
谢谢lz


不客气,能解决问题就好。
回复 支持 反对

使用道具 举报

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

本版积分规则

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