+ -
当前位置:首页 → 问答吧 → 自己动手编译ATI fglrx驱动(顺便总结一下我知道的安装方法)

自己动手编译ATI fglrx驱动(顺便总结一下我知道的安装方法)

时间:2005-04-09

来源:互联网

方法一

条件:使用官方的kernel-image,我是使用的2.6.10-k7。使用XFree86-4.3.0。需要安装kernel-headers和其他编译内核必须的工具。
方法:在sources.list里面加上下面的源:
deb http://www.stanchina.net/~flavio/debian/ ./
deb-src http://www.stanchina.net/~flavio/debian/ ./

然后
#apt-get install fglrx-driver fglrx-kernel-src
#cd /usr/src
#tar zxvf fglrx-kernel-src.tar.gz
#cd /usr/src/modules/fglrx-kernel-src
#./make.sh
如果make.sh没有执行权限,运行chmod +x make.sh后,再回到上一步。它会编译出fglrx.ko这个内核模块。然后
#mkdir -p /lib/modules/2.6.10-k7/misc
#cp fglrx.ko /lib/modules/2.6.10-k7/misc
#depmod -ae

到这里fglrx驱动就安装完成了。你可以运行fglrxconfig来重新生成xorg.conf或者XFree86-4文件。

注:这个方法仅限于使用XFree86的用户,因为fglrx-driver包依赖xfree86-xserver包,而这个包和xorg-xserver是冲突的。



方法二:

条件:使用官方的kernel-image。需要安装kernel-headers和其他编译内核必须的工具。这个在很多帖子都有介绍,不再赘述。可以是XFree86或者Xorg.
方法:从https://support.ati.com/ics/support/...asp?deptID=894 下载适用的版本,包括Xorg和Xfree86的都有。dpkg -i --force-overwrite fglrx-xxx.deb. 之所以要用--force-overwrite是因为fglrx驱动要使用自己的libGL.so.2库,这个文件原来是属于另一个软件包的,好像是Xlibs。然后切换到/lib/modules/fglrx目录(好像还要进一级目录,名字我记不得了,呵呵。如果还要进目录的话,要运行的脚本就是以build开头,sh结尾的。可以找下面的方法给它加可执行权限并运行它。就不再需要运行make.sh了。记性不好给大家带来不便,请原谅。),
#chmod +x make.sh
#./make.sh
它会编译出fglrx.ko这个内核模块。然后
#mkdir -p /lib/modules/2.6.10-k7/misc
#cp fglrx.ko /lib/modules/2.6.10-k7/misc
#depmod -ae


方法三

条件:自己编译的内核。使用方法二时make.sh出错。我的2.6.11就是这样。我是apt-get install 的kernel-source-2.6.11。还需要qt的头文件,包名字是libqt-mt3c102-dev.需要注意的是内核不要把drm支持编译进取,不然后面加载fglrx.ko时会出错。
方法:从http://xoomer.virgilio.it/flavio.sta...aller.html#src 下载这两个文件:
fglrx-installer_8.10.19-2.dsc (679 bytes)
fglrx-installer_8.10.19-2.tar.gz (32111 bytes)
然后
#dpkg-source -x fglrx-installer_8.10.19-2.dsc
#cd fglrx-installer-8.10.19
针对最新版本,需要修改debian目录下的rules文件。用编辑器打开这个文件,找到这一行:
RPMNAME := fglrx_$(subst .,_,$(XVERSION))-$(PVERSION)-1.i386.rpm
最新的驱动版本是8.12.10,把这行改成这样:
RPMNAME := fglrx_$(subst .,_,$(XVERSION))-8.12.10-1.i386.rpm

使用Xorg的朋友可能还需要修改这个地方

# Detect X version.
# If you want to build for a specific version, set XVERSION accordingly.
# Example: XVERSION=4.2.0
ifeq (,$(XVERSION))
XVERSION := $(shell X -version 2>&1 | grep -E "^(XFree86|X Window System) Version " | sed -e "s/^X Window System /X.Org /" | cut -d' ' -f3 | cut -d. -f1-3)
ifeq ($(XVERSION),4.2.1)
# There ain't no driver for 4.2.1, set to 4.2.0
XVERSION := 4.2.0
endif
# ifeq ($(XVERSION),6.8.1)
# # There ain't no driver for 6.8.1, set to 6.8.0
# XVERSION := 6.8.0
# endif #注释掉这几行
ifeq ($(XSERVER),xorg)
XVERSION := 6.8.0
endif
endif
hoho~~~~,终于改完了。
这时候我们回到fglrx-installer-8.10.19目录,
#fakeroot debian/rules binary
这个命令会在上一级目录下生成以下文件:
fglrx-driver_8.12.10-2_arch.deb
fglrx-driver-dev_8.12.10-2_arch.deb
fglrx-kernel-src_8.12.10-2_arch.deb
fglrx-control-qt3_8.12.10-2_arch.deb
fglrx-sources_8.12.10-2_arch.deb
接下来回上级目录,也就是上面的deb包所在的目录。
#dpkg -i fglrx-driver fglrx-kernel-src
如果需要,加上--force-overwrite参数,原因参看上面。
然后切换到/usr/src目录下,接下来的步骤和方法一一样了。


综上所述,最后一种方法适应性最广。可以安装最新的驱动和内核。爱自己动手的朋友赶快试试吧。

作者: ziyouwa   发布时间: 2005-04-09

第三个为什么要改版本号,这个本来就不是最新版的驱动。

作者: starboys   发布时间: 2005-04-09

改版本号就可以使用最新版的驱动了,像上面的例子中就已经是8.12.10了

作者: ziyouwa   发布时间: 2005-04-09