Toybrick

标题: rk1808节点启动失败 [打印本页]

作者: gssg123    时间: 2020-6-1 20:29
标题: rk1808节点启动失败
在用rk1808测试时,启动节点,加载模型失败,报以下错误:
E NPUTransfer: Cannot connect to proxy: Connection refused
E RKNNAPI: rknn_init,  driver open fail!  ret = -4(ERROR_NO_DEVICE)!
rknn_init fail! ret=-3
E RKNNAPI: rknn_query,  context = nullptr!
rknn_query fail! ret=-7

无论是用lsusb,ip a还是./npu_transfer_proxy devices都能看到rk1808连接成功。

然后尝试以下解决方案

1.将rknn_toolkit由1.3.0升级到1.3.2。
2.按照http://t.rock-chips.com/wiki.php?mod=view&id=76中的第二部分配置了NAT功能。
3.使用ssh登录到1808端,输入sudo ping www.baidu.com检查是否可以访问外网,出现如下报错:
ping: www.baidu.com: Name or service not known

尝试了https://www.cnblogs.com/maowenqiang/articles/7727910.html中的解决办法,仍然未解决问题。
4.输入sudo dnf update报如下错误:

Error: Failed to synchronize cache for repo 'fedora-modular'
百度也没找到合适的解决方法。

大家如果对于该问题有解决方案,请不吝赐教,谢谢




作者: bobby_jiang    时间: 2020-6-2 08:39
你这上位机网络不通,
ping 163.177.151.109,看看是否通。
作者: gssg123    时间: 2020-6-2 11:40
bobby_jiang 发表于 2020-6-2 08:39
你这上位机网络不通,
ping 163.177.151.109,看看是否通。

我是设置的静态IP,网关192.168.180.1。
ping 192.168.180.1或者163.177.151.109都会显示 Destination Host Unreachable
配置静态IP后电脑就不能登陆网页了,和这个有关系吗?
作者: bobby_jiang    时间: 2020-6-2 11:48
你在哪里设置的静态ip?pc还是计算棒上?
作者: gssg123    时间: 2020-6-2 11:53
bobby_jiang 发表于 2020-6-2 11:48
你在哪里设置的静态ip?pc还是计算棒上?

pc上,然后插入rk连接静态IP。不这样做,直接ssh连接不上rk
作者: bobby_jiang    时间: 2020-6-2 17:56
本帖最后由 bobby_jiang 于 2020-6-2 18:13 编辑

pc上网关不要设置,要按照我们的wiki上的指导来设置http://t.rock-chips.com/wiki.php?mod=view&id=76。另外,ping是ssh登录计算棒后,在计算棒上面ping


作者: gssg123    时间: 2020-6-2 20:38
bobby_jiang 发表于 2020-6-2 17:56
pc上网关不要设置,要按照我们的wiki上的指导来设置http://t.rock-chips.com/wiki.php?mod=view&id=76。另 ...

我们就是在计算棒上ping的。现在在不使用静态IP的情况下,NAT功能和桥接功能我们都尝试成功了,但是ssh就无法再登录到1808端。
作者: bobby_jiang    时间: 2020-6-3 09:49
你的描述需要再清楚一点,“NAT功能和桥接功能我们都尝试成功了,但是ssh就无法再登录到1808端。“

这个怎么确认?

作者: bobby_jiang    时间: 2020-6-3 09:50
你ssh无法登录,是否有在pc上查看一下,是否有usb 网卡这个设备?如果有,是否在上位机 ping 192.168.180.8可以ping的通?
作者: gssg123    时间: 2020-6-3 10:44
bobby_jiang 发表于 2020-6-3 09:50
你ssh无法登录,是否有在pc上查看一下,是否有usb 网卡这个设备?如果有,是否在上位机 ping 192.168.180.8 ...

昨天晚上测试的两种情况:
1.通过NAT功能进行计算棒联网,联网成功。接着使用ssh登录rk1808,失败。
2.通过桥接功能进行计算棒联网,联网成功。接着使用ssh登录rk1808,失败。

不过幸运的是,刚才再次进行上述连接时,两种情况下ssh均登录成功了,并且可以ping www.baidu.com成功,希望之后不再出现问题,然后成功进行了sudo dnf update。

重新拔插神经棒,建立神经棒和pc之间的连接,尝试启动我们自己的节点,还是失败,报主题帖里同样的错误。
作者: bobby_jiang    时间: 2020-6-3 10:54
升级后的版本信息是什么?
作者: bobby_jiang    时间: 2020-6-3 10:55
升级后的版本信息是什么?确认一下是否升级成功。
作者: gssg123    时间: 2020-6-3 11:05
bobby_jiang 发表于 2020-6-3 10:55
升级后的版本信息是什么?确认一下是否升级成功。

