文章目录
- 1.编译流程
- 1.1获取sdk源码
- 1.2 补充:下载riscv64-glibc-gcc-thead_20200702.tar.xz
- 1.3 补充:安装mtool工具
- 1.4 安装必要依赖包
- 1.5 编译sdcard 最小系统镜像
- 1.6 烧录最小镜像系统到tf(SD)卡
- 1.6.1 安装烧录工具
- 1.6.2 格式化SD卡
- 1.6.3 烧录镜像到sd卡
- 1.7 运行系统
- 2.问题踩坑记录
- 问题1:make指令不执行
- 问题2:riscv64-glibc-gcc-thead_20200702.tar.xz File format not recognized
- 问题3: /bin/sh: 1: mcopy: not found
整个编译的耗时主要是github的下载速度,很多依赖包都需要从github下载。
这里我以东山派的官方教程为主,根据我的实际情况稍作调整,梳理一下编译buildroot流程。
官方教程链接:使用buildroot-SDK编译构建系统
1.编译流程
1.1获取sdk源码
有2个服务器github和gitee,我使用gitee的源。
依次执行命令:
book@virtual-machine:~$ git clone https://gitee.com/weidognshan/buildroot_dongshannezhastu
book@virtual-machine:~$ cd buildroot_dshannezhastu
book@virtual-machine:~/buildroot_dongshannezhastu$ git submodule update --init --recursive
book@virtual-machine:~/buildroot_dongshannezhastu$ git submodule update --recursive --remote
这个步骤还是比较快的,10分钟以内,取决于网速。
1.2 补充:下载riscv64-glibc-gcc-thead_20200702.tar.xz
这个步骤参考后面的问题2.
1.3 补充:安装mtool工具
这个步骤参考后面的问题3.
1.4 安装必要依赖包
sudo apt-get install -y libncurses5-dev u-boot-tools
1.5 编译sdcard 最小系统镜像
book@virtual-machine:~/buildroot_dongshannezhastu$ cd buildroot-awol/
book@virtual-machine:~/buildroot_dongshannezhastu/buildroot-awol$ make BR2_EXTERNAL="../br2lvgl ../br2qt5 ../br2nezhastu" dongshannezhastu_sdcard_core_defconfig
book@virtual-machine:~/buildroot_dongshannezhastu/buildroot-awol$ make
1.6 烧录最小镜像系统到tf(SD)卡
原文档:东山哪吒快速启动
1.6.1 安装烧录工具
1.6.2 格式化SD卡
1.6.3 烧录镜像到sd卡
1.7 运行系统
把SD卡插到开发板,上电,检查一下是不是最新编译的:
我对比一下原来的一张烧录官方提供的image的文件日期:
2.问题踩坑记录
问题1:make指令不执行
root@SK-JNTINRTMRDZW:/home/hwd/buildroot_dongshannezhastu/buildroot-awol> make
Your PATH contains spaces, TABs, and/or newline (\n) characters.
This doesn't work. Fix you PATH.
support/dependencies/dependencies.mk:27: recipe for target 'dependencies' failed
make: *** [dependencies] Error 1
百度解决方法:《This doesn‘t work. Fix you PATH》
采用这个方法顺利解决(切换环境变量)。
问题2:riscv64-glibc-gcc-thead_20200702.tar.xz File format not recognized
WARNING: no hash file for riscv64-glibc-gcc-thead_20200702.tar.xz
....../riscv64-glibc-gcc-thead_20200702.tar.xz: File format not recognized
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
去到该文件所在目录 /home/hwd/buildroot_dongshannezhastu/buildroot-awol/dl/toolchain-external-custom 看到,文件的大小只有1k,不知道是什么原因导致的。
继续百度搜到《为全志D1/RISCV64设备移植openwrt-22.03系统》,提到要手动下载 riscv64-glibc-gcc-thead_20200702.tar.xz,提供了东山派的官方链接:《快速使用Tina-SDK 指南》:
下载完成后,发现文件名是 riscv64-glibc-gcc-thead_20200702tar.xz :
增加小数点后,不用解压,重新执行make,自动解压成功,往下进行。
问题3: /bin/sh: 1: mcopy: not found
没有安装mtool工具:
apt-get install mtools
重新make,终于完成: