全志H3主线U |
您所在的位置:网站首页 › 六翼天使怎么搭配装备 › 全志H3主线U |
全志H3主线U-Boot及Linux编译
写这篇文章的目的:1.设置交叉编译链环境2.编译U-boot-2020-043.主线内核编译4.补充问题及解决方法
写这篇文章的目的:
一个月前买了块香橙派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 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |