Firefly开源社区

标题: ValueError: Current device id is: None [打印本页]

作者: 宁静    时间: 2021-8-12 17:22
标题: ValueError: Current device id is: None
ValueError: Current device id is: None;
按照文档修改吧ret = rknn.init_runtime()改为ret = rknn.init_runtime(target="rk3568")
之后运行报错,哪位大佬知道,请帮忙,求解
作者: zyk    时间: 2021-8-12 23:49
可以把运行错误的完整信息发一下,另外使用的固件版本是多少
作者: 宁静    时间: 2021-8-13 15:33
python test.py
--> config model
done
--> Export RKNN model
done
--> Init runtime environment
* daemon not running; starting now at tcp:5037
* daemon started successfully
error: no devices/emulators found
E init_runtime: Connect to Device Failure (-1)
E init_runtime: Catch exception when init runtime!
E init_runtime: Traceback (most recent call last):
E init_runtime:   File "rknn/api/rknn_base.py", line 2432, in rknn.api.rknn_base.RKNNBase.init_runtime
E init_runtime:   File "rknn/api/rknn_runtime.py", line 190, in rknn.api.rknn_runtime.RKNNRuntime.__init__
E init_runtime:   File "rknn/api/rknn_platform_utils.py", line 330, in rknn.api.rknn_platform_utils.start_ntp_or_adb
E init_runtime: Exception: Init runtime environment failed!
E init_runtime: Current device id is: None
Traceback (most recent call last):
  File "test.py", line 65, in <module>
    ret = rknn.init_runtime(target='rk3568')
  File "/home/ts/project/rknn-toolkit2-1.1.0b0/venv/lib/python3.6/site-packages/rknn/api/rknn.py", line 324, in init_runtime
    self.rknn_log.e("Current device id is: {}".format(device_id))
  File "rknn/api/rknn_log.py", line 105, in rknn.api.rknn_log.RKNNLog.e
ValueError: Current device id is: None



作者: 宁静    时间: 2021-8-13 15:39
我烧机的版本是FIREFLY-RK3568-AIOJ_UBUNTU18.04-GPT-20210714-1725
作者: zyk    时间: 2021-8-13 16:36
试一下烧录20210802版本的固件,https://pan.baidu.com/s/1hKBE-xq ... 670-774318892029553
密码1234
作者: 宁静    时间: 2021-8-19 16:21
zyk 发表于 2021-8-13 16:36
试一下烧录20210802版本的固件,https://pan.baidu.com/s/1hKBE-xqSA66DA1U8Mu6-iw#list/path=%2Fsharelink ...

我烧写了这个板子,还是出现同样的问题

作者: 宁静    时间: 2021-8-19 17:16
我重新烧写了你发的这个板子,还是出现同样的问题

作者: zyk    时间: 2021-8-19 19:15
宁静 发表于 2021-8-19 17:16
我重新烧写了你发的这个板子,还是出现同样的问题

adb devices可以发现设备吗,是否有运行restart_rknn.sh
作者: 宁静    时间: 2021-8-20 10:31
zyk 发表于 2021-8-19 19:15
adb devices可以发现设备吗,是否有运行restart_rknn.sh

adb devices可以发现设备,没有运行restart_rknn.sh,但是板子上运行了rknn_server

作者: 宁静    时间: 2021-8-20 10:33
宁静 发表于 2021-8-20 10:31
adb devices可以发现设备,没有运行restart_rknn.sh,但是板子上运行了rknn_server

我根据这个网址做的   https://wiki.t-firefly.com/Core-3568J/usage_npu.html
里面有    · 运行在与 PC 相连的AIO-3568J NPU 平台上
作者: zyk    时间: 2021-8-20 13:07
linux系统是不一样的,需要运行restart_rknn.sh,可以看一下解压后的rknnrt.tgz文档<<连板调试.md>>
作者: 宁静    时间: 2021-8-24 16:46
我运行了restart_rknn.sh,但是还出现那个问题了

作者: 宁静    时间: 2021-8-24 16:56
我不知道需要不需要重新烧写其它的板子

作者: 宁静    时间: 2021-8-24 17:39
done
--> Export RKNN model
done
--> Init runtime environment
error: no devices/emulators found
E init_runtime: Connect to Device Failure (-1)
E init_runtime: Catch exception when init runtime!
E init_runtime: Traceback (most recent call last):
E init_runtime:   File "rknn/api/rknn_base.py", line 2432, in rknn.api.rknn_base.RKNNBase.init_runtime
E init_runtime:   File "rknn/api/rknn_runtime.py", line 190, in rknn.api.rknn_runtime.RKNNRuntime.__init__
E init_runtime:   File "rknn/api/rknn_platform_utils.py", line 330, in rknn.api.rknn_platform_utils.start_ntp_or_adb
E init_runtime: Exception: Init runtime environment failed!
E init_runtime: Current device id is: None
Traceback (most recent call last):
  File "test.py", line 65, in <module>
    ret = rknn.init_runtime(target='rk3568')
  File "/home/ts/project/rknn-toolkit2-1.1.0b0/venv/lib/python3.6/site-packages/rknn/api/rknn.py", line 324, in init_runtime
    self.rknn_log.e("Current device id is: {}".format(device_id))
  File "rknn/api/rknn_log.py", line 105, in rknn.api.rknn_log.RKNNLog.e
