linux内核配置与编译

linux内核具有可定制的优点,具体步骤如下:

1,清除临时文件、中间文件和配置文件

a,  make   clean

remove most generated files but keep  the config

删除大部分产生的文件但保留配置文件

b,  make mrproper

remove all generated files + config files

删除所有产生的文件和配置文件

c, make distclean

mrproper + remove editor backup and patch files

在make   mrproper的基础上再加上编译器留下来的backup文件以及补丁文件

最全的是make  distclean,其次是make mrproper,最后是make clean,最全的不见得就是最好的,应视情况而定,若仅仅是想将编译后产生的.o文件删除,而不想删除配置文件,则选择make clean。所以应该根据自己的需求去选择合适的。

2,确定目标系统的软硬件配置情况,比如CPU的类型、网卡的型号,所需支持的网络协议等。

3,使用如下命令之一配置内核:

a,make config

基于文本模式的交互式配置

 

b,make menuconfig:

机遇本模式的菜单型配置(推荐使用)

c,make oldconfig:

使用已有的配置文件(.config),但是会询问新增的配置选项

和make config很相似,但是总得配置项还是那么的多,但是要求你回答的配置项减少了。他自己做了决定,但到遇到new时会讯问你。

d,mak xconfig:

图形化的配置(需安装图形化系统)只能在图形化的界面下使用

经过上面的配置后,会在此文件下增加一个.config来保存你的配置结果。

make menuconfig是最为常用的内核配置方式,使用方法如下:

1,使用方向键在个选项间移动;

2,使用“Enter”键进入下一层选单;每个选项上的高亮字母是键盘快捷方式,使用它可以快速的到达想要设置的选单项

3,进入在菜单后,输入y,则将其前面的括号变为‘*’,输入‘M’则将其前面的括号变为‘M’,输入n,则将其前面的括号的内容变为空。其中可以将输入为'y'或者为'n'的可以看成一类,他们会进行后面的编译,生成相应的.o文件,但是输'入为'n'的不会进行编译生成.o文件;但是选择为‘*’的文件有链接的过程,它会和所有选择为‘*’的文件作.o的链接,最后生成我们所要的zimage或其他的uimage文件等,但是选择为‘m’,则不会进行下面的链接操作了。

内核配置,利用已有的内核配置文件,在已有的基础上进行修改,linux系统为我们提供了很多的内核系统配置参考的文件,在arch中找到你的开发板相应的参考配置文件,然后将它拷贝到内核顶层所在的目录下面,拷在.config所在的目录下,命名为.config。此时用make menuconfig则是在原来的你拷贝过来的配置文件的基础上进行修改。自己不清楚地不要轻易去动。

4,编译内核:

1)make zImage

2)make bzImage

上面的两种方式都可以编译内核,他们的区别是在x86平台,zImage只能用于小于512k的内核,当我们的内核过大,并且我们是用make zImage来编译的内核,那么他此时会报错,然后再去用make bzImage去重新编译内核,当然你可以直接用make bzImage进行编译;在在编译的时候还有一个重要的选项,make zImage V=1或make bzImage V=1在编译的过程当中,会列出详细的编译信息,同时也更便于查找我们在编译内核的过程当中所发生的错误。

5,编译内核模块:

make modules

6,安装内核模块

make modules install

将编译好的内核模块从内核源代码目录copy至/lib/modules下,根据内核的版本会自动的创建一个子目录,子目录的名字是和下面的内核版本是一致的。比如2.6.29

7,制作init ramdisk

mkinitrd initrd -$version $version

例:mkinitrd initd -2.6.29 2.6.29

$version可以通过查询/lib/modules下的目录得到。

8,内核安装(x86平台)

1)cp arch/86/boot/bzImage /boot/vmlinuz-$version

2) cp $initrd /boot/

3) 修改/etc/grub.conf或者/etc/lilo.conf

注意:version为所编译的内核版本号

posted on 2013-10-07 16:50  我很勇  阅读(486)  评论(0编辑  收藏  举报

导航