【个人笔记记录】qemu模拟器实现内核移植---第一步编译linux内核

1、下载linux内核

此处运用linux-5.4.91

https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.91.tar.gz

2、安装arm的交叉编译工具链

sudo apt-get install gcc-arm-linux-gnueabi

sudo apt-get install gcc-arm-linux-gnueabihf

这里有两种交叉编译工具链,目前还没有去了解两种的不同与使用情况,此处使用的是第一种(好像是有一种可以编译浮点型)

3、安装词法分析器flex和语法分析器bison与相关库

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install libncurses5-dev

有的linux系统有可能自带这两个分析器与库

4、编译内核

将linux内核文件解压后进入文件夹。

清理工程

make distclean

使用默认配置文件配置工程

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig

其中CROSS_COMPILE为指定交叉编译工具,ARCH为指定芯片架构 vexpress_defconfig为编译输出文件

vexpress_defconfig默认配置文件存储路径为

/home/docp/polemin/linux-5.4.91/arch/arm/configs/vexpress_defconfig

5、修改Makefile的两个变量值,指定芯片与交叉编译器

ARCH ?= arm CROSS_COMPILE ?= arm-linux-gnueabi-

6、进行编译,分别生成,内核镜像、模块以及设备树

make

make modules 编译模块
make dtbs 编译设备树

或者

make all 编译所有

ps:make XXXX.dtb编译单个设备树文件

内核镜像路径为./arch/arm/boot/zImage

设备树路径为./arch/arm/boot/dts/vexpress-v2p-ca9.dtb

7、注意点

1)此处使用的是vexpress开发板,所以linux内核编译时,默认配置文件、内核及设备树,都是vexpress对应的

2)内核来源:

①、www.kernel.org,linux内核官网,提供各个版本的linux内核

②、芯片厂商,厂商会挑选一个版本的内核,比如4.1.15版本,然后重点维护这个版本,供用户使用

③、开发板厂商,开发板厂商会下载芯片厂商提供的内核,然后在根据自己开发板需要,添加各种驱动,深入定制内核,供用户使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值