K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

17六/0913

让 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 里下载 的 Tarball,解压到 ~//。

6.Download the tarball which contains PKGBUILD from AUR , extract it to ~/ 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 下面的两行改为:

9.Change the following two lines of '# Fix 2.6.29 ' to:

  cd ${srcdir}/archive_files/common/lib/modules/fglrx/build_mod  patch -p0 <${srcdir}/2.6.30.diff || return 1

10.将上面帖子的附件解压,存为 ~//2.6.30.diff,然后 makepkg,pacman -U。

10.Get the patch from github, and save to ~//2.6.30.diff, and complie and install .

上面说的就是整个动手的过程,以后内核更新或者 更新,可以使用这个方法自行修改。如果你懒得自己一步一步来,也可以从 github 里面下载我做好的 PKGBUILD 等文件,目前版本为 kernel26 2.6.30-4, 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)

分享家:Addthis中国

你可能对这些感兴趣:

  1. Arch Linux 64位安装Catalyst(fglrx) 9.1的方法
  2. 解决 Catalyst 最大、最小化窗口缓慢的问题
  3. ATI Catalyst 9.9 for Linux 放出——仅仅是修正 BUG
  4. Arch Linux 五月份的时事传报(Newsletter)
  5. AUR 中的 Catalyst 变成无主状态了!

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

评论 (13) 引用 (1)
  1. dmesg 有 fglrx的错误吗?

    [回复]

  2. @Ubuntu:
    还是有,没办法~

    [回复]

  3. A 卡有什么好呢?感觉 LInux 用户大多数用的是 A 卡。

    [回复]

    Iven Day 回复:

    A 卡不好啊…… Linux 用户大多在为 A 卡困扰……
    要说好,A 卡的开源驱动比较好…… ATI 还是在开源方面比较努力的……

    [回复]

  4. 我想问的是,在买 A 卡的时候看中的是 A 卡的什么呢?为什么会选择 A 卡呢?

    [回复]

    Iven Day 回复:

    @nasofe, 比较喜欢 AMD,组建个 3A 平台,而且 ATI 性价比比较高,潜力比较大(现在看来潜力真是无限大了,目前性能一点也发挥不出来……),而且 N 卡当时正闹花屏,不敢买……

    [回复]

  5. 您好,急切求教!!
    我做 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 回复:

    呃,我没做过 BLFS……“安装模块”是指安装驱动的时候,还是加载模块的时候啊?
    没遇到过这个问题,不过貌似网上有很多人遇到过,仔细找找解决方案……
    不用 QQ 好多年,有 Gtalk 的话加我吧……

    [回复]

    Jet_Han 回复:

    @Iven Day, 就是在安装驱动的过程中,编译完成后安装模块的时候失败,我尝试手动 insmod module 仍然是这个错误,网上的确有很多人说遇到这个错误,但是还没有搜到解决方法,怎么办啊。。。

    [回复]

    Iven Day 回复:

    @Jet_Han, 呃,编译完成后应该有个安装(复制文件到目标目录)的过程,然后才能加载这个模块吧……另外一般用 modprobe,可以解决模块间的依赖……
    我没遇到过这个问题,不知道该怎么解决……如果你在网上查不到原因的话,恐怕我也无能为力……

    [回复]

  6. 今天ati的问题终于解决了,我用的是2.6.27.2的内核,原先用9-6版本的驱动怎么都不行,编译成功了modprobe的时候提示上述错误,换用了9-3版本的驱动结果可以了,这次是巧合,呵呵,谢谢您的帮助!!

    [回复]

    Iven Day 回复:

    @Jet_Han, 呵呵,解决了就好……

    [回复]


发表评论