第一个linux内核编译

最近看linux内核的书看的挺多,但是真正实践还几乎没有,所以就想来编个linux内核模块试试。

由于我装的虚拟机没有源码和相应的一些东东(例如build文件夹),所以先编译了内核。

1.先新建一台虚拟机,然后装好linux操作系统

2.下载一份linux内核源代码(我的是linux2.6.18),解压到虚拟机的某个目录下

3.使用make  mrproper

                          [root@xyly linux-2.6.39.4]# make mrproper                          #去除内核的依赖关系及编译后的垃圾信息

4. 配置你所想要的内核模块

 

  [root@xyly linux-2.6.39.4]# make menuconfig 或make xconfig 或 make gconfig

 

make menuconfig 在以菜单模式进入内核配置界面

 

make xconfig 是在图形界面模式进入内核配置界面

 

make gconfig 在图形界面模式进入内核配置界面

遇到一个问题就是用菜单模式安装失败,报缺少文件:

    

解决方法:

 

安装ncurses-devel,这个是红帽或者FC的安装程序,Ubuntu的需要安装libncurses5-dev

 

5.make命令编译内核

6.使用make  modules命令编译内核

 

[root@xyly linux-2.6.39.4]# make  modules  #编译内核模块

6.使用make modules_install安装内核

安装成功后在/lib/modules 下有一个2.6.18的目录。里面放的是新内核可加载的所有模块

7. 编译安装 make   install

sh /root/linux-2.6.39.4/arch/x86/boot/install.sh 2.6.39.4 arch/x86/boot/bzImage \
System.map "/boot"

 

内核安装完毕

 

8.[root@xyly boot]# ll initrd-2.6.39.4.img
-rw------- 1 root root 2722020 Aug 29 14:43 initrd-2.6.39.4.img
[root@xyly boot]# pwd
/boot

 

9.设置启动顺序,把刚编译的内核添加到grub中

 

(啊 哦、惊讶!!! 内核启动已经添加进去了,省的动手了)

 

修改/etc/grub.conf 中的default 启动顺序 如下

 

default=0

 

重启下系统,看看是否内核升级了。

 

[root@xyly ~]# uname -r
2.6.39.4

 

OK !!! 升级完毕!

转载于:https://www.cnblogs.com/songjiqiu/archive/2012/11/21/2781419.html