让 2.6.30 版内核和 fglrx 9.6 和平相处(Arch Linux)
ATI 的显卡驱动前几天释出了 9.6 版,该版本相对前一版本,有以下改进(来自 Linuxtoy):
* 支持 SLED/SLED 11 和 RHEL 4.8 操作系统
* MultiView 支持
当然还有很多 BUG 修正,这里不一一列举。
值得注意的是,此版本仍然没有带来对 2.6.29 以上内核的支持,这是 ATI 自 9.4 版以来第三次对新版本内核无视,当然以前也有过很多先例,可以说,ATI 的显卡驱动对 Linux 用户来说就是个彻头彻尾的冷笑话!奉劝各位 Linux 用户以后千万别买 A 卡,爱买什么买什么吧!
下面说一下网友研究出的关于在 2.6.30 版内核上运行 fglrx 9.6 的方法,2.6.29 版内核可以用 AUR 上的那个软件包。
网友原版的方法参见 Ubuntu 中文论坛,这里说的是在 Arch Linux 上的具体操作方法。
1.更新 ABS,从 /var/abs 中找到 testing 中的 kernel26 这个文件夹,复制到 ~/kernel26。
1.Refresh your ABS tree, and copy /var/abs/testing/kernel26 to ~/kernel26 or somewhere.
2.把以下内容保存为 ~/kernel26/fglrx.diff。
2.Save the text below to ~/kernel26/fglrx.diff .
diff --git linux-2.6.30/arch/x86/mm/tlb.c linux-2.6.30/arch/x86/mm/tlb.c
index 61ddfa0..3d26c0b 100644
--- linux-2.6.30/arch/x86/mm/tlb.c
+++ linux-2.6.30/arch/x86/mm/tlb.c
*************** void flush_tlb_page(struct vm_area_struc
*** 274,279 ****
--- 274,280 ----
preempt_enable();
}
+ EXPORT_SYMBOL(flush_tlb_page);
static void do_flush_tlb_all(void *info)
{
3.修改 PKGBUILD,添加 fglrx.diff 这个文件,并且在原来的 patch 那行下添加下面一行:
3.Add the file fglrx.diff to PKGBUILD, and add a new line below the exsiting patch line:
patch -Np1 -i ${srcdir}/fglrx.diff || return 1
4.运行 makepkg,等待,然后用 pacman -U 安装。
4.Run makepkg. After a long time, use 'pacman -U' to install it.
5.重启,发现在 /lib/modules 里面,出现了 2.6.30-ARCH-g9621145-dirty 这个文件夹(不知道大家出现的名字一不一样)。
5.Reboot, and you'll find a new directory named 2.6.30-ARCH-g9621145-dirty (I'm not sure if everyone gets the same name).
6.到 AUR 里下载 Catalyst 的 Tarball,解压到 ~/catalyst/。
6.Download the tarball which contains PKGBUILD from AUR , extract it to ~/catalyst or somewhere.
7.修改 PKGBUILD 的 _kernver 为 2.6.30-ARCH-g9621145-dirty,或者你自己的文件夹名。
7.Change _kernver to 2.6.30-ARCH-g9621145-dirty, or the different name you got.
8.修改版本号、MD5 等量。
8.Change the Version, MD5, etc. to the new version.
9.把 # Fix 2.6.29 kernel 下面的两行改为:
9.Change the following two lines of '# Fix 2.6.29 kernel' to:
cd ${srcdir}/archive_files/common/lib/modules/fglrx/build_mod patch -p0 <${srcdir}/2.6.30.diff || return 1
10.将上面帖子的附件解压,存为 ~/catalyst/2.6.30.diff,然后 makepkg,pacman -U。
10.Get the patch from github, and save to ~/catalyst/2.6.30.diff, and complie and install catalyst.
上面说的就是整个动手的过程,以后内核更新或者 Catalyst 更新,可以使用这个方法自行修改。如果你懒得自己一步一步来,也可以从 github 里面下载我做好的 PKGBUILD 等文件,目前版本为 kernel26 2.6.30-4, catalyst 9.6-1,不保证更新。
You can download all the files I've modified from github, but It may not be the newest.
好了,折腾的过程就是这么多,目前用起来还可以,不过 Compiz 下性能仍是不佳,凑合着用吧……
转载请注明:转自K.I.S.S. - 简单哲学 - 让 2.6.30 版内核和 fglrx 9.6 和平相处(Arch Linux)
你可能对这些感兴趣:
- Arch Linux 64位安装Catalyst(fglrx) 9.1的方法
- 解决 Catalyst 最大、最小化窗口缓慢的问题
- ATI Catalyst 9.9 for Linux 放出——仅仅是修正 BUG
- Arch Linux 五月份的时事传报(Newsletter)
- AUR 中的 Catalyst 变成无主状态了!

