免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 930 | 回复: 0
打印 上一主题 下一主题

编译Linux内核过程记录 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-23 21:20 |只看该作者 |倒序浏览

               
下载linux kernel 2.6.x版本,官方网站下载
http://www.kernel.org/pub/linux/kernel/v2.6/
。我下载的是2.6.18,下载这个版本来编译并没有什么特别的理由,我随机选择的。
将压缩包解压在usr/src目录下新建的linux-2.6.18目录下,然后cd linux-2.6.18进入该目录。
make menuconfig 使用文本方式配置编译选项。使用此命令编译前,需要安装libncurses5-dev,否则会报告
“  In   file   included   from   scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:31:20:   error:   curses.h:   没有那个文件或目录”
这个编译错误。
如果一切顺利,make menuconfig这个命令将会调出配置菜单窗口:

linux make menuconfig
可以根据上图中的操作说明在配置菜单中选择编译参数。
这里
有比较详细的Linux内核编译选项说明,可以参考。
配置完成后,就可以输入make命令来开始编译了。
我在编译的时候遇到了如下两个错误:
1。 ‘PATH_MAX’ undeclared ,
是在编译/scripts/mod目录下的sumversion文件时遇到了未定义的宏PATH_MAX,解决方法:
在/scripts/mod目录下的sumversion.c文件开始部分加入#include
即可,在include/linux目录下的limits.h文件中定义了这个宏。
2。 undefined reference to `__udivdi3′,undefined reference to
`__umoddi3′,根据网上查到的资料,是因为gcc4.3的版本较新,编译较老的内核版本时会出现这个问题,其实是GCC的一个bug。参考这两
个文档:
1

2
。解决方法:在根目录下的Makefile文件中,找到下面的内容:
CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common
增加一行,修改成:
CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common \
-fno-tree-scev-cprop
除此两处之外,没遇到其他的error,但是warning还是有一些的,对这些warning没仔细分析和清除。这样,n小时之后,make编译就成功完成了。
然后,make modules编译内核模块;make modules_install安装模块;make install安装内核。
cd /boot
mkinitramfs -o initrd.img-2.6.18 2.6.18  创建内核镜像。
update-grub 更新grub引导后,reboot重启,就可以在grub中选择新的内核来引导了。
参考资料:
Kernel compile(Ubuntu)
编译内核操作流程
How to: Compile Linux kernel 2.6
Mini HowTO: Compile the Linux Kernel (2.6.*)
The Linux Kernel HOWTO
原文链接:
http://adreaman.com/0506linux-kernel-compile-example.html
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/97173/showart_1941071.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP