概述
make menuconfig:修改、添加内核配置选项,最后生成.config配置文件。
make all:首先编译.config得到没有压缩的内核核心vmlinux,然后将其压缩生成引导过程使用的内核镜像bzImage,最后编译内核选项中相关的module。 压缩过程:首先对vmlinux瘦身(即用objcopy命令删除注释得到vmlinux.bin)并压缩(即用gzip命令压缩vmlinux.bin得到vmlinux.bin.gz),再用ld连接器根据连接脚本arch/i386/boot/compressed/vmlinux.scr将vmlinux.bin.gz转换为piggy.o(该文件包含压缩的系统核心)。 接下来ld连接器会将piggy.o、head.o、misc.o链接生成新的文件vmlinux。(其中misc.o包含zlib算法的解压缩代码C语言的实现,head.o包含的汇编代码用于设置解压程序用到的参数及堆、栈) 然后再调用objcopy命令对vmliux瘦身得到vmlinux.bin(此处的vmlinux.bin是经过压缩的内核核心与前面的vmlinux不一样)。 最后利用内核镜像构建工具arch/i386/boot/tools/build 将bootsect、setup、vmlinux.bin三个文件依次存放到新建的bzImage文件中去。 然后就是编译一些相关的module。
make module_install:安装内核模块。
make install :安装内核 该命令调用了内核目录中的install.sh的shell脚本。该脚本首先将bzImage、System.map复制到/boot目录,并将这两个文件依次改名为vmlinuz-,System.map-。接着调用脚本/sbin/installkernel根据在内核配置、编译阶段生成的内核模块以及模块依赖关系/lib/modules//modules.dep生成引导过程使用的临时根文件系统initrd。最后修改/boot/grub/grub.conf文件、添加新的引导菜单。
最后
以上就是轻松鼠标为你收集整理的linux 2.6内核镜像,Linux2.6内核镜像的构建过程的全部内容,希望文章能够帮你解决linux 2.6内核镜像,Linux2.6内核镜像的构建过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复