没志青年
发布于 2025-06-14 / 23 阅读
0

RK3506 Linux开发学习 环境准备

开发板:TL3506-MiniEVM_S(256MB DDR+256MB NAND FLASH) ¥299

SDK 位置:\4-软件资料\Linux\LinuxSDK\LinuxSDK-v1.2.tar.gz

  1. 内核:\4-软件资料\Linux\Kernel\src\linux-6.1.99-v1.2-ge46ec6e.tar.gz

  2. 根文件系统:

  3. uboot:

  4. 交叉编译工具:\4-软件资料\Linux\Tools\gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.gz(适用于uboot、kernel)

U-Boot-SPL

make ARCH=arm CROSS_COMPILE=/opt/Linux_Workspace/TL3506-MiniEVM/arm_gcc/bin/arm-none-linux-gnueabihf- tl3506_minievm_nand_defconfig
make ARCH=arm CROSS_COMPILE=/opt/Linux_Workspace/TL3506-MiniEVM/arm_gcc/bin/arm-none-linux-gnueabihf- olddefconfig

tl3506_minievm_nand_defconfig 这个文件是在 SDK 的 device/rockchip/rk3506/ 目录下

给他复制到 arch/arm/configs

编译流程:

./build.sh -->  -->

它的配置文件中有很多 RK_ 开头的变量,不是给内核使用的,而是给

瑞芯微的芯片是这么玩的:

通过一个脚本文件 ./build.sh 入口,完成各种功能。

其中交叉编译工具默认有在 目录下,这个脚本也是用的这个。

它编译有一套流程的:

然后 .config 内核配置文件中,它不仅仅有内核配置的,还有一些 RK_ 开头的自己用的,上面的各种 sh 脚本就拿到这些配置,然后处理。

和之前的 i.MX6ULL 那种传统的编译方式不一样,瑞芯微的加了一层。

把output目录删除,然后

./build.sh tl3506_minievm_nand_defconfig

编译内核

./build.sh kernel

1、uboot 烧录到 TF 卡

参考:3-用户手册/2-2-Linux系统固化手册.pdf

编译报错

/opt/Linux_Workspace/TL3506-MiniEVM/arm_gcc/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/plugin/include/system.h:691:10: fatal error: gmp.h: 没有那个文件或目录 691 | #include <gmp.h> | ^~~~~~~ compilation terminated. make[2]: *** [scripts/gcc-plugins/Makefile:54:scripts/gcc-plugins/arm_ssp_per_task_plugin.so] 错误 1

原因:缺少依赖

解决:

sudo apt install libgmp-dev libmpfr-dev libmpc-dev

操你妈,傻逼 瑞芯微,搞这么难用。