上一节,我们安装了基于虚拟机的ubuntu系统,并且建立了samba服务打通了win10和ubuntu系统中的文件传输。本节课我们继续对立创官方提供的SDK文件进行编译,学习编译的方法。引用官方的话:如果只想下载别人编译好的固件并且做一些应用层的开发那可以不用编译SDK,那如果你想自己去适配一些驱动,比如在内核中加入CH340驱动,或者点亮一款新的屏幕,又或者你想优化或者定制属于自己的东西,甚至制作一款自己的板子这都离不开SDK编译。SDK编译并不难,大家常见的一般也都是环境问题,跟着教程一步一步来不会有太大问题,如果出现一些特殊问题也欢迎一起交流。
一、SDK文件下载
官方资料中:Docs
第5章的系统SDK给大家提供了SDK的下载路径,大家直接下载即可。
1.Linux SDK 文件夹
1.tspi_linux_sdk_20230916.tar.gz这个是之前老的没有git和repo的版本,后面会删除掉大家可以不用下载
2.tspi_linux_sdk_repo_20240131.tar.gz repo版本推荐大家使用这个
2.Android SDK 文件夹
1.tspi_android_sdk_20230909.tar.gz这个是之前老的没有git和repo的版本,后面会删除掉大家可以不用下载
2.tspi_android_sdk_repo_20240202.tar.gz repo版本推荐大家使用这个。
二、SDK文件传输
1.拷贝文件
打开上一节,我们映射好的ubuntu盘符X盘。
跟windows下的操作一样,把我们在百度网盘上下载的sdk文件,直接拷贝到ubuntu系统中。
2.校验
校验的目的是为了防止下载过程中出现的错误,用md5sum 查看下载的SDK的md5值:
应该是和文本文件打开一样的信息:a30f1d0fdb97ca994a82689fa26ba429
3.解压缩文件
输入解压缩命令:
tar -zxvf tspi_tspi_linux_sdk_repo_20240131.tar.gz
系统开始解压缩文件,出现下面命令行即为解压缩结束。
会解压缩出来如下文件:
三、编译前的准备工作
1.安装repo
2.同步代码
.repo/repo/repo sync -l -j88
3.解压缩buildroott_dl
解压缩另外一个文件buildroot_dl_4c7c9df616fb.tar.gz,首先确保该文件放在与repo同一个目录里面。然后执行解压缩命令。
打开解压缩目录的/xxx/buildroot/dl,会发现很多安装包,供大家下载报错时候使用。
4.准备开始编译
a.准备编译环境
编译Linux SDK需要安装下列库:
sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect \
g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib \
g++-multilib unzip device-tree-compiler ncurses-dev
执行结果如下:
b.泰山派SDK板级配置
开始编译前需要先设置泰山派的板级配置,
./build.sh device/rockchip/rk356x/BoardConfig-rk3566-tspi-v10.mk
这里我们根据提示选择3,RK3566--泰山派。
c.查看配置是否生效
./build.sh -h kernel
运行后可以看到配置文件正是tisp,证明配置生效
四、编译buildroot
选择全编译buildroot操作系统
export RK_ROOTFS_SYSTEM=buildroot
运行自动全编译命令
./build.sh all # 只编译模块代码(u-Boot,kernel,Rootfs,Recovery)
# 需要再执⾏./mkfirmware.sh 进⾏固件打包
1.开始编译
2.配置电源
第一次编译需要选择电源,我的配置大概是20分钟左右,开始选择电源配置。
开源的原理图可以查看VCCIO4和VCCIO6是1.8V,其他全是3.3V。
配置完后会出现kernel编译成功的字样。然后开始编译buildroot。
3.编译成功
经过两个小时的漫长等待,终于编译成功:
虽然编译完成了但是我们还需在执行固件打包
./mkfirmware.sh
打包成功后,固件会输出到rockdev
目录