linux内核配置与编译

Linux内核配置与编译

1.    清除临时文件

1.    make clean

删除产生的文件,但保存配置。

2.    make mrproper

删除产生的文件同时删除配置

3.    make distclean

删除mrproper并且删除补丁之类的。

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

3.配置内核的命令:

1)make config:基于文本模式的交互式配置

会每一个问题一个一个的问你,是否需要配置,很麻烦。

2)make menuconfig:基于文本模式的菜单型配置。(推荐使用)

对于每一个选项,都本身就有一个默认的值。

menuconfig安装功能进行了分类。

通过空格可以变换前面的选项。或是y n m,y对应*,m对应M,n对应空。

Y N M的选择之间的区别可以用一下来反映:

(*)A.c --------------A.o ------------zImage

(*)B.c --------------B.o-------------zImage

(M)D.c --------------D.o

( )E.c -------------

Y和M有编译过程,N没有编译过程,且Y有链接过程。

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

与config类似,一直询问问题。与make config相比,要求你必须做决定的配置项相对较少。只有后面有new的,才会询问。

 

4)make xconfig:图形化的配置(需安装图形化系统)

 

通常参考一个已有的内核。例如:在Linux 2.6.29中的一个arch/文件

打开arch下的一个arm文件。再在其中打开config,在config中的所有文件都是供你去参考的配置文件。例如:我们选择的6410的开发板,我们就应该去参考s3c6410_defconfig,接下来将s3c6410_deconfig复制到相对应的arch/arm/mach-s3c6410。

 

内核的编译

make zImage

make bzImage

在X86平台,zImage只能用于小于512k的内核(其他平台没有区别)

选项 make zImageV=1

    make bzImage V=1 加了等于1的时候,可以看到所有的编译过程。

编译好的内核在arch/arm/里的相对应的体系结构/boot

 

编译内核模块 makemodules

安装内核模块,makemodules_install

将编译好的内核模块从内核源代码目录copy至/lib/modules下

 

内核模块编译好了之后,要去制作ramdisk

 mrinitrd initrd -$version $version

  第一个version是取得名字,第二个version是你的内核版本。

***mrinitrd在有些环境下没有,需要自己安装,此时,用mkinitramfs代替mrinitrd这样就可以制作initrd文件了。***

例如:mrinitrdinitrd initrd-2.6.29 2.6.29

是将linux2.6.29下的lib文件夹中的modules里的2.6.29做成ramdisk文件,所以第二个version要与modules里的文件一样。(此步还没解决。)

 

内核安装(x86平台)

1.cp arch/x86/boot/bzImage/boot/vmlinuz-$version(取一个名字)

***$version为所编译的内核版本号***

2.将做好的ramdisk cp到boot下

Cp $initrd/ boot/

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值