是通过uname -a看嘛?显示的信息如下
Linux rk1808.tb-rk1808s0 4.4.189 #1 SMP PREEMPT Tue Nov 26 11:41:47 CST 2019 aarch64 aarch64 aarch64 GNU/Linux
作者: bobby_jiang    时间: 2020-6-3 14:30
rpm -qa| grep rknn
rpm -qa| grep toybrick

作者: gssg123    时间: 2020-6-3 14:42
bobby_jiang 发表于 2020-6-3 14:30
rpm -qa| grep rknn
rpm -qa| grep toybrick

[toybrick@rk1808 ~]$ rpm -qa| grep rknn
rknn-api-1.3.2-1.rk1808.fc28.aarch64
rknn-server-1.3.2-1.rk1808.fc28.aarch64
rknn-1.3.2-1.rk1808.fc28.aarch64
[toybrick@rk1808 ~]$ rpm -qa| grep toybrick
toybrick-deploy-server-1.1.0-1.rk1808.fc28.aarch64
toybrick_env-1.0.2-5.fc28.aarch64
toybrick-server-1.5.0-0.rk1808.fc28.aarch64
toybrick-deploy-1.1.0-1.rk1808.fc28.aarch64
作者: bobby_jiang    时间: 2020-6-4 10:49
你已经升级到最新的固件了
作者: bobby_jiang    时间: 2020-6-4 10:57
ssh登录计算棒后,dmesg |grep -ri galcore
把信息导给我
作者: gssg123    时间: 2020-6-4 11:20
bobby_jiang 发表于 2020-6-4 10:57
ssh登录计算棒后,dmesg |grep -ri galcore
把信息导给我

应该是dmesg | grep -i galcore吧,显示信息如下,有一个地方显示failed
[    8.385908] galcore: loading out-of-tree module taints kernel.
[    8.390421] galcore: npu init.
[    8.393576] galcore: start npu probe.
[    8.400717] Galcore version 6.4.0.227915
[    8.400723] Galcore options:
[    8.409570] Galcore Info: ContiguousBase=0x32e00000 ContiguousSize=0x400000
[    8.414823] Galcore Info: MMU mapped external shared SRAM[0] CPU base=0xfec10000 GPU virtual address=0xfec10000 size=0x1f0000
[    8.414908] Galcore Info: MMU mapped core 0 SRAM[0] hardware virtual address=0x400000 size=0x80000
[    8.415113] Galcore Info: MMU mapped core 0 SRAM[1] hardware virtual address=0x480000 size=0x80000
[    8.419641] galcore ffbc0000.npu: Init npu devfreq
[    8.419853] galcore ffbc0000.npu: leakage=24
[    8.420099] galcore ffbc0000.npu: Failed to get pvtm
[    8.420587] galcore ffbc0000.npu: avs=0
[    8.449197] galcore ffbc0000.npu: l=0 h=2147483647 hyst=5000 l_limit=0 h_limit=0

作者: bobby_jiang    时间: 2020-6-4 15:08
那现在ssh登录计算棒,vi /usr/bin/start-rknn.sh,
增加
export VSI_NN_LOG_LEVEL=5
export VIV_VX_DEBUG_LEVEL=5
export RKNN_SERVER_LOGLEVEL=5

修改rknn_server > /var/log/rknn.log
保存退出。
然后tail -f /var/log/rknn.log
然后你在PC再跑一下程序,把计算棒上tail的log发给我


作者: gssg123    时间: 2020-6-4 16:05
bobby_jiang 发表于 2020-6-4 15:08
那现在ssh登录计算棒,vi /usr/bin/start-rknn.sh,
增加
export VSI_NN_LOG_LEVEL=5

vi /usr/bin/start-rknn.sh后里面是空的,正常吗?目前已经把三行export添加进去了。

另外,“修改rknn_server > /var/log/rknn.log”是什么意思?
vi /var/log/rknn.log后内容如下:
start rknn server, version:1.3.2 (f113d64 build: 2020-04-23 09:35:26)
0 NNPluginManager loadPlugins(41): No plugin find!
I NPUTransfer: Starting NPU Transfer Server, Transfer version 2.0.0 (8f9ebbc@2020-04-03T09:12:43)

