首页 > 其他分享 >【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A+建材识别装置+CUG汪汪小分队+问题记录

【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A+建材识别装置+CUG汪汪小分队+问题记录

时间:2023-10-08 19:23:47浏览次数:42  
标签:riscv64 whl 分区 玄铁杯 RISC CUG install linux cp311

【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A+建材识别装置+CUG汪汪小分队+opencv问题记录

一、开发板环境搭建

1.1 开发板外观

picture 2

图1 开发板带铝合金外壳外部图

picture 3

图2 开发板带铝合金外壳内部图
在yolox模型部署好后,在虚拟环境中调用opencv的imshow等图形化操作会报下面错误:

1.2 给emmc烧录系统

博主选择的是debian系统-日期为20230920(目前最新版本镜像)
百度网盘链接

  • 1、burn_tools.zip(烧录工具)
  • 2、20230920中为debian镜像
  • 3、博主选择的是在window下进行烧录(烧录安装在实验室win10电脑上),发放的一般是内测版本,所以在上电前需要人为按boot按钮,将burn_lpi4a.bat文件中的路径改为自己下载镜像的路径,然后进行下载,成功下载请看图4
    注明:Windows 下烧录时,需要先进入高级启动模式,禁用数字签名。才能正常安装下面的驱动
    具体教程查看:sipeed文档链接
    picture 4
图3 资料图

picture 5

图4 镜像的烧写过程

1.3 系统的正常启动、ssh连接以及sd卡扩容

系统正常启动如图7、8、9

sudo passwd
修改root用户密码

ssh改为用户root登录就行,系统有mousepad,可以直接mousepad打开就行,不用vim打开

picture 10

图5 修改root用户密码

picture 9

图6 ssh连接赋予权限

picture 6

图7 系统连接网络

picture 7

图8 系统ip地址

picture 8

图9 系统访问百度

sd卡如何扩容:
博主主要强调关键点

  • 1、格式化SD卡(无需关注什么格式),插入licheepi 4a,然后如下
sudo fdisk -l列出所有分区
在fdisk界面输入d依次删除原有分区
在fdisk界面输入w写入数据,至此完成删除
在fdisk界面输入n创建新分区,输入p创建逻辑primary分区,默认创建为primary分区,输入e创建为扩展分区,分区号选择使用默认值即可

再输入n继续创建分区

在fdisk界面输入t更改分区类型,进入更改分区界面后输入c表示创建为fat分区。输入83创建为ext4分区,输入L查看所有分区类型号

输入w完成所有分区保存

退出至控制台输入sudo mkfs.ext4 /dev/mmcblk1p1格式化第一个分区
设置开机挂载
sipeed@lpi4a:~$ cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
/dev/mmcblk0p3 /       auto    defaults    1 1
/dev/mmcblk0p2 /boot   auto    defaults    0 0
/dev/mmcblk1p1 自己挂载路径   auto    defaults    0 2
如图11 sd卡扩展分区成功

picture 0

图10 格式化sd卡

picture 11

图11 sd卡扩展分区成功

sipeed扩容链接参考

二、YOLOX环境搭建

2.1 环境搭建与安全帽测试

