泰山派tspi-上手编译SDK连接WIFI

本文介绍了如何在泰山派上使用SDK进行系统镜像烧录,包括无需编译SDK的快速入门,以及SDK各目录功能的解析。着重讲述了如何在rk3566平台上利用SDK的模块代码进行人脸识别和监控摄像头开发,并详细步骤演示了从基础配置到全编译、固件打包和烧录的过程。

泰山派太精致了!!!,简直就是艺术品。计划会拿它做一个DIY的AI相机。

烧录完整镜像

参考镜像烧录

直接下载系统镜像到泰山派,无需编译SDK,但是要做开发的话,还是需要编译SDK,烧录各个部分的镜像。

什么是SDK

参考《【正点原子】ATK-DLRV1126 系统开发手册V1.5》

随着芯片性能的强大,越来越多的组件加入,例如tspi的rk3566上就有GPU和NPU,就需要处理各种依赖。

SDK包就是半导体原厂对芯片所有软件资源的打包,包括kernel、u-boot 和 rootfs等等其他库。

优点:使用SDK不用安装特殊的软件和库,自带交叉工具链、文件系统和第三方库,可以直接编译出系统镜像,开发环境搭建比较容易。

缺点:非常大,臃肿,不好上手。


SDK每个目录或者文件的作用:

  • app : 存放上层应用程序的目录。
  • buildroot :SDK 包使用的文件系统为 buildroot。
  • build.sh :编译用的脚本,使用方法后面会教。
  • device/rockchip :存放每个平台的一些编译和打包固件的脚步和预备文件。
  • docs :存放 RK 开发指导文件、平台支持列表、工具使用文档、Linux 开发指南等。
  • envsetup.sh :要修改文件系统时候要设置的环境脚本。
  • external : 存放相关的库,包括音频,视频等。
  • kernel :kernel 源码。
  • makefile :整个 SDK 包编译的 Makefile。
  • mkfirmware.sh :固件打包使用的脚本,默认在当前路径下的 rockdev 目录。
  • prebuilts : 存放交叉编译工具链。
  • rkbin: 存放固件和工具。
  • rkflash.sh : linux 下的系统烧录脚本。
  • tools :存放固件和工具的目录。
  • u-boot :U-boot 源码目录。
  • rockdev:存放编译输出固件的目录(整个 SDK 包编译完成后就会创建)。

一个完整的 SDK 包除了 kernel、u-boot、buildroot 之外,还需要提供上层的第三方库和 APP,第三方库和 APP 合起来叫做模块代码。
像之前的6ull和MP157开发,只有 3 座大山(kernel、u-boot 和 buildroot),没有模块代码,这样开发起来很麻烦。

有了模块代码后,我们做产品就很容易了。比如:在 rv1126 上做人脸识别可以参考 rockface 模块代码。
也可以做监控摄像头可以参考common_algorithm、ipc-daemon、ipcweb-backend 和 ipcweb-ng 等等。

模板代码基本在external和app目录下面。

编译SDK

参考:立创泰山派 飞书文档

1.基础配置操作

我使用的是韦东山的驱动实验班虚拟机,ubuntu 18.04。之前是编译开发过imx6ull。

开始按照文档开发之前需要先修改环境变量,一开始我似乎因为这个报错了。

vim ~/.bashrc

把最后面的三行注释掉,如:

# 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

保存退出。执行命令:

source ~/.bashrc

接着,把资料里面的SDK压缩包拷贝到虚拟机

使用文档中的目录解压会报错:

tar -zxvf tspi_linux_sdk_xxxxxxxx.tar.gz
命令解释:
tar:解压命令 。
-z:使用 gzip 压缩算法进行解压或压缩。
-x:表示提取(解压)文件。
-v:显示详细的操作信息,即在解压过程中显示文件列表。
-f:指定要操作的文件名。
tspi_linux_sdk_xxxxxxxx.tar.gz:被解压对象。

因为权限问题

所以可以使用ubuntu的右击文件解压:

然后就可以按照官方文档进行操作了

2.开始编译

进入~/tspi_linux_sdk_20230916/Release

(1)编译环境配置

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

(2)SDK板级配置

./build.sh lunch

查看是否生效

./build.sh -h kernel
book@100ask:~/tspi_linux_sdk_20230916/Release$ ./build.sh -h kernel
###Current SDK Default [ kernel ] Build Command###
cd kernel
make ARCH=arm64 rockchip_linux_defconfig 
make ARCH=arm64 tspi-rk3566-user-v10-linux.img -j12

(3)全编译

注意,一定要先全部编译一遍,再编译部分(u-boot,kernel,recovery等)才不容易报错,例如想要编译内核,有些支持可能并不是都在内核中,如果没有全部编译过一遍,有些依赖会没有导致报错。

查看帮助

./build.sh -h

设置环境变量,选择buildrot操作系统,然后运行脚本:

export RK_ROOTFS_SYSTEM=buildroot
./build.sh all

第一次编译需要选择电源:例如

引脚PMUIO2VCCIO1VCCIO3VCCIO4VCCIO5VCCIO6VCCIO7
1.8 V(1800000)
3.3 V(3300000)

(之前表格搞反了,已经修正,感谢评论区Mikes_Will的提醒)
等待编译成功,我13400编译了近两个小时(可能因为开了很多应用和虚拟机只分配了四核有关)

接着执行固件打包:

./mkfirmware.sh

~/tspi_linux_sdk_20230916/Release/rockdev下会有打包好的固件:

book@100ask:~/tspi_linux_sdk_20230916/Release/rockdev$ ls
boot.img  MiniLoaderAll.bin  misc.img  oem.img  parameter.txt  recovery.img  rootfs.ext4  rootfs.img  uboot.img  userdata.img

3.烧录

拷贝到windows上,

参考立创文档,切到Loader模式:

打开瑞芯微开发工具:

完成

连接WIFI

这个部分简单

先插上天线哦,信号好很多

直接使用命令行:

nmcli device wifi connect "xxxxxx" password "yyyyyy"

删除网络:

root@localhost:~# nmcli con show
NAME           UUID                                  TYPE  DEVICE
HUAWEI-HiLink  dab2a9c3-c66f-406d-b0f8-0dcc76be4f8c  wifi
wlan0
root@localhost:~# nmcli con delete HUAWEI-HiLink

更多学习与项目笔记见我的个人网站
https://wanghaicheng.online/

<think>好的,我现在需要帮助用户解决泰山编译失败的问题。用户提供了四个引用,我需要先仔细看看这些引用内容,找出可能的问题点和解决方案。 首先,引用[1]提到用户在编译过程中遇到了很多问题,特别是SDK下载和开发环境搭建。这说明用户可能在初始步骤就出错了,比如SDK的下载是否正确,或者环境配置有没有问题。用户可能没有正确下载SDK或者没有按照官方文档的步骤来搭建环境。 引用[2]提到用户在使用vm安装Ubuntu 20.04时,用secureCRT的rx命令发送bash提示没有该指令,后来通过apt安装服务解决。这可能意味着用户在虚拟机的环境配置上有问题,比如缺少必要的依赖包或工具,或者在串口通信时遇到了问题。需要检查是否安装了所有必要的构建工具,比如gcc、make、库文件等,以及串口相关的驱动或软件。 引用[3]指出用户需要设置板级配置,使用特定的BoardConfig文件。如果用户在编译时没有正确选择或配置板级文件,可能会导致编译失败。这时候需要确认用户是否执行了正确的配置命令,比如./build.sh device/rockchip/rk356x/BoardConfig-rk3566-tspi-v10.mk,或者是否文件路径有误。 引用[4]提到用户安装docker失败,并提到了内核版本的问题。如果用户的内核版本与SDK不兼容,或者编译过程中使用的内核模块有问题,可能导致编译失败。用户可能需要检查内核版本是否为5.10,并确保编译环境和SDK要求的内核版本一致。 接下来,我需要将这些可能的点整理成解决方案的步骤。第一步应该是检查开发环境,确保Ubuntu版本和依赖包正确安装。第二步是验证SDK的完整性和配置是否正确,特别是板级配置。第三步是查看编译日志,定位具体的错误信息,比如是否有头文件缺失、编译选项错误等。第四步是网络和权限问题,比如下载依赖包时是否被防火墙阻挡,或者是否有足够的权限执行脚本。第五步是参考社区资源,看看其他用户有没有遇到类似的问题和解决方法。 另外,用户可能没有完全按照官方文档操作,比如遗漏了某些步骤或配置选项。例如,设置环境变量、安装交叉编译工具链等。此外,虚拟机环境有时会有性能问题或兼容性问题,可能需要增加资源或调整配置。 最后,需要提醒用户在解决问题时,保存编译日志,方便排查具体错误,并建议逐步执行编译步骤,确认每一步都成功后再继续。如果问题依然存在,可能需要联系官方支持或社区寻求帮助。</think>### 泰山编译失败解决方案 #### 1. **检查开发环境配置** - **Ubuntu系统版本**:确认使用的是官方推荐的Ubuntu 20.04 LTS版本,避免兼容性问题[^2]。 - **依赖工具安装**:执行以下命令安装必要依赖: ```bash sudo apt update sudo apt install build-essential git bison flex libssl-dev python3-dev ``` - **虚拟机配置**:若使用虚拟机,建议分配至少4核CPU、8GB内存和50GB硬盘空间,避免资源不足导致编译中断。 #### 2. **验证SDK完整性** - **SDK下载**:从官方渠道重新下载SDK,避免文件损坏或缺失[^1]。可通过校验哈希值确认完整性。 - **目录权限**:确保SDK目录及其子文件权限为可读写: ```bash sudo chmod -R 777 /path/to/sdk ``` #### 3. **板级配置检查** - **选择正确的配置文件**:编译前需指定板级配置,例如: ```bash ./build.sh device/rockchip/rk356x/BoardConfig-rk3566-tspi-v10.mk ``` 若路径错误会导致编译失败[^3]。 - **交叉编译工具链**:确认工具链已正确安装,并在环境变量中设置路径: ```bash export PATH=/path/to/toolchain/bin:$PATH ``` #### 4. **内核编译问题处理** - **内核版本兼容性**:若涉及内核编译(如引用[4]中5.10内核),需检查内核配置是否与SDK要求一致。 - **头文件缺失**:若出现头文件错误,尝试安装内核头文件包: ```bash sudo apt install linux-headers-$(uname -r) ``` #### 5. **网络与权限问题** - **代理设置**:若依赖下载失败,检查网络代理或镜像源配置: ```bash # 设置国内镜像源(如清华源) sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list ``` - **避免权限不足**:编译时使用普通用户而非root用户,但需确保对目录有权限。 #### 6. **日志分析与调试** - **查看编译日志**:定位具体报错位置: ```bash tail -f build.log | grep -i "error\|warning" ``` - **常见错误示例**: - **依赖缺失**:根据日志提示安装对应库(如`libssl-dev`)。 - **语法错误**:检查代码是否包含非UTF-8字符或空格路径。 #### 7. **参考社区经验** - **Docker编译问题**:若需使用Docker,可尝试手动安装Docker而非通过脚本[^4]。 - **社区案例**:参考其他开发者分享的编译记录,例如通过论坛或GitHub Issues查找类似问题。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值