前言
手上的一块Firefly-RK3288开发板,看了下Firefly提供的SDK,压缩包就有15个多G,直接吓退。还好最近看到了韦东山老师提供的教学资料。记下学习步骤及遇到的问题解决办法。
1、开发环境
资料提供的有百问网制作的 ubuntu18.04 虚拟机镜像。但自己已经有搭好的ubuntu18.04.6虚拟机环境,就没用提供的。
2、文件上传到虚拟机环境
可以通过共享文件夹,也可以通过 FileZilla 工具上传。共享文件夹或者FileZilla 实现网上很多教程,不再累述。
将资料光盘中的(07_bsp_sdk/100ask_firefly-rk3288)整个文件夹里的4个压缩文件上传到 ubuntu 系统下/home/owen/workspace/RK3288文件夹下。
3、配置交叉编译工具链
3.1、解压ToolChain
进入/home/owen/workspace/RK3288文件夹下,解压ToolChain.tar.gz
tar -zxvf ToolChain.tar.gz
得到ToolChain文件夹。
3.2、设置交叉编译工具
设置交叉编译工具主要是设置 PATH, ARCH 和 CROSS_COMPILE 三个环境变量。设置这 3 个环境变量有多种方法:
3.2.1、永久生效
修改用户配置文件, 修改如下:
gedit ~/.bashrc
在行尾添加或修改:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/home/owen/workspace/RK3288/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
3.2.2、临时生效
直接在当前终端执行,执行完“export”命令后,该设置只对当前终端有效:
export PATH=$PATH:/home/owen/workspace/RK3288/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
3.2.3、手动指定
先设置 PATH 环境变量,然后在 make 编译时指定 ARCH 架构 CROSS_COMPILE 交叉编译工具链:
export PATH=$PATH:/home/owen/workspace/RK3288/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
3.3、测试交叉编译工具链
4、编译 bootloader
使用版本为 uboot2017.09,韦东山老师提供的源码针对板子进行过修改。
4.1、解压u-boot源码
/home/owen/workspace/RK3288文件夹下,终端执行:
tar -zxvf uboot2017.09.tar.gz
得到uboot2017.09文件夹。
4.2、编译uboot镜像
不同的开发板对应不同的配置文件,配置文件位于 uboot2017.09文件夹下的 configs/ 目录,uboot 的编译过程: