前言:学习过韦东山老师的IMX6ULL系列的Linux开发教程,第一次接触RK3566系列的,查询了不少资料,学习到了很多。将学习到的知识总结一下,主要写一下交叉编译工具链的配置和泰山派实现与Windows电脑文件互传,方便开发。
参考资料:主要参考了正点原子RK3568的教程,认真学习的小诚同学(我室友的学习博客,里面有很多嵌入式Linux的学习笔记和学习资料路线),泰山派提供的文件资料,RK官方文档,遇到问题时也参考了很多CSDN上的博客。
开发环境:Windows11,虚拟机为学习过韦东山老师IMX6ULL系列教程的18.04.1的ubuntu虚拟机,刷入泰山派提供资料内的Ubuntu镜像的泰山派(刷入教程和镜像提供资料内有)。
一、交叉编译工具链的配置
首先需要获得系统的SDK,查阅RK官方文档或者使用泰山派提供的资料,使用泰山派内提供的资料更好,因为里面有针对泰山派写的设备树等等。
查阅RK官方文档:在Rockchip Linux软件开发指南中有提到,可通过代码服务器下载或者通过本地压缩包解压获取,具体方式这里就不提了,可以去查手册,未来如果有更新,可以通过这些途径下载最新的SDK资料。
泰山派提供的资料:系统SDK在泰山派提供的资料里面有,具体路径为:
./第05章.【立创·泰山派】系统SDK/【SDK】Linux/tspi_linux_sdk_20230916.tar.gz
把整个tspi_linux_sdk_xxxxxxxx.tar.gz通过FileZilla传输到Ubuntu虚拟机上,进入到该文件在的目录,输入命令行(当前我使用的是tspi_linux_sdk_20230916.tar.gz)
tar -zxvf tspi_linux_sdk_xxxxxxxx.tar.gz
命令解释:
tar:解压命令 。
-z:使用 gzip 压缩算法进行解压或压缩。
-x:表示提取(解压)文件。
-v:显示详细的操作信息,即在解压过程中显示文件列表。
-f:指定要操作的文件名。
tspi_linux_sdk_xxxxxxxx.tar.gz:被解压对象。
解压完成后,可以看到一个Release文件夹,这就是完整的SDK包,以下是SDK工程目录的介绍,节选自Rockchip_Developer_Guide_Linux_Software_CN.pdf
可以看到我们需要配置的交叉编译工具链,在prebuilts中。
先执行:
vi ~/.bashrc
在最后添加上:
export ARCH=arm64
export CROSS_COMPILE=aarch64-rockchip-linux-gnu-
export PATH=$PATH:/home/book/lckfb/Release/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/book/lckfb/Release/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/lib
最后一定要执行以下
source ~/.bashrc
这里例如:
/home/book/lckfb/Release/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin
前面的/home/book/lckfb这是看你自己将这个文件放在那里的,需要你根据自己的实际情况进行修改的。由于我这虚拟机开发过IMX6ULL,所以在我的.bashrc文件中会有IMX6ULL的交叉编译工具链的设置,我先把它注释掉了,下面是我新添加的针对RK3566的交叉编译工具链。
添加完,wq保存退出
执行:
source ~/.bashrc
最后在命令行输入以下测试
aarch64-rockchip-linux-gnu-gcc -v
如果出现如下图,则表明交叉编译工具链安装完成
至此,针对泰山派的交叉编译环境配置完成,现在的Ubuntu可以针对RK3566进行开发了。
需要注意的是,前面直接修改.bashrc文件不太适合多开发板的开发,最好是将bashrc中配置关于交叉编译链的都全部删除,每次交叉编译适用于不同的的程序板子前,在命令行依次输入相关开发板的交叉编译链配置命令。
比如我想开发IMX6ULL了,我会在命令行输入:
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
比如我想开发RK3566了,我会在命令行输入:
export ARCH=arm
export CROSS_COMPILE=aarch64-rockchip-linux-gnu-
export PATH=$PATH:/home/book/lckfb/Release/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/book/lckfb/Release/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/lib
二、Windows传输文件给泰山派开发板
需要使用MobaXterm,使用串口与泰山派连接,我是用2A的充电头用typeC给泰山派供电,同时接好wifi天线,具体物理连接图如下图所示:
将USB-TTL连接到电脑,打开MobaXterm,设置波特率为1500000(默认波特率为1500000)。
nmcli device wifi connect "你的wifi名称" password "你的wifi密码"
连接完成后依次输入以下命令,安装ssh服务
sudo apt-get install openssh-client=1:8.2p1-4ubuntu0.11
sudo apt-get install openssh-server
sudo ps -e | grep ssh
安装完之后可以输入以下命令行进行测试
systemctl status sshd.service
如果有,则正常。
使用ifconfig,获取开发板当前的地址,当前地址为192.168.1.112
在FileZilla中输入,点击快速连接
主机名:sftp://192.168.1.112
用户名:lckfb
密码:lckfb
端口:22
连接成功后,会列出开发板上的文件夹,就可以进行文件传输了。