Toybrick

TB-RK1808S0在ARM64开发板上无法正常初始化

ffftest123

新手上路

积分
23
发表于 2019-12-23 10:39:27    查看: 7808|回复: 7 | [复制链接]    打印 | 显示全部楼层
目前我公司正在评估TB-RK1808S0,准备应用到现有产品中,目前USB计算棒能够在PC上成功运行。
但是放到ARM64开发板上时,无法正常初始化计算棒。
所有的软件依赖都已经安装完成,而且能够查找到计算棒设备。
root@localhost:~/rknn/mobilenet_v1# lsusb
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 2207:0018
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


错误信息:

>>> rknn = RKNN()
>>> rknn.config(channel_mean_value='103.94 116.78 123.68 58.82', reorder_channel='0 1 2')
>>> ret = rknn.load_tflite(model='./mobilenet_v1.tflite')
>>> ret = rknn.build(do_quantization=True, dataset='./dataset.txt')
>>> ret
0
>>> ret = rknn.export_rknn('./mobilenet_v1.rknn')
>>> ret = rknn.init_runtime(target='rk1808')
E RKNNAPI: rknn_init,  driver open fail!  ret = -12(ERROR_NOT_SUPPORTED)!
E Catch exception when init runtime!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 788, in rknn.api.rknn_base.RKNNBase.init_runtime
E   File "rknn/api/rknn_runtime.py", line 303, in rknn.api.rknn_runtime.RKNNRuntime.build_graph
E Exception: RKNN init failed. error code: RKNN_ERR_DEVICE_UNAVAILABLE
E Current device id is: None
E Devices connected:
E ['TS018080190600085']

请问这是什么原因


回复

使用道具 举报

jefferyzhang

版主

积分
12923
发表于 2019-12-23 11:07:03 | 显示全部楼层
1. ret = rknn.load_tflite(model='./mobilenet_v1.tflite') 为什么要放在所谓的arm开发版上做?
2. 如果你转换模型要放在arm上,你的板子必须是toybrick官方的固件,否则我们没办法知道你的开发环境
3. 你这个arm64开发版是什么?看过去缺少了被动模式的很多库和驱动
4. 对于嵌入式部署,我们建议使用计算棒的主动模式,而非这种被动模式。主动模式和宿主机用什么系统什么架构都可以无关。
回复

使用道具 举报

ffftest123

新手上路

积分
23
 楼主| 发表于 2019-12-23 11:22:08 | 显示全部楼层
jefferyzhang 发表于 2019-12-23 11:07
1. ret = rknn.load_tflite(model='./mobilenet_v1.tflite') 为什么要放在所谓的arm开发版上做?
2. 如果你 ...

谢谢回答
1、目前我是才接触这块开发板,就是根据你们wiki的“”Linux上位机环境安装“” 这一章来跑的demo,
所以这个代码都是从这一节的demo中来的
2、我们用的开发板是第三方提供,文件系统是基于Ubuntu
3、如果主动模式更适合ARM64, 我们也可以采用,目前的目标是先把板子跑起来
回复

使用道具 举报

ffftest123

新手上路

积分
23
 楼主| 发表于 2019-12-23 11:25:52 | 显示全部楼层
jefferyzhang 发表于 2019-12-23 11:07
1. ret = rknn.load_tflite(model='./mobilenet_v1.tflite') 为什么要放在所谓的arm开发版上做?
2. 如果你 ...

另外,不知道您所说的少了很多库和驱动指的是什么
因为目前的在X86和ARM64上安装的所有package都是一样的
回复

使用道具 举报

ffftest123

新手上路

积分
23
 楼主| 发表于 2019-12-23 11:32:14 | 显示全部楼层
jefferyzhang 发表于 2019-12-23 11:07
1. ret = rknn.load_tflite(model='./mobilenet_v1.tflite') 为什么要放在所谓的arm开发版上做?
2. 如果你 ...

另外,如果使用主动模式,是否必须按照“”Linux系统配置计算棒网络共享“”这一个wiki来配置网络,
但是目前USB计算棒插入时,开发板并没有识别到新的网络接口。
请问是否需要在kernel中打开什么USB网络接口选项。
回复

使用道具 举报

jefferyzhang

版主

积分
12923
发表于 2019-12-23 11:57:57 | 显示全部楼层
ffftest123 发表于 2019-12-23 11:32
另外,如果使用主动模式,是否必须按照“”Linux系统配置计算棒网络共享“”这一个wiki来配置网络,
但是 ...

这个我不是很懂了,不过你们这种场景还是建议用主动模式兼容性高
被动模式对上位机的系统和依赖要求比较高,我自己也没这么玩过。
回复

使用道具 举报

bobby_jiang

高级会员

积分
540
发表于 2019-12-24 10:17:35 | 显示全部楼层
ffftest123 发表于 2019-12-23 11:32
另外,如果使用主动模式,是否必须按照“”Linux系统配置计算棒网络共享“”这一个wiki来配置网络,
但是 ...

1、被动模式,arm平台只限制RK公司的rk3399和rk3399pro两颗芯片平台;其它arm芯片不支持。建议采用主动模式;
2、主动模式采用socket通信,上位机linux能支持rndis即可,如果不支持,内核配置一下rndis,如附图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

ffftest123

新手上路

积分
23
 楼主| 发表于 2019-12-24 11:35:35 | 显示全部楼层
bobby_jiang 发表于 2019-12-24 10:17
1、被动模式,arm平台只限制RK公司的rk3399和rk3399pro两颗芯片平台;其它arm芯片不支持。建议采用主动模 ...

嗯 谢谢回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表