作者: bobby_jiang    时间: 2020-6-4 16:16
[root@rk1808 ~]# vi /usr/bin/start_rknn.sh

#!/bin/sh

export VIV_VX_ENABLE_SWTILING_PHASE1=1
export VIV_VX_ENABLE_SWTILING_PHASE2=1
export TRANSFER_USB_DEVICE_CONFIG_BYPASS=1
export VSI_NN_LOG_LEVEL=5
export VIV_VX_DEBUG_LEVEL=5
export RKNN_SERVER_LOGLEVEL=5

export RKNN_SERVER_PLUGINS='/usr/lib64/npu/rknn/plugins/'

while true
do
  sleep 1
  rknn_server > /var/log/rknn.log
done



作者: gssg123    时间: 2020-6-4 16:31
bobby_jiang 发表于 2020-6-4 16:16
[root@rk1808 ~]# vi /usr/bin/start_rknn.sh

#!/bin/sh

这个吗?
[root@rk1808 ~]# tail -f /var/log/rknn.log
start rknn server, version:1.3.2 (f113d64 build: 2020-04-23 09:35:26)
1 NNPluginManager loadPlugins(41): No plugin find!
I NPUTransfer: Starting NPU Transfer Server, Transfer version 2.0.0 (8f9ebbc@2020-04-03T09:12:43)
作者: bobby_jiang    时间: 2020-6-4 16:37
pc上把程序跑起来啊,跑起来就有log输出了
作者: gssg123    时间: 2020-6-4 16:52
bobby_jiang 发表于 2020-6-4 16:37
pc上把程序跑起来啊,跑起来就有log输出了

节点起不来,报主题帖里面的错误
作者: raul    时间: 2020-6-4 17:16
麻烦提供下你的rknn模型,我们debug看下。
作者: gssg123    时间: 2020-6-4 20:52
raul 发表于 2020-6-4 17:16
麻烦提供下你的rknn模型,我们debug看下。

个人觉得和模型无关,先给你看一下运行官方demo报错情况吧,使用的demo是http://repo.rock-chips.com/rk1808/mobilenet_v1.tar.gz
--> config model
done
--> Loading model
done
--> Building model
W The target_platform is not set in config, using default target platform rk1808.
W:tensorflow:From /home/johnny/.local/lib/python3.5/site-packages/tensorflow/python/ops/control_flow_ops.py:3632: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
W:tensorflow:From /home/johnny/.local/lib/python3.5/site-packages/tensorflow/python/ops/control_flow_ops.py:1941: py_func (from tensorflow.python.ops.script_ops) is deprecated and will be removed in a future version.
Instructions for updating:
tf.py_func is deprecated in TF V2. Instead, use
    tf.py_function, which takes a python function which manipulates tf eager
    tensors instead of numpy arrays. It's easy to convert a tf eager tensor to
    an ndarray (just call tensor.numpy()) but having access to eager tensors
    means `tf.py_function`s can use accelerators such as GPUs as well as
    being differentiable using a gradient tape.
   
done
--> Export RKNN model
done
--> Init runtime environment
E Execute ntp_transfer_proxy devices failed, ret code: 1. /home/johnny/.local/lib/python3.5/site-packages/rknn/3rdparty/platform-tools/ntp/linux-x86_64/npu_transfer_proxy: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/johnny/.local/lib/python3.5/site-packages/rknn/3rdparty/platform-tools/ntp/linux-x86_64/npu_transfer_proxy)

E Catch exception when init runtime!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 1042, in rknn.api.rknn_base.RKNNBase.init_runtime
E   File "rknn/api/rknn_runtime.py", line 168, in rknn.api.rknn_runtime.RKNNRuntime.__init__
E   File "rknn/api/rknn_platform_utils.py", line 272, in rknn.api.rknn_platform_utils.start_ntp_or_adb
E   File "rknn/api/rknn_platform_utils.py", line 136, in rknn.api.rknn_platform_utils.weather_device_use_ntb
E Exception: Init runtime environment failed!
E Current device id is: None
E Devices connected:
E Execute ntp_transfer_proxy devices failed, ret code: 1. /home/johnny/.local/lib/python3.5/site-packages/rknn/3rdparty/platform-tools/ntp/linux-x86_64/npu_transfer_proxy: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/johnny/.local/lib/python3.5/site-packages/rknn/3rdparty/platform-tools/ntp/linux-x86_64/npu_transfer_proxy)

