接前一篇文章:零知识玩转AVH(7)—— 门槛任务(2)所遇错误及解决(1)
上一回说到在尝试完成门槛任务
- https://github.com/ArmDeveloperEcosystem/Paddle-examples-for-AVH (推荐,内含 ML 视觉用例,包括:图像分类、目标检测、光学字符识别、目标分割等)
时,遇到了3个错误,也都一一解决了。但解决了这3个错误之后,又出现了新的错误。本回就来说一下如何解决它。
错误4
具体问题
Run Build Command(s):/usr/bin/ninja cmTC_5b500 && [1/2] Building C object CMakeFiles/cmTC_5b500.dir/testCCompiler.c.obj
FAILED: CMakeFiles/cmTC_5b500.dir/testCCompiler.c.obj
/opt/armcompiler/bin/armclang -mcpu=Cortex-M55 -mfloat-abi=hard -o CMakeFiles/cmTC_5b500.dir/testCCompiler.c.obj -c /home/ubuntu/ph/Paddle-examples-for-AVH/object_classification/tmp/object_classification/PaddleClasM55/CMakeFiles/CMakeTmp/testCCompiler.c
armclang: error: Failed to check out a license.
This host does not match the host ID in the license.
Information about this error is available at: http://ds.arm.com/support/lic56/m9
General licensing information is available at: http://ds.arm.com/support/licensing/
If you need further help, provide this complete error report to your supplier or license.support@arm.com.
- ARMLMD_LICENSE_FILE: '/opt/data.dat'
- LM_LICENSE_FILE: unset
- ARM_PRODUCT_DEF: unset
- ARM_PRODUCT_PATH: unset
- ARM_TOOL_VARIANT: unset
- Product location: /opt/armcompiler/sw/mappings
- Toolchain location: /opt/armcompiler/bin
- Selected tool variant: product
- Checkout feature: compiler5
- Feature version: 5.0202203
- Flex error code: -9
解决方法
咨询了技术支持人员,答复说这需要使用Ubuntu用户才可以。一开始笔者没有理解,还译为需要使用Ubuntu虚拟机或者是在云服务器上新建一个名为ubuntu的用户。后来客服说不用,系统中本身就已经建立好了ubuntu用户。说到这儿,比这才恍然大悟,确实登录的时候/home/下有个ubuntu目录。
按照技术支持人员的指导,使用以下命令切换到ubuntu用户:
su ubuntu
之后,以ubuntu用户再次执行run_demo.sh。
在往下继续进行之前,有一个知识点需要补齐一下:cpackget的相关介绍。
cpackget这个命令并不是Ubuntu自带的,因此直接通过`which cpackget`命令是找不到它的。cpackget是在前文书介绍的步骤中下载的cmsis-toolbox-linux-arm64.tar.gz中的。通过以下命令设置环境变量后:
export PATH=/home/ubuntu/cmsis/cmsis-toolbox-linux-arm64/bin:$PATH
再使用which命令就可以看到其信息了:
root@instance-eoy24hji:~# which cpackget
/home/ubuntu/cmsis/cmsis-toolbox-linux-arm64/bin/cpackget
来看一下cpackget的详细说明,参考:https://github.com/Open-CMSIS-Pack/cpackget。
cpackget: Open-CMSIS-Pack Package Installer
cpackget是Open-CMSIS-Pack的开发工具(devtools)之一,devtools包括(参考https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools):
包创建和验证工具:
- packgen
从基于CMake的软件仓库创建软件包。
- packchk
软件包描述和归档内容的语义验证。
包管理工具(包括组件发现、设备、板和示例):
- cpackget
下载、添加和删除包和本地仓库。
项目管理工具(从本地文件和软件组件构建项目):
- csolution
使用*.yaml用户输入文件和CMSIS包中的内容管理复杂的应用程序;输出*.cprj文件,用于在IDE和CI环境中使用cbuild进行可重复构建。
构建管理工具(编译和生成可执行程序映像):
- cbuild(又名CMSIS-Build)
将描述单个目标和项目配置的*.cprj文件转换为CMake输入;开始构建过程。
说回cpackget命令。
用法:
cpackget [command] [flags]
可用命令:
- add:添加Open-CMSIS-Pack包。
- checksum-create:生成一个包含pack摘要的.checksum文件。
- checksum-verify:使用其.checksum文件验证包的完整性。
- help:各命令的帮助信息。
- init:初始化一个pack的根文件夹。
- list:列出已安装的pack。
- rm:移除Open-CMSIS-Pack包。
- signature-create:使用X.509证书或PGP密钥对包进行数字签名。
- signature-verify:验证一个签名的pack。
- update-index:更新公共索引(public index)。
flags(标志):
- -C, --concurrent-downloads uint:并发批处理下载的数量。设置为0以禁用并发(默认为5)。
- -h, --help:cpackget命令的帮助信息。
- -R, --pack-root string:指定包根文件夹。默认为CMSIS_PACK_ROOT环境变量。
- -q, --quiet:以静默方式运行cpackget,只打印错误消息。
- -T, --timeout uint:设置下载的最长持续时间(秒)。默认情况下禁用。
- -v, --verbose:设置详细级别:None (Errors + Info + Warnings),-v (all + Debugging)。指定“-q”表示无消息。
- -V, --version:打印cpackget的版本号并退出。
关于cpackget命令的知识补强就到这里。
本回内容就到这里。下一回开始,切换到ubuntu用户(不再使用root用户)执行run_demo.sh,并看一下实际的情况。