|
最新内核: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 驱动时,这个文件会重新换原来的。
注:这个补丁是针对以下错误使用的:
- make -C /lib/modules/2.6.25/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
- make[1]: Entering directory `/usr/src/linux-2.6.25'
- CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
- /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_PosixSecurityCapGetEffectiveVector’:
- /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1888: error: implicit declaration of function ‘cap_t’
- /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_PosixSecurityCapSetEffectiveVector’:
- /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1896: error: invalid lvalue in assignment
- make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
- make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
- make[1]: Leaving directory `/usr/src/linux-2.6.25'
- make: *** [kmod_build] Error 2
- build failed with return value 2
- [Error] Kernel Module : Failed to compile kernel module - please consult readme.
复制代码
如果你的错误中还有如下信息:
- /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_check_pci’:
- /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1951: error: implicit declaration of function ‘pci_find_slot’
复制代码
这个错误是你编译的内核模块中:
- Enable deprecated pci_find_* API (PCI_LEGACY)
- Say Y here if you want to include support for the deprecated
- pci_find_slot() and pci_find_device() APIs. Most drivers have
- been converted over to using the proper hotplug APIs, so this
- option serves to include/exclude only a few drivers that are
- 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时会提示:
- CC [M] /home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.o
- /home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.c: In function ‘snd_timer_request’:
- /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
- make[3]: *** [/home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore/timer.o] Error 1
- make[2]: *** [/home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16/acore] Error 2
- make[1]: *** [_module_/home/linux-tool/sound-card/kernel-2.6.25/alsa-driver-1.0.16] Error 2
- make[1]: Leaving directory `/usr/src/linux-2.6.25'
- make: *** [compile] Error 2
复制代码
原因不太清楚,但这个网站上公布的最新稳定版本就是这样,安装不了,这都是因为2.6.25内核的变化导致的,不过也不怕,
我使用ALSA的开发版本就没问题了,请在这个地址:
- 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
|