确保已联网的状态下,更新 apt 源
sudo apt update
安装一些软件,用于下载代码和拉取代码
sudo apt install wget git vim
安装 SHL 库
wget https://github.com/T-head-Semi/csi-nn2/releases/download/v2.4-beta.1/c920.tar.gz
tar xf c920.tar.gz
cp c920/lib/* /usr/lib/riscv64-linux-gnu/ -rf
获取 YOLOX 模型
git clone https://github.com/Megvii-BaseDetection/YOLOX.git
cd YOLOX/demo/ONNXRuntime
wget https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.onnx

安装文档里面的whl
pip install numpy-1.25.0-cp311-cp311-linux_riscv64.whl
pip install opencv_python-4.5.4+4cd224d-cp311-cp311-linux_riscv64.whl
pip install kiwisolver-1.4.4-cp311-cp311-linux_riscv64.whl
pip install Pillow-9.5.0-cp311-cp311-linux_riscv64.whl
pip install matplotlib-3.7.2.dev0+gb3bd929cf0.d20230630-cp311-cp311-linux_riscv64.whl
pip install pycocotools-2.0.6-cp311-cp311-linux_riscv64.whl
pip3 install loguru-0.7.0-py3-none-any.whl
pip3 install torch-2.0.0a0+gitc263bd4-cp311-cp311-linux_riscv64.whl
pip3 install MarkupSafe-2.1.3-cp311-cp311-linux_riscv64.whl
pip3 install torchvision-0.15.1a0-cp311-cp311-linux_riscv64.whl
pip3 install psutil-5.9.5-cp311-abi3-linux_riscv64.whl
pip3 install tqdm-4.65.0-py3-none-any.whl
pip3 install tabulate-0.9.0-py3-none-any.whl
安装 HHB-onnxruntime
wget https://github.com/zhangwm-pt/onnxruntime/releases/download/riscv_whl/onnxruntime-1.14.1-cp311-cp311-linux_riscv64.whl
pip install onnxruntime-1.14.1-cp311-cp311-linux_riscv64.whl

博主自己在学校实验室训练的yolox模型测试:
picture 12

图12 博主自己在学校实验室训练的yolox模型测试

测试官方的yolox模型:
picture 13

图13 测试官方的yolox模型

将自己的模型部署到开发板上测试图片和usb摄像头实时测试:
picture 14

图14 开发板上测试图片

picture 15

图15 开发板上摄像头实时测试1

picture 16

图16 开发板上摄像头实时测试2

picture 17

图17 开发板上摄像头实时测试3

licheepi 4a参考文档

2.2 问题记录

licheepi 4a python3.11
这个是错误信息
cv2.error: OpenCV(4.5.4) /mnt/git/github/opencv-python/opencv/modules/highgui/src/window.cpp:1257: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

这个问题的原因是:
编译 opencv 的环境中没有 gtk2.0,所以,编译完成的 opencv 不支持图形界面相关的功能

解决办法:安装最新版本加入gtk2.0的opencv whl文件,或者自行编译生成riscv64架构的whl文件,下载opencv的源码进行编译

标签:riscv64,whl,分区,玄铁杯,RISC,CUG,install,linux,cp311
From: https://www.cnblogs.com/smallwxw/p/17749944.html

相关文章

  • qemu搭建riscv的可调试环境
    qemu搭建riscv的可调试环境riscv工具链(网上大多数用Github直连的工具链,但是因为太大,download的时候老是出问题)选择使用Cross-compilationtoolchainsforLinux-Home(bootlin.com)进行下载,之后解压。bin目录下为可执行的工具链,将其添加到PATH中。qemuqemu压缩包下载......
  • 启动文件—RISC-V通用MCU启动文件解释
    _start:是整个bin文件的起始,第一个指令是jhandle_reset,跳转到下文的handle_reset处。 _vectop_base:是中断向量表,用于存放中断函数的入口地址.weak是弱声明,此处把所有的中断函数都写了死循环,1: j1b的意思就是死循环,如果在其它.c文件中有声明则以.c中的函数内容为准,这......
  • 在RISC-V上移植系统
    预备知识GNUBinutils参考文档GNUBinutils是一系列用来生成可执行文件的软件的集合体,它包括我们常常使用的ld,as等软件。即使你没有亲自使用过这些软件,只要你使用了gcc就相当于间接使用了它们,因为gcc会在生成可执行程序时使用这些软件。我们需要准备好as和ld的参考文档,因为我们......
  • 英特尔宣布投资 Arm,畅谈 RISC-VX
    英特尔宣布投资Arm,畅谈RISC-V来源:投稿作者: NewsBot2023-09-0717:18:00 2几个月来,软银一直在其客户和合作伙伴中准备对Arm进行锚定投资,英特尔也在其中。在近日的高盛Communacopia&Technology大会上,英特尔公司代工业务(IFS)部门负责人StuartPann 证......
  • 英特尔宣布投资 Arm,畅谈 RISC-V
    英特尔宣布投资Arm,畅谈RISC-V来源:投稿作者: NewsBot2023-09-0717:18:00 2几个月来,软银一直在其客户和合作伙伴中准备对Arm进行锚定投资,英特尔也在其中。在近日的高盛Communacopia&Technology大会上,英特尔公司代工业务(IFS)部门负责人StuartPann 证......
  • RISC-V学习1.0
    Membership–RISC-VInternational(riscv.org) RISC-VChina–RISC-VInternational(riscv.org)tommythorn/yarvi:YetAnotherRISC-VImplementation(github.com)alu.v//-----------------------------------------------------------------------////Apur......
  • RISCV-MINI cache小记
    该cache映射策略为直接映射,采用写回(writeback)方式。需要注意的细节在于cpu-cache通过mask信号判断访存是读还是写,显然mask全0时为读。下图FSM中省略了dirty会影响状态转移,比如WriteCache到WriteBack,当cache块为dirty时才会触发aw.fire(io.nasti.aw.valid:=is_dirty)。简单解释:......
  • RISC-V 中国峰会 | OpenMPL引人注目,RISC-V Summit China 2023圆满落幕
    RISC-V中国峰会圆满落幕     2023年8月25日,为期三天的RISC-V中国峰会(RISC-VSummitChina2023)圆满落幕。本届峰会以“RISC-V生态共建”为主题,结合当下全球新形势,把握全球新时机,呈现RISC-V全球新观点、新趋势。吸引了超过百家企业及研究机构、开源技术社区参与交流,近百家媒......
  • 手写RISC-V处理器--1
    由来由于去年工作变动,有幸进入了芯片行业,但主要工作内容为基于RISC-V的嵌入式应用软件开发,几乎接触不到芯片设计的相关知识,然而随着工作的深入,越来越想探究一下运行在软件之下的CPU的世界,于是便产生了自己手写一个RISC-V处理器的想法,同时在博客里记录和分享一下自己学习和探索的......
  • ARM x86 RISC-V
    引言:计算机指令集架构是计算机体系结构的基础,不同的指令集架构在不同的应用领域具有重要性。本文将比较三种主要的指令集架构:ARM、x86和RISC-V,探讨它们的特点、应用以及对计算机领域的影响。ARM架构:ARM架构起源于英国的ARM公司,广泛应用于移动设备、嵌入式系统和物联网。ARM架构......