免费注册 查看新帖 |

Chinaunix

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

编译Linux内核的详细过程 [复制链接]

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

专业级别:牛人给出的编译Linux内核的详细过程
1、准备源码
最新的源码可以从kernel.org上获取,如当前最新版本为2.6.31:
$ wget
http://oss.ustc.edu.cn/linux-kernel/v2.6/linux-2.6.31.tar.bz2
2、解压源码:
$ tar xvf linux-2.6.31.tar.bz2 -C /usr/src/
TIP:当然,解压缩到/usr/src/中并不是必须的,你可以解压缩到任何位置。
3、检查源码(该步不是必须):
   $ cd /usr/src/linux-2.6.31
   $ make mrproper
TIP:该步的作用是检查源码是否有.o文件和依赖问题,从全新的源码编译时不需要这一步。配合make clean(主要清除.o文件)使用更好,make mrproper主要清除环境变量及配置文件
4、 编译内核
默认情况下,编译输出的文件是放在源码目录里的,可以通过O=output/dir参数来指定输出文件的位置(字母O,不是数字0)。很多第一次编译内核的人都会碰到一个问题,/usr所在分区的空间不够,此时,这个参数就很有用。
源码提供了很多配置方式,推荐使用menuconfig:
进入/usr/src/linux-2.6.31,已经进入则略过:$ cd /usr/src/linux-2.6.31
创建/build/kernel menuconfig文件夹:$ mkdir -p /home/你的用户名/build/kernel menuconfig
使用menuconfig配置:$ make O=/home/你的用户名/build/kernel menuconfig
对于第一次编译内核的人,不推荐直接从内核默认配置开始,推荐使用发行版自带的配置文件,通常/boot下会有config-2.6.xx的文件。选择Load an Alternate Configuration File,然后输入/boot下那个config文件的名字,载入即可。第一次编译最好还是不要随便修改配置了,如果失败的话,会留下心理阴影的:-)
在配置里随便看看,如果有什么懂的也可以根据自己的需求改改,不明白的地方就不要动了吧。完了之后别忘了save,保存的时候文件名就填.config。
接下来就开始正式编译了。编译时间可能会有些长,为了避免终端意外关闭,可以使用screen,具体用法这里就不谈了。
   $ make O=/home/name/build/kernel
为了加快编译的速度,可以使用-j参数,开启多线程。比如双核的cpu可以这样编译
   $ make -j4 O=/home/name/build/kernel
一般-jn的n为核数的两倍即可

5、安装内核
   $ sudo make O=/home/name/build/kernel modules_install install
6、生成initrd
   $ sudo mkinitramfs -o /boot/initrd-img.2.6.31 2.6.31
关于mkinitramfs的其他参数,请参考man mkinitramfs,关于initrd的作用,请自己google搜索。我近期也会写一篇文章剖析一下initrd。
7、 修改引导
使用grub的话,可以直接使用:
   $ sudo update-grub
来更新引导文件,当然也可以自己编辑/boot/grub/menu.lst或者/boot/grub/grub.cfg文件。
8、] 重启
重启之后可以通过以下命令确认你当前使用的是不是刚编译的内核
  $ uname -a

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP