升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

内核编译和嵌入式产品的设计与开发
回复
JiangMiao
帖子: 30
注册时间: 2009-07-15 13:03

升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#1

帖子 JiangMiao » 2009-09-16 14:11

第一次编内核,搞了一个通宵,终于还是成功了。
一、基本配置和效果
原系统: Ubuntu 9.04 (内核2.6.28) + ATI官方9.8
升级至: Ubuntu 9.04 (内核2.6.31) + ATI官方9.9
CPU: AMD Phenom 9550+集成显卡ATI HD3300
initrd.img 由7.4M缩至3.1M
vmlinuz 由3.3M缩至2.8M
启动速度 12秒提升至6秒
glxgears由1000提升至2400
chromium 4.0, Firefox-3.5 peacekeeper分数均有10%~15%的提升。

二、问题
碰到的主要问题是ATI官方fglrx mod加载失败,当启动时显示fglrx失败时,按ctrl+alt+f1可切至终端登入。错误可以由dmesg查看
1、find_task_by_vpid 未定义
原因:2.6.31内核不再提供find_task_by_vpid函数
解决方法:https://bugs.launchpad.net/ubuntu/+sour ... bug/394985
修改/usr/src/fglrx-8.65的firegl_public.c
diff -ruN fglrx-8.620.orig/firegl_public.c fglrx-8.620/firegl_public.c
--- fglrx-8.620.orig/firegl_public.c 2009-07-30 02:29:19.000000000 +0100
+++ fglrx-8.620/firegl_public.c 2009-07-30 02:47:43.000000000 +0100
@@ -1292,7 +1292,10 @@
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
p = find_task_by_pid( pid );
#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
p = find_task_by_vpid( pid );
+else p = pid_task( pid, PIDTYPE_PID );
+#endif
#endif
if (p)
{

2、*ERROR* firegl_stub_register failed
原因:drm或radeon已加载
解决方法:禁用模块drm
修改/etc/modprobe.d/blacklist.conf加入
blacklist radeon
blacklist radeonfb
blacklist drm
当然作为自编译的内核,我连drm的模块模式都取消了。即编译配置的Graphics Support->Direct Rendeering Manager 为 N
另:/dev/agppart(AGP support)一定要选上,不然agp相关的函数fglrx都找不到而导致加载失败。同时我还钩了该项下的 ATI chipest
support. 该项下的其余选项都为 N


三、其它事项
1、Sound card support的Advanced Linux Sound Architecture为module形式更好,
我个人自编译alsa驱动效果大大好于内核符带的效果(声卡: Creative Audigy Value, CA0106)。如果为是built-in alsa,则无法安装。

2、USB support的USB verbose debug messages为N
否则dmesg会出现大量usb uevent消息,我不清楚是好是坏,但禁用了usb debug信息后消失。

3、File systems中的FUSE勿必选上
否则nautilus试图加载其它硬盘分区将失败。

4、多核编译时加前缀CONCURRENCY_LEVEL以提高速度
如我是4核则为
CONCURRENCY_LEVEL=4 make-kpkg --initrd --append-to-version=-miao-0.1 kernel_image
这样在AMD 9550上编译精简的内核一次只需要3分钟 (实测,180秒)。如果花了30分钟乃至数小时编译,那多半勾了太多可能用不着的东西。参见5

5、精简
编译的耗时主要花在各类硬件支持上。而实际上大多数硬件支持可能短时间内不需要。目前除SCSI disk support看上去没有实际上要勾的情况外,其余不需要的支持就放心的打上N吧。像网卡,声卡,显卡驱动支持勾的选项只需3个,特性支持酌情删减。

四、其关命令与顺序
1、初使化
make mrproper
make defconfig

2、修改配置
make xconfig
xconfig 需qt3支持
apt-get install libqt3-headers libqt3-mt-dev

3、编译
make-kpkg clean
CONCURRENCY_LEVEL=4 make-kpkg --initrd --append-to-version=-miao-0.1 kernel_image
生成的deb文件在上级目录。

4、安装
dpkg -i xx.deb

5、重编译
重复2,3,4

PS: 配置并编译内核 说要重编译无需删除只需再编译即可,但我这里没有,大家可以看看deb的修改时间是否变动来检验,重启重装了N次才发现..

五、参考
站内:精简内核的最终方法……
站内:配置并编译内核[更新到linux-2.6.29.2]

六、相关链接
内核地址 http://www.kernel.org/
ATI linux驱动 http://ati.amd.com/support/driver.HTML
ALSA下载 http://www.alsa-project.org/main/index.php/Download
上次由 JiangMiao 在 2009-09-20 16:47,总共编辑 1 次。
Ubuntu 9.04 中, 我的BLOG
头像
lion1131
帖子: 63
注册时间: 2008-04-18 13:17

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#2

帖子 lion1131 » 2009-09-16 16:08

标记一下,
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#3

帖子 jarryson » 2009-09-16 18:15

闭源驱动是麻烦一点。

这样的帖子要顶,虽然肯定很多人看不懂
头像
liwangli
帖子: 262
注册时间: 2008-02-12 19:47

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#4

帖子 liwangli » 2009-09-16 18:26

MARK
头像
leweslove
帖子: 105
注册时间: 2008-05-30 12:23

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#5

帖子 leweslove » 2009-09-18 13:45

仁兄速度真快!!!!!
正打算今天晚上回去实验!! :em20 :em20 :em20
jonsen
帖子: 13
注册时间: 2007-02-27 8:43

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#6

帖子 jonsen » 2009-09-26 0:06

支持,先mark一下。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#7

帖子 wangdu2002 » 2009-09-26 0:10

路过学习,楼主动手能力和解决问题能力较强。 :em11
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
xyf
帖子: 2032
注册时间: 2007-05-05 23:59
来自: 嘉兴

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#8

帖子 xyf » 2009-09-28 0:04

JiangMiao 写了:CONCURRENCY_LEVEL=4 make-kpkg --initrd --append-to-version=-miao-0.1 kernel_image
这招实在是妙,充分发挥了多核处理器的优势。 :em11
ufraw中文(raw图像处理)  http://sites.google.com/site/ufrawzh/
Gimp影像处理 http://sites.google.com/site/gimpcn/
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#9

帖子 adagio » 2009-09-28 0:22

mark :em11
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

Re: 升级至内核2.6.31+ATI官方9.9成功,及一点注意事项

#10

帖子 hcym » 2009-09-28 0:27

哪天活腻了就编个核
回复