概述
某一天下班摸鱼时,在X宝逛该时发现了一个有趣的芯片,幸狐RV1103。
仅仅不到40块钱的价格,你竟然可以获得一个可以跑起来linux的板子!!
要知道,即使是2023年的现在,一般能搞到的最便宜的板子也就是全志H3系列的板子,这个板子吧热平衡跟个大火炉似的不说,一般来说系统板卡也在80-200上下,因此一比起来,RV1103这40出头的板子价格简直就是垃圾佬最爱,降成本利器!而且它的最小系统的提醒也不是一般的小,多说无益,来图:
这个高集成的Soc能带来什么呢?
内置ISP,能处理mipi图像输入,也能用于驱屏
有一个RISC-V核,有实时性控制需求时可以叫上它帮忙
有神经网络NPU(???给我带来一点点震撼),不过因为成本摆在那里了,算力也只有0.5-1TOPS,可以跑一些小型网络
SoC内置的64M DDR2内存(能集成度做的如此高的一大重要原因,不过64M的内存的话跑重型任务看来是没指望了)
这种成本!!!!这种配置!!!!!实在是忍不住下单搞了几块玩一玩
拿到后开始配环境,装系统
官方的文档链接来自:
wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-quick-start
芯片是来源于国产瑞芯微,文档做的还不错,中英文都有,甚至英文文档下还能看到几个汉字()
开发环境和运行环境
开发环境是基于linux的,luckfox也很贴心的在里面准备了一个docker的环境,把对应的docker拉下来映射到一个目录下,开发环境也就ok了,可以用docker 中的终端来进行开发。
连接进这个luckfox板子呢,使用的是adb工具,这个我觉得是一个不错的方案。因为直接使用串口或者usb模拟的串口,都只能获得系统终端,而瑞芯微将RV1103的usb口按adb枚举后,既可以通过adb shell获得终端,还可以通过pull push等操作方便的进行文件操作,在使用不带网卡的型号中,这样操作还是非常方便的。
上网配置
如果买了带有物理网卡的型号,则直接怼一根网线,这章问题就可以跳过了,但是我是一个小尺寸的狂热爱好者,RJ45这种巨型接口当然是入不了我的法眼的,所以得另寻他法。
这个芯片提供了RNDIS USB网卡的方式,windows电脑通过将可以上网的接口在适配器高级选项中选择共享给RNDIS网卡,从而让luckfox接入互联网。理论上是这样,但是实际过程中发现luckfox 中的 RNDIS的网卡比较原始,既没有开启dhcp服务获取自身地址,也没有dns服务,所以需要在luckfox中指定自身地址和默认网关网关:
此处 192.168.137.1为电脑的RNDIS网卡的IP地址,如果正确设置了其他网卡的网络共享给这个网卡,在网络拓扑中,电脑就充当了这个网络的路由器,对这个局域网内提供网络。192.168.137.1则是win10下默认的共享网卡的网络地址
为了让luckfox和电脑在同一个网段,因此设置luckfox的usb网卡(usb0)的ip地址未192.168.137.2
然后此时,luckfox就可以访问外网了,但是不能通过域名访问,没有DNS。。。
手动加一下dns:
然后dns也通了:
从wiki下下载的包里,系统自带的根文件系统中带有了python(python:你好,我建议的最低运行配置是512M内存,你在干什么)
默认的开发包,带了挺多用于板子的demo,测试起来也比较方便。对于芯片的可操作性也很足,对应的uboot到kernel再到rootfs都可以配置,linux环境下也配备了对应的ISP相关的操作库和神经网络模型转换到NPU的工具。不过这样一来的话,如果想在luckfox的裸机上来跑NPU可能有点够呛,上linux的话可能需要精细的把握好内存的使用量。
很可惜的是这里的python3没有附带pip,因此pip上众多的模块无法直接使用。buildroot的搭建根文件系统方式中提供了一些python包的配置选项,可以在生成镜像时直接把python包塞进系统中。
但是,我还是想自己手动装上pip3,然后获取更多的module以供使用,因此搞了网络看看能不能装上。最后还想试试64M的内存跑opencv-python是啥感觉。。。。