ValueError: Current device id is: None

作者: zyk    时间: 2021-8-24 19:03
这些都有操作吗
作者: 宁静    时间: 2021-9-3 15:52
我按照这个步骤做了,但是每次运行项目,这个就中断了。是执行这个的时候同时执行项目,还是这个弄完再弄项目啊

作者: 时间的蝴蝶    时间: 2021-9-4 09:18
宁静 发表于 2021-9-3 15:52
我按照这个步骤做了,但是每次运行项目,这个就中断了。是执行这个的时候同时执行项目,还是这个弄完再弄项 ...

看信息是找不到设备。
确保设备的 adb 功能正常,可以进行通信;PC 端安装好运行环境;
按文档说明将所需库、运行程序拷贝到 设备 对应目录;
先在设备端运行 rknn_server 开启连接调试功能:
```
root@firefly:~# restart_rknn.sh
root@firefly:~# start rknn server, version:1.1.0b0 (74e78f5 build: 2021-06-30 20:09:50)
I NPUTransfer: Starting NPU Transfer Server, Transfer version 2.1.0 (b5861e7@2020-11-23T11:50:51)

root@firefly:~# ps |grep rknn
1208 ttyFIQ0  00:00:00 start_rknn.sh
1210 ttyFIQ0  00:00:00 rknn_server
```
在 PC 端运行调试:
```
(rknn-toolkit2-v1.10b0-venv) $ python3 test.py
--> config model
done
--> Loading model
done
--> Building model
Analysing : 100%|██████████████████████████████████████████████████| 58/58 [00:00<00:00, 257.11it/s]
Quantizating : 100%|███████████████████████████████████████████████| 58/58 [00:00<00:00, 670.61it/s]
I RKNN: librknnc version: 1.1.0b0 (8d7e25ad@2021-06-30T18:33:39)
I RKNN: set log level to 0
done
--> Export RKNN model
done
--> Init runtime environment
I NPUTransfer: Starting NPU Transfer Client, Transfer version 2.1.0 (b5861e7@2020-11-23T11:50:36)
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.1.0b0 (ccc3bbc build: 2021-06-30 20:30:36)
D RKNNAPI:   DRV: 1.1.0b0 (74e78f5 build: 2021-06-30 20:09:50)
D RKNNAPI: ==============================================
done
--> Running model
mobilenet_v1
-----TOP 5-----
[156]: 0.84228515625
[155]: 0.08807373046875
[205]: 0.01416015625
[284]: 0.0082550048828125
[194 260]: 0.0028209686279296875

done
```
作者: 宁静    时间: 2021-9-13 14:47
时间的蝴蝶 发表于 2021-9-4 09:18
看信息是找不到设备。
确保设备的 adb 功能正常,可以进行通信;PC 端安装好运行环境;
按文档说明将所 ...

这些我都试过了,首先adb功能是正常的,adb devices有设备信息,adb shell能够连接上,设备上运行了restart_rknn.sh 和 rknn_server,pc端环境是好的,但是ps |grep rknn没有信息,另外每次运行test.py,还是出现之前的问题,之后进行的restart_rknn.sh和rknn_server不能进行了
作者: 时间的蝴蝶    时间: 2021-9-13 16:32
按你的说法,是 rknn_server 没有运行成功;设备连接调试的前提是打开 rknn_server 服务。
直接运行 restart_rknn.sh 就行,脚本会调用 rknn_server;
执行 bash -x restart_rknn.sh,看有什么打印信息。
作者: 宁静    时间: 2021-9-13 17:12
时间的蝴蝶 发表于 2021-9-13 16:32
按你的说法,是 rknn_server 没有运行成功;设备连接调试的前提是打开 rknn_server 服务。
直接运行 resta ...

/system/bin/sh: bash: inaccessible or not found

作者: 宁静    时间: 2021-9-13 17:19
宁静 发表于 2021-9-13 17:12
/system/bin/sh: bash: inaccessible or not found

执行 bash -x restart_rknn.sh,
/system/bin/sh: bash: inaccessible or not found
显示的结果是这个

作者: 时间的蝴蝶    时间: 2021-9-13 17:36
我描述的是 linux 系统的操作步骤,看你这是 android 的呀 `/system/bin/sh`
作者: 宁静    时间: 2021-9-14 09:21
对啊,本来linux出问题之后又烧写成安卓的系统了,你懂吗?

作者: 宁静    时间: 2021-9-14 09:29
安卓系统你做过吗?做过能不能帮助解决一下啊

作者: 时间的蝴蝶    时间: 2021-9-14 09:29
宁静 发表于 2021-9-14 09:21
对啊,本来linux出问题之后又烧写成安卓的系统了,你懂吗?