2009年06月19日 11:36
dmesg 有 fglrx的错误吗?
[回复]
2009年06月19日 13:19
@Ubuntu:
还是有,没办法~
[回复]
2009年06月19日 20:56
A 卡有什么好呢?感觉 LInux 用户大多数用的是 A 卡。
[回复]
Iven Day 回复:
六月 19th, 2009 at 21:01
A 卡不好啊…… Linux 用户大多在为 A 卡困扰……
要说好,A 卡的开源驱动比较好…… ATI 还是在开源方面比较努力的……
[回复]
2009年06月20日 10:51
我想问的是,在买 A 卡的时候看中的是 A 卡的什么呢?为什么会选择 A 卡呢?
[回复]
Iven Day 回复:
六月 20th, 2009 at 13:02
@nasofe, 比较喜欢 AMD,组建个 3A 平台,而且 ATI 性价比比较高,潜力比较大(现在看来潜力真是无限大了,目前性能一点也发挥不出来……),而且 N 卡当时正闹花屏,不敢买……
[回复]
2009年06月25日 07:20
还是喜欢A卡……
[回复]
2009年07月22日 22:39
您好,急切求教!!
我做 blfs 6.3 中 生成的 xorg.conf 中的driver 写的是 vesa, 我的显卡是 ati raedon X700, 笔记本的,我试图装 fglrx 驱动,好不容易编译成功了,但是安装module有错,提示 Allocating 0 bytes, Out of memory when allocating device heads这样的错误,请问该怎么办?谢谢!
我的qq:919641895
邮箱:hgd19861018@163.com
急切求教!
[回复]
Iven Day 回复:
七月 22nd, 2009 at 22:51
呃,我没做过 BLFS……“安装模块”是指安装驱动的时候,还是加载模块的时候啊?
没遇到过这个问题,不过貌似网上有很多人遇到过,仔细找找解决方案……
不用 QQ 好多年,有 Gtalk 的话加我吧……
[回复]
Jet_Han 回复:
七月 23rd, 2009 at 21:31
@Iven Day, 就是在安装驱动的过程中,编译完成后安装模块的时候失败,我尝试手动 insmod module 仍然是这个错误,网上的确有很多人说遇到这个错误,但是还没有搜到解决方法,怎么办啊。。。
[回复]
Iven Day 回复:
七月 23rd, 2009 at 22:40
@Jet_Han, 呃,编译完成后应该有个安装(复制文件到目标目录)的过程,然后才能加载这个模块吧……另外一般用 modprobe,可以解决模块间的依赖……
我没遇到过这个问题,不知道该怎么解决……如果你在网上查不到原因的话,恐怕我也无能为力……
[回复]
2009年07月25日 16:22
今天ati的问题终于解决了,我用的是2.6.27.2的内核,原先用9-6版本的驱动怎么都不行,编译成功了modprobe的时候提示上述错误,换用了9-3版本的驱动结果可以了,这次是巧合,呵呵,谢谢您的帮助!!
[回复]
Iven Day 回复:
七月 25th, 2009 at 16:28
@Jet_Han, 呵呵,解决了就好……
[回复]