基于100ask-imx6ull开发板移植5.4版本的内核

1. ARM交叉编译工具链下载

arm的交叉编译工具链可以直接在官网上进行下载:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads;imx6ull开发板是32位的,因此需要下载32位的工具链,在此次移植中使用的arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-linux-gnueabihf的版本的工具链。

2. Kernel源码的获取

这里直接使用的是100ask提供的修改后的源码:

git clone https://gitee.com/weidongshan/linux-imx

3. 编译Kernel

3.1 设置交叉编译工具链

export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabihf-
export PATH=$PATH:/《目录》/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin-

3.2 编译Kernel

#首先配置config
make imx_v7_defconfig
#编译
make zImage -j8

4. 从4.9版本的Kernel到5.4版本的Kernel的移植

4.1 设备树的移植

参考100ask提供的移植文档直接把4.9版本的设备树拷贝到5.4版本中

#为了防止出错可以在拷贝前进行备份
# cp arch/arm/boot/dts/imx6ull-14x14-evk.dts arch/arm/boot/dts/imx6ull-14x14-evk_back.dts
cp Linux-4.9.88/arch/arm/boot/dts/100ask_imx6ull-14x14.dts   arch/arm/boot/dts/imx6ull-14x14-evk.dts
#然后
make imx_v7_defconfig
make dtbs

在编译过程中会报错:
Error: arch/arm/boot/dts/imx6ull-14x14-evk.dts:234.1-10 Label or path flexcan1 not found
原因是找不到flexcan1 的节点,查看设备树include的文件中的内容发现使用的是can1,因此只需要把节点名称改为can1即可。

4.2 配置tftp网络下载文件到DRAM

首先,要配置tftp的服务器,可以参考https://blog.csdn.net/qq_52836452/article/details/129642566,由于我的虚拟机网络连接使用的NAT的连接,需要在虚拟网络编辑器中配置tftp的端口映射关系。

#把内核和设备树文件发到tftp的目录中,进入到boot的命令行,
#1.配置设备的ip 可以通过两种方式
#1.1 手工设置的方式
setenv ipaddr 《ip地址》
#1.2 自动获取的方式
dhcp
#2.配置主机(服务器)的ip
setenv serverip 《ip地址》
#3.ping下主机的ip
只要显示 host 《ip地址》 is alive 就证明网络是通的
#4.tftp下载文件
tftp 0x80800000 zImage
tftp 0x83000000 imx6ull-14x14-evk.dtb
#5.启动内核
bootz 0x80800000 - 0x83000000

至此内核可以顺利启动了,但是会报错:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
因为没有根文件系统,没有办法挂载文件系统。

后面会进行根本文件系统的进行构建…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值