Chinaunix首页 | 论坛 | 博客
  • 博客访问: 346385
  • 博文数量: 168
  • 博客积分: 6895
  • 博客等级: 准将
  • 技术积分: 1726
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-12 23:01
文章分类

全部博文(168)

文章存档

2011年(6)

2010年(162)

我的朋友

分类: LINUX

2010-08-16 15:12:30

第一次编译内核的经历

连续两天都在编译内核,感觉很有意思,漫漫的编译最终成功了,也证明了皇天不负苦心人,有志者事竟成,坚持就是胜利,哈哈,扯的有点远了。只要我开始了编译内核,那么以后的路途,就好走了,不行就编译,哈哈,而且,自己喜欢的路正是要研究内核,对他进行裁剪,那么编译内核是必需的,这一刻我心中确实很喜悦,冲刷了自己今天的不爽(因为今天是七夕节,孤独,郁闷,只有内核相陪伴,哈哈),下面讲一下自己变以内核的步骤:


1,在网上下载内核源码,网站是kernel.org.我下载的是linux-2.6.34.4.tar.bz2。
2,把你下载的kernel包拷贝到/usr/src/目录下面,然后用这个命令解压, tar -jxvf  linux-2.6.34.4.tar.bz2,解压到当前目录。
3,这一步很重要,虽然很简单,那就是切换到解压的目录下面,开始我就往切换了,就耽误了一些时间,最后还是意识到了,命令是  cd  linux-2.6.34.4.
4,安装一些软件,
gcc,make,build-essential kernel-package,libncurses-dev,这几个软件都是很重要的,必需安装,这样你才能够顺利地编译kernel。安装命令是  sudo  apt-get install 软件名字。
5,
运行命令sudo make menuconfig,这时,进入了一个具有选项的图形界面,直接退出即可,至于为什么必须进入这个图形界面,我还正在研究,哈哈。
想知道为什么,联系我,harryxiyou@163.com,我在执行这条命令的时候遇到了这个
6,接下来编译内核,可以分为三步,
执行sudo make dep命令,执行sudo make clean命令,执行sudo make bzImage命令,也可以直接执行sudo
make 代替上面的三步命令,这个时间比较长,慢慢等待,不要心急。
7,编译安装模块, sudo make modules和sudo make modules_install.
8,生成镜像文件,我的命令是mkinitramfs -o /boot/initrd-2.6.34.4.img, 如果你下载的kernel不是我这个版本的,你就输入相应的版本号。
9,安装  make install.
10, 修改启动项,设置启动项的配置在ubuntu9.04以及之前的发行版上也就使使用grub2.0之前的启
动配置都是在
/boot/grub/menu.lst进行修改,后再来的版本上是在/boot/grub/grub.cfg里面修改,不过要改动的地方很类似
这里就不赘述了,只是记录下#gedit /boot/grub/grub.cfg
先看我的示例:
这个是我之前的,所以只要复制一下这个,然后在这里面进行修改
menuentry "Ubuntu, Linux 2.6.31-21-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,5)
search --no-floppy --fs-uuid --set d18b116e-7143-4f74-84b9-17c27e283bfc
linux /boot/vmlinuz-2.6.31-21-generic root=UUID=d18b116e-7143-4f74-84b9-17c27e283bfc ro   quiet splash
initrd /boot/initrd.img-2.6.31-21-generic
}

##修改后的,红色为发生变动的地方:
menuentry "Test-Ubuntu, Linux 2.6.33-1" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,5)
search --no-floppy --fs-uuid --set d18b116e-7143-4f74-84b9-17c27e283bfc
linux /boot/vmlinuz-2.6.33.1 root=UUID=d18b116e-7143-4f74-84b9-17c27e283bfc ro   quiet splash
initrd /boot/initrd-2.6.33.1.img
}

完成后保存,基本上就好了。然后重启你会发现启动项里面多了个Test-Ubuntu, Linux 2.6.33-1 选项
所以了,选择进入就是了。

就这些,当然你在编译过程中,肯定还会碰到各种各样的问题,不要放弃,坚持就是胜利,哈哈,我离自己的robotos又近了一步,很高兴,马上就要进入kernel的天地,很期待。哈哈。



阅读(450) | 评论(0) | 转发(0) |
0

上一篇:pthread_join

下一篇:redhat 内核编译步骤

给主人留下些什么吧!~~