全志H3主线U-Boot及Linux编译流程总结

写这篇文章的目的:

一个月前买了块香橙派One,现在又入手了块香橙派Pc plus,结果当初的编译流程有点记不清楚了,编译又耽误了一个下午的时间,看来还是要总结一下。
在这篇文章里,使用的U-boot版本为2020-04。
使用的Linux内核版本为5.3.5+(可能不是主线内核,因为是从香橙派Github上下载的5.3.5,所以和主线的内核会有稍微的区别)。
负责交叉编译的主机系统为Ubuntu 18.04。
用到的交叉编译链为arm-linux-gnueabihf- 7.2.1以及4.9。

1.设置交叉编译链环境

解压下载的交叉编译链至你想要的地方,然后设置并且更新PATH,输入arm-linux-gnueabihf-gcc -v显示版本进入下一步。

2.编译U-boot-2020-04

注意:主线U-boot要求交叉编译链大于6.0,所以在一开始我准备了7.2.1的交叉编译链。
注意:5.4版本有bug
在U-boot的目录下输入:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- orangepi_pc_plus_defconfig

生成 orangepi_pc_plus的一些配置文件
接着输入:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

如果你的CPU是8核16线程,为了加快编译速度可以输入,其他CPU类比推理一下

make -j16 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

等待编译结束…
会生成以下文件

u-boot-sunxi-with-spl.bin
u-boot.bin
u-boot-dtb.bin等

初学者看到这些文件会比较蒙蔽,先说一下u-boot-sunxi-with-spl.bin是我们需要的U-boot程序
接着稍微解释一下这些文件的区别:
首先U-boot代表的是U-boot的意思,这个没毛病。。
spl代表的是U-boot的创造者为芯片启动提供的自己的解决方案,不同厂商的处理器内部的RAM大小,有的厂商芯片内部RAM比较大,能直接一步到位将外部的boot程序烧进内部RAM对处理器进行设置;而有的厂商内部RAM比较小,不能一步到位将外部的boot程序烧进RAM,而是分多步,先拷贝最重要的boot程序进去设置,再到主存里完成剩余的设置。面对不同厂商自己不同boot方案,U-boot采用了spl来完成对绝大部分的芯片进行兼容。大概意思是这样的,可能不太准确。
u-boot-sunxi-with-spl.bin就是再U-boot的主程序最前面加上spl的程序。
U-boot编译结束,进入下一步内核编译

3.主线内核编译

将交叉编译器切换至4.9,当然也可以不切换,之所以使用4.9的原因是4.9稳定。
主线编译分为三步:
1.编译内核;
2.编译设备树文件;
3.编译模块(不在内核内的)

1.编译内核:
和U-boot编译类似,
进入内核主线目录下输入

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun8iw7p1smp_defconfig

生成配置文件
接着输入:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

CPU高级的记得加上-j

编译完成后在	/home/mainline/mainline_kernel/arch/arm/boot
zImage,这是我们内核目标文件,还需要处理一下,先不管。

接着输入:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
编译设备树
目标文件在/home/mainline/mainline_kernel/arch/arm/boot/dts下
sun8i-h3-orangepi-pc-plus.dtb文件

再输入

mkdir output 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/mainline/mainline_kernel/output modules_install
在output文件夹下得到一系列模块文件,先不管

至此编译流程结束,再简单处理一下即可烧入至SD中启动香橙派PC_Plus。
第一次写博客,操作不熟悉,看的不爽望原谅,接下来会写如何U-boot启动内核和内核的一些配置及坑

4.补充问题及解决方法

安装交叉编译器:
apt-get install gcc-arm-linux-gnueabihf
recipe for target 'scripts/basic/fixdep' failed
apt-get install

Python.h: No such file or directory
sudo apt-get install python3-dev
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
全志H3是一款基于ARM架构的处理器,它广泛应用于嵌入式系统和物联网设备中。要进行H3的Linux移植,可以按照以下步骤进行操作: 1. 准备开发环境:首先需要搭建好交叉编译环境,包括安装交叉编译工具链和相关的开发工具。 2. 获取内核源码:从全志官方或其他可靠的渠道获取H3的内核源码。 3. 配置内核:根据具体的硬件平台和需求,对内核进行配置。可以使用全志提供的配置文件作为基础,如引用[3]中的env.cfg文件。根据实际情况,可以修改配置文件中的参数,如设置启动参数、分区大小等。引用[1]和[2]中的内容提供了一些具体的配置示例。 4. 编译内核:使用交叉编译工具链编译内核源码,生成可执行的内核镜像文件。 5. 烧录内核:将编译生成的内核镜像文件烧录到目标设备的存储介质中,如SD卡或闪存。 6. 配置启动参数:根据具体的启动方式,配置引导加载程序(如U-Boot)的启动参数,以正确加载和启动内核。 7. 测试和调试:将烧录好的设备连接到目标设备上,进行测试和调试,确保系统正常启动并能够运行所需的应用程序。 需要注意的是,以上步骤只是一个大致的指导,具体的移植过程可能因硬件平台和需求的不同而有所差异。在实际操作中,可能还需要进行一些额外的配置和调整。建议参考全志官方提供的文档和社区中的讨论,以获取更详细和准确的移植教程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值