在 Ubuntu 執行 KL720DemoGenericImageInferencePostYolo.py 失敗
您好:
我在 Ubuntu 環境下執行 KL720DemoGenericImageInferencePostYolo.py 發生 KP_FW_INFERENCE_TIMEOUT_103 錯誤!
請問是哪些設定沒有設定正確呢?
Tagged:
The discussion has been closed due to inactivity. To continue with the topic, please feel free to post a new discussion.
Comments
Hi Alan,
請問一下,您是否有去改.py檔,或是模型或圖片呢? 如果有的話,可以麻煩您提供您使用的.py檔,模型,圖片,跟firmware (SCPU跟NCPU)嗎? 謝謝!
Hi Maria:
我並沒有修改 KL720DemoGenericImageInferencePostYolo.py 檔喔!是直接從 kneron_plus_v2.1.1.zip 解壓出來的。不過我還是把檔案加在附加檔裡!
另外想請問一下要如何在 Ubuntu 下得到 Firmware 的 SCPU 跟 NCPU 的版本呢?
Hi Alan,
謝謝您的KL720DemoGenericImageInferencePostYolo.py,看起來沒有問題! 模型跟圖片也都是原本的
KL720的firmware (SCPU跟NCPU)在Ubuntu的kneron_plus/res/firmware/KL720裡面,版本資訊也在裡面,是2.1.0。KL720需要事先upload firmware在flash上才能成功跑inference,可以用這個方法: Upgrade AI Device To KDP2 - Document Center (kneron.com)
要在Ubuntu確認firmware version可以用GenericCommand.py,像這樣:
還有,請問您有試過python/python3不同commands,跟確認USB權限的問題嗎?
這裡有更多詳細資訊: Install Dependency - Document Center (kneron.com)
Hi Maria:
KL720 的 Firmware 確定已更新至 2.1.0,如下圖:
python/python3 問題部份,因為我使用的是 conda 環境,因此 python 和 python3 是相同指令,不過我還是測試了一下使用 python3,不過結果還是一樣
至於 USB 權限我是有增加的,如下圖:
另外提供您 KL520 我是可以正常執行的喔!
Hi Alan,
謝謝您提供資訊! 我有去用Ubuntu的電腦燒一樣的firmware也用了一樣的Kneron PLUS,可以跑KL720DemoGenericImageInference.py
這個KP_FW_INFERENCE_TIMEOUT_103 error原因有很多種,所以可以請您確認一下:
-您的電腦的hub有外接別的東西嗎? 因為KL720比KL520耗電,如果有接一些其他的東西,有可能會導致KL720供電不足
-這個Ubuntu是在Windows的virtual machine上嗎? 還是是原生的Ubuntu呢? 如果是virtual machine的,KL720重新boot的時候會失去連接然後再連接電腦一次,那時virtual machine也有可能會失去連接(但是沒有重新連接)
Hi Maria:
> 我的 KL720 並不是接在 Hub 上呦!而是直接接再到電腦上的 Type-C 孔~
> 我的 Ubuntu 不是灌在 VM 喔!是原生的 Ubuntu 20.04.2 LTS
Hi Alan,
好的,謝謝回答~ 如果是這樣的話,可以再麻煩您提供在Ubuntu上的DFUT連到KL720的截圖嗎? 或是跑一次ScanDevice.py,確認dongle有連到電腦
然後,可能還要請您用C跑一次kl720_demo_generic_image_inference,如果可以成功跑的話,有可能是python package的問題 (因為我們的.whl檔是在Ubuntu 18.04打包的)。麻煩您了,謝謝!
C的環境安裝: Install Dependency - Document Center (kneron.com)
Hi Maria:
以下是我跑 ScanDevice.py 的結果
然後我嘗試使用 C 來跑您說的 kl720_demo_generic_image_inference 也是出現一樣的問題呦!
不好意思順便問一下,想請問是否一定要使用您們付的那條 Type-C to Type-C 的 USB 線呢?因為現在暫時找不到那條線,是用其他支援 USB3.0 的線!
Hi Alan,
謝謝您的協助! ScanDevices.py的結果看起來都很正常。關於Ubuntu的系統,可以請您提供Ubuntu的資訊的截圖嗎? (像說CPU的種類)
其他USB3.0的線應該是可以用! 為了排除USB供電的可能性,能否請您改用別的USB port再試試看,並確保電腦其他的USB port沒有連接其他裝置呢?
還有,可以再麻煩您用同一隻dongle (firmware也一樣)在Windows環境跑一次KL720DemoGenericImageInference.py,看看會不會成功嗎? 謝謝!
以防萬一,也想跟您確認一下libusb的版本,可以用這個command:
apt list --installed | grep libusb*
(或是用apt list --installed 然後去找libusb,應該是libusb-1.0-0)
Hi Maria:
以下是我的 Ubuntu 系統的相關資訊
我有嘗試使用其他的 USB3.0 Port (Type-A),其他 Port 只是連接鍵盤滑鼠,不過還是一樣問題,而且使用 Type-A 的 USB 還會顯示 [Warning] Device is not run at super speed.
至於 libusb 版本資訊如下圖
最後我也使用同一支 Dongle 在 Windows 下執行 KL720DemoGenericImageInference.py 和 KL720DemoGenericImageInferencePostYolo.py 也都是一樣出現
ApiReturnCode.KP_FW_INFERENCE_TIMEOUT_103
問題!!再麻煩您看該怎麼處理解決了!!
hi Alan,
請問您有用dongle附上的USB type C cable嗎?請務必使用這條線,這是為KL720 dongle特製的。
Hi Alan,
謝謝您提供資訊! 如果用Windows跑也會失敗的話,就不是Linux的問題了。
我們會建議您的dongle用super speed來跑inference會比較好! (因為太慢會inference timeout)
可以再麻煩您重新燒firmware (fw_scpu.bin跟fw_ncpu.bin)到KL720的dongle上,再試著跑inference嗎? 如果v2.1.1的firmware會失敗,請用之前的firmware (Kneron PLUS v2.0.1) 試試看能不能跑inference,謝謝!!
燒firmware的話可以用KneronDFUT,也可以用DFUT_console (會需要build)
Upgrade AI Device To KDP2 - Document Center (kneron.com)
Dear Warren:
目前不是使用 dongle 付的 USB Type C cable,因為暫時找不到那條線,請問一定要用那條線嗎?
Hello Alan,
因為過去曾多次發生用戶使用了不符合規格的線或品質不佳的線材導致一些不可預期的問題,所以強烈建議使用我們原裝驗證過的線材。
另外,我們發現你有在另外一篇討論中提到,同樣這隻dongle在Windows底下是可以正常透過DFUT燒錄的,想跟你確認一下目前的現象是在Win / Ubuntu底下都可以正常透過DFUT燒錄,但是執行KL720DemoGenericImageInferencePostYolo範例時會有timeout的錯誤發生對嗎?
也想再請問一下是否有執行過其他的範例? 是否也會有相同的問題呢?
如果是的話,能否請你幫忙再重新燒錄一次FW( fw_scpu.bin & fw_ncpu.bin,確認燒錄成功後再執行一次
Hi Maria, Ethon, Warren:
我利用 DFUT_console 再燒一次 Firmware 後可以正常執行了!
因為之前 Connect Device 一直到 Upload Model 都是顯示 Success 所以一直不認為之前燒 Fireware 有任何問題,查詢版本也是對的!
順便想問一下 KneronDFUT 什麼時候會支援 Ubuntu 20.04.2 呢?
Hi Alan,
推測可能燒錄過程中scpu有正常燒錄,所以系統相關的API (connection, update, etc..)可以正常執行,但是ncpu的部份燒錄失敗,因此在進行模型推論時才會發生錯誤
因為OS版本太多,我們只能挑幾個主流的版本來製作應用程式,所以DFUT目前並沒有規劃要支援額外的OS版本,若有在Ubuntu 20.04.2上使用的需求的話,建議可以自行編譯 console版本的DFUT,相關操作可以參考此篇討論 (討論串日期較久遠,所以是以舊版的PLUS作為範例,可自行更換新版本,操作指令基本上都是一樣的)
Hi Ethon:
了解~~謝謝您們!