Traceback (most recent call last):
  File "test.py", line 66, in <module>
    ret = rknn.init_runtime(target='rk1808')
  File "/home/johnny/.local/lib/python3.5/site-packages/rknn/api/rknn.py", line 378, in init_runtime
    adb_devices, ntb_devices = self.rknn_base.list_devices()
  File "rknn/api/rknn_base.py", line 1006, in rknn.api.rknn_base.RKNNBase.list_devices
  File "rknn/api/rknn_platform_utils.py", line 328, in rknn.api.rknn_platform_utils.get_ntb_devices
RuntimeError

作者: raul    时间: 2020-6-5 08:59
gssg123 发表于 2020-6-4 20:52
个人觉得和模型无关,先给你看一下运行官方demo报错情况吧,使用的demo是http://repo.rock-chips.com/rk1 ...

这个错和前面的错是不一样的呀。这个错是因为gcc版本不够的原因导致的。要把gcc升级到5.5.0
作者: gssg123    时间: 2020-6-5 10:09
raul 发表于 2020-6-5 08:59
这个错和前面的错是不一样的呀。这个错是因为gcc版本不够的原因导致的。要把gcc升级到5.5.0 ...

那我们先升级一下gcc,你把邮箱给我一下吧,模型发你邮箱
作者: bobby_jiang    时间: 2020-6-5 10:50
bobby.jiang@rock-chip.com
作者: gssg123    时间: 2020-6-5 10:57
bobby_jiang 发表于 2020-6-5 10:50
bobby.jiang@rock-chip.com

已发,请注意查收
作者: gssg123    时间: 2020-6-5 11:12
raul 发表于 2020-6-5 08:59
这个错和前面的错是不一样的呀。这个错是因为gcc版本不够的原因导致的。要把gcc升级到5.5.0 ...

我们不方便更新到gcc5.5.0,会干扰到其他进程。你们的官方demo是python脚本,有没有c++的提供一下?
作者: raul    时间: 2020-6-5 11:18
gssg123 发表于 2020-6-5 10:57
已发,请注意查收

--> Init runtime environment
D target set by user is: rk1808
I Device [TS018082190800780] use ntb.
D Start ntp...
I npu_transfer_proxy pid: 12472, status: sleeping
D NPUTransfer: Transfer spec = local:transfer_proxy
D NPUTransfer: Transfer client closed, fd = 3
D NPUTransfer: Transfer spec = local:transfer_proxy_ddf3ce7a
D NPUTransfer: Transfer interface successfully opened, fd = 3
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.3.2 (9eebd73 build: 2020-04-02 15:30:51)
D RKNNAPI:   DRV: 1.3.2 (f113d64 build: 2020-04-23 09:35:26)
D RKNNAPI: ==============================================
done
--> Running model
done
(1917, 4)
(1917, 91)
D NPUTransfer: Transfer client closed, fd = 3

你给的模型在我们的计算棒上是可以正常运行的。建议你整一台ubuntu18.04的机器,就不要升级gcc了。
作者: bobby_jiang    时间: 2020-6-5 11:22
gssg123 发表于 2020-6-5 11:12
我们不方便更新到gcc5.5.0,会干扰到其他进程。你们的官方demo是python脚本,有没有c++的提供一下? ...

wiki上本来就有C++的,你认真看一下
作者: raul    时间: 2020-6-5 11:39
gssg123 发表于 2020-6-5 11:12
我们不方便更新到gcc5.5.0,会干扰到其他进程。你们的官方demo是python脚本,有没有c++的提供一下? ...

C++的demo可以参考这个链接,里面有ssd_mobilenet_v1的示例:https://github.com/rockchip-linu ... cetag=s_pcqq_aiomsg
作者: raul    时间: 2020-6-5 11:40
raul 发表于 2020-6-5 11:18
--> Init runtime environment
D target set by user is: rk1808
I Device [TS018082190800780] use ntb. ...

https://github.com/rockchip-linu ... /Linux/rknn_api_sdk
作者: gssg123    时间: 2020-6-5 15:01
bobby_jiang 发表于 2020-6-5 11:22
wiki上本来就有C++的,你认真看一下

我们已经解决问题了,根本原因还是出在npu_transfer_proxy上。

http://repo.rock-chips.com/rk180 ... proxy/linux-x86_64/下载npu_transfer_proxy。
首先启动可执行文件npu_transfer_proxy,接着启动节点,即可成功。
我们又进行了优化,利用systemd实现npu_transfer_proxy开机自启动,避免每次手动启动。

最近麻烦你们了,十分感谢。也希望我们的解决方案能帮到遇到同样问题的人。




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3