是你自己说烧了 Linux 固件呀,唉~
那你现在是要用哪个系统呢?
作者: zyk    时间: 2021-9-14 09:32
宁静 发表于 2021-9-14 09:29
安卓系统你做过吗?做过能不能帮助解决一下啊

安卓系统参考wiki操作即可,但无论哪个系统都是参考rknnrt.tgz文档<<连板调试.md>>进行操作
作者: 宁静    时间: 2021-9-14 11:21
有没有 《连扳调试.md》 的文档,发我看看

作者: 时间的蝴蝶    时间: 2021-9-14 14:16
宁静 发表于 2021-9-14 11:21
有没有 《连扳调试.md》 的文档,发我看看

在发布的 RKNN SDK 的 rknnrt.tgz 压缩包里有:https://www.t-firefly.com/doc/download/103.html#other_477

## 连板调试简介
rknn_server是一个运行在板子上的后台代理服务,用于接收PC通过USB传输过来的协议,然后执行板端runtime对应的接口,并返回结果给PC。

## rknn_server存放目录
### Android平台
```
Android
└── rknn_server
    ├── arm64-v8a
    │   └── vendor
    │       └── bin
    │           └── rknn_server
    └── armeabi-v7a
        └── vendor
            └── bin
                └── rknn_server
```

### Linux平台
```
Linux
└── rknn_server
    ├── aarch64
    │   └── usr
    │       └── bin
    │           ├── restart_rknn.sh
    │           ├── rknn_server
    │           └── start_rknn.sh
    └── armhf
        └── usr
            └── bin
                ├── restart_rknn.sh
                ├── rknn_server
                └── start_rknn.sh
```

## 启动步骤
### Android平台
1. adb root && adb remount
2. adb push Android/rknn_server/${BOARD_ARCH}/rknn_server到板子/vendor/bin/目录
3. adb push Android/librknn_api/${BOARD_ARCH}/librknnrt.so到/vendor/lib64(64位系统特有)和/vendor/lib目录
4. 使用串口,在板子上执行:
```
chmod +x /vendor/bin/rknn_server
setenforce 0
/vendor/bin/rknn_server
```

### Linux平台
1. adb push Linux/rknn_server/${BOARD_ARCH}/usr/bin/下的所有文件到/usr/bin目录
2. adb push Linux/librknn_api/${BOARD_ARCH}/librknnrt.so到/usr/lib目录
3. 在板子上执行:
```
chmod +x /usr/bin/rknn_server
chmod +x /usr/bin/start_rknn.sh
chmod +x /usr/bin/restart_rknn.sh
./restart_rknn.sh
```
作者: 宁静    时间: 2021-9-14 15:29
我确实是按照这个步骤做的啊,但是还是出现之前的那个问题,什么参数为空的问题

作者: 时间的蝴蝶    时间: 2021-9-14 16:22
宁静 发表于 2021-9-14 15:29
我确实是按照这个步骤做的啊,但是还是出现之前的那个问题,什么参数为空的问题

你是跑的什么系统?rknn_server 服务有正常运行吗?是用的 NPU SDK 里的例程吗?
你还是发下详细的说明和操作步骤吧。
作者: 宁静    时间: 2021-9-14 16:38
https://wiki.t-firefly.com/Core-3568J/usage_npu.html
我是按照这个网址步骤做的啊,到最后一步PC端运行test.py出了那个问题了,不知道怎么处理
作者: zyk    时间: 2021-9-14 16:42
宁静 发表于 2021-9-14 16:38
https://wiki.t-firefly.com/Core-3568J/usage_npu.html
我是按照这个网址步骤做的啊,到最后一步PC端运行 ...

确保adb可以发现设备,确保运行的过程中rknn_server有在跑
作者: 宁静    时间: 2021-9-15 11:00
adb可以看见设备,rknn_server在跑,但是运行脚本test.py后rknn_server就不跑了,怎么解决这个问题啊!
作者: zyk    时间: 2021-9-15 11:37
用串口去跑rknn_server或adb运行nohup /vendor/bin/rknn_server >/data/rknn.file &
作者: 宁静    时间: 2021-9-15 11:41
zyk 发表于 2021-9-15 11:37
用串口去跑rknn_server或adb运行nohup /vendor/bin/rknn_server >/data/rknn.file &

不太明白什么串口,我是用adb shell 进入板子系统,然后/vendor/bin/rknn_server,最后运行程序的
作者: 宁静    时间: 2021-9-15 14:17
你能不能说详细一些啊,我前面做了,后面你说的>/data/rknn.file是什么意思呢,rknn-toolkit包里没有这个东西啊
作者: zyk    时间: 2021-9-15 14:46
宁静 发表于 2021-9-15 14:17
你能不能说详细一些啊,我前面做了,后面你说的>/data/rknn.file是什么意思呢,rknn-toolkit包里没有这个东 ...

那进入adb后直接运行nohup /vendor/bin/rknn_server >/data/rknn.file &就可以了,具体什么意思可以百度一下linux的命令




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1