ai_sdk版本:v6.00
translator版本:v1.04
WSL2版本:Ubuntu20.04
使用vscode开发 下载的插件包括但不限于:cmake、WSL、docker、c++等
从瑞萨官网下载ai_sdk: https://www.renesas.cn/zh/document/sws/rzv2h-ai-sdk-v600?r=25470141
解压zip于在WSL中得到RTK0EF0180F06000SJ文件夹
文件目录如下:
├── RTK0EF0180F06000SJ
│ ├── ai_sdk_setup
│ │ ├── DRP-AI_Translator_i8-v1.04-Linux-x86_64-Install
│ │ ├── DRP-AI_Translator_i8-v1.04-Linux-x86_64-Install:Zone.Identifier
│ │ ├── Dockerfile
│ │ ├── Dockerfile:Zone.Identifier
│ │ ├── rz-vlp-glibc-x86_64-core-image-weston-cortexa55-rzv2h-evk-toolchain-5.0.11.sh
│ │ └── rz-vlp-glibc-x86_64-core-image-weston-cortexa55-rzv2h-evk-toolchain-5.0.11.sh:Zone.Identifier
│ ├── board_setup
│ │ ├── eSD.zip
│ │ ├── eSD.zip:Zone.Identifier
│ │ ├── xSPI.zip
│ │ └── xSPI.zip:Zone.Identifier
│ ├── documents
│ │ ├── r11an0841ej0600-rzv2h-ai-sdk(Linux License List).pdf
│ │ ├── r11an0841ej0600-rzv2h-ai-sdk(Linux License List).pdf:Zone.Identifier
│ │ ├── r20ut5184ej0104-drp-ai.pdf
│ │ ├── r20ut5184ej0104-drp-ai.pdf:Zone.Identifier
│ │ ├── r20ut5336ej0104-drp-ai-translator-i8.pdf
│ │ └── r20ut5336ej0104-drp-ai-translator-i8.pdf:Zone.Identifier
│ ├── r11an0840ej0600-rzv2h-ai-sdk.pdf
│ ├── r11an0840ej0600-rzv2h-ai-sdk.pdf:Zone.Identifier
│ └── references
│ ├── core-image-weston-rzv2h-evk.rootfs.manifest
│ ├── core-image-weston-rzv2h-evk.rootfs.manifest:Zone.Identifier
│ ├── linux_licenses.zip
│ └── linux_licenses.zip:Zone.Identifier
└── RTK0EF0180F06000SJ.zip:Zone.Identifier
这里的documents实际上是数据手册 里面有DRP-AI进行量化与编译的说明
ai_sdk_setup里面包含了我们需要的工具(docker、交叉编译链、translator)
其余内容可以暂时不管
(一)加载docker
首先确保你的Ubuntu环境中有docker软件:
如果没有docker,请按照以下命令下载docker:
sudo apt update
sudo apt install docker
如果有docker软件:
首先需要找到你RTK0EF0180F06000SJ安装的路径,我这里的路径为~/new_sdk/RTK0EF0180F06000SJ:
执行以下命令启动docker环境,其中rzv2h_drp为该容器名称:
~/new_sdk/RTK0EF0180F06000SJ/ai_sdk_setup$ docker build -t rzv2h_drp .
等待漫长时间后,由于是首次运行该容器,请按照以下命令运行:
docker run -it \
--name rzv2h_compiler \
-v $(pwd):/drp-ai_tvm/data/ \
rzv2h_drp /bin/bash
–name rzv2h_compiler 这里可以理解为别名 实际上不影响docker的功能
-v $(pwd):/drp-ai_tvm/data/ 这里是挂载的目录
rzv2h_drp /bin/bash 挂载到命令行以输入命令
如何理解docker:
厂家为了让你跑通它的代码,会贴心的给你写好跑通代码需要的所有环境,通常以“dockerfile”的形式呈现,如果你感兴趣打开它(用记事本打开即可)就会发现里面大多是各种版本的各种软件,只需要用docker就可以一键下载环境,十分的方便。
同时docker可以隔离彼此的环境,比如你要跑3个项目,每个项目需要的软件版本不一样,但是docker的存在就不需要你跑一个项目就要从头配置环境了,只需要挂载docker后即可跑通代码。
还有就是宿主机(这里可以理解为WSL2里的Ubuntu)与docker之间的联系:
-v $(pwd):/drp-ai_tvm/data/ docker与Ubuntu会共享这个文件夹:
你在Ubuntu里添加一个文件,docker里会同步出现该文件
为了更方便的开发,我们在vscode中下载docker插件,在顶端的工具栏上找到“查看(View)”选项后点击子选项的第一个“命令面板(ctrl+shift+P)”,在新出现的选项中选择:“开发容器:附加到正在运行的容器”


选择你正在运行的docker 这里应该是rzv2h_compiler
(由于我之前运行了其它容器,所以会显示其它选项)
之后我们会进入到一个全新的容器内:

看左下角的蓝色图标即可知道已经进入了docker环境内
本次只是为了熟悉开发环境,接下来我们会在docker内进行yolo模型的下载、裁剪、量化、编译。
另外,上述docker方法只适用于第一次启动,如果你之前已经使用了docker run这个命令,那么下一次挂载docker时,不需要运行 docker run命令:
先用docker ps -as 命令查看当前docker ID:

找到你的docker对应的ID后(这里是898e1da632d3),输入以下命令:
docker start 898e1da632d3
之后docker容器就会启动,如果成功启动会反馈给你已经启动的docker ID
之后就可以用插件进行挂载了。
另外,还有一些Linux常用命令仅供参考:
把当前文件复制到docker里:(反过来就是把顺序换一下)
docker cp calib_data 9e1bc4e07212:/drp-ai_tvm/data
docker cp my_yolo_container:/drp-ai_tvm/data/yolo11_object/src/build/object_detection .
查找特定文件:
find / -name "nchw_datareader.py"
cp命令复制文件夹:
cp -r /home/user/documents /backup/
文件夹重命名:
mv old_folder new_folder
查找特定文件就:
find / -type d -name "data"
1. 挂载 U 盘 (假设设备是 sda1,如果之前挂载过忽略此步)
su – # 先切换到 root 挂载
mount /dev/sda1 /mnt/udisk
exit # 挂载完退回到 rzv2h 用户!(一定要退回)
查看软件版本
pip show onnx (pip下载)
python3 -c "import onnx; print(onnx.version)"
gcc --version
压缩WSL节省空间
用WizTree软件找到了WSL的磁盘所在位置 D:\WSL\ext4.vhdx
在Powershell中运行 :
wsl --shutdown
diskpart
在弹出的窗口中:
select vdisk file="D:\WSL\ext4.vhdx"
(如果出错了 就再次运行一下 wsl --shutdown)
compact vdisk
detach vdisk
exit
显示文件修改时间
stat filename.txt
删除某个docker
docker rm 41cbfd165765
查看wic镜像里的文件:
sudo losetup -Pf /home/home/new_ai_sdk_work/ai_sdk_setup/data/rzv2h_ai_performance_demo_usb_camera_sd_image.wic
ls /dev/loop*
你会看到类似 /dev/loop0p1, /dev/loop0p2 的节点,p2 就代表第二个分区。
mkdir ./mnt_point
sudo mount /dev/loop0p2 ./mnt_point
卸载与清理(重要):
sudo umount ./mnt_point
sudo losetup -d /dev/loop0
第一篇章先告一段落,Linux初学者也不要着急,先慢慢地敲一敲命令以逐步上手Linux。
PS:本人初学Linux,水平有限,如有错误,请以斧正。
