嵌入式linux内核编译、启动

1、编译步骤

1、生成配置文件 .config
2、make
3、在arch/arm/boot/下得到内核的镜像文件;

1.1生成配置文件的方式

1、如果你是使用第三方修改过的内核源码,那么一般在arch/arm/configs目录下面有很多基于不同开发板的配置文件,将你需要的配置文件拷贝到内核源码根目录即可;
2、对于没有提供有现成配置文件的源码,一般使用图形化界面进行配置(执行make menuconfig),生成**.config**文件;使用这种配置时,除开编译选项的配置外,值得注意的是编译工具的指定及内核启动参数的指定。

到这里我们只是做到了知其然,而知其所以然,则涉及到Kconfig文件,关于Kconfig文件如何得到配置的界面选项参考文章:
https://www.cnblogs.com/jiangzhaowei/p/7528099.html

交叉编译工具配置
在generl setup子目录cross-compile tool prefix指定你要使用交叉编译工具的目录即可
内核启动参数
在boot option子目录,Default kernel command string里指定 你要使用的内核启动参数即可;

1.2 编译得到内核镜像

这里我们要注意到的是,一般嵌入式linux都是使用uboot的,这样使得我们只关心uImage,关于编译得到的内核镜像的区别参考文章:
https://blog.csdn.net/yi412/article/details/19131549
得到uImage的方法为在编译时指定uImage格式:make uImage

1.3 生成的镜像文件目录

得到的镜像文件目录为arch/arm/boot

2、内核启动流程

uboot将内核镜像加载到内存后,则开始执行内核,最先开始执行board_init初始化,即设置时钟,初始化i-cache;简而言之,就是设置板子,初始化C代码执行环境。在内核启动的最末尾,根据内核启动参数,挂载根文件系统。由内核启文件系统下的/sbin/init程序;完成由内核态到用户空间的转换。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值