更新韌體錯誤

想請問我們把KL520插在電腦上,安裝驅動程式也打了"lsusb"確認dongle可以被識別到,其他前面的指令打了也都沒問題,但到了"python \main.py -t KL520-update_both_fw"這個指令時卻報錯說”add device failed”(圖一)。後來嘗試加了sudo在指令前面卻跑出這個錯誤(圖二),但我們有common這個資料夾,裡面也有那個檔案(圖三)。之後有試過去掉"/",把指令換成"python main.py -t KL520-update_both_fw" (圖四),也有再前面加sudo (圖五),還是有一樣錯誤。

想請教一下是有什麼步驟沒有做完整的嗎?還是哪裡有問題?

謝謝!

Comments

  • Hello,

    "add device failed" 表示電腦端透過host_lib這包程式跟dongle的溝通失敗了,所以無法做進一步的應用。因這樣的錯誤有很多可能性,所以想請你幫忙檢查下面的項目

    1. dongle的購買來源是? 時間點大約為何時?
    2. 環境中是否有安裝libusb (apt install libusb-1.0-0-dev)
    3. 若使用的是linux,是否有安裝 kdp_host_api-x.x.x_linux_-py3-none-any.whl
    4. dongle過去是否有更新過fw? 執行過update_fw的命令? 或是曾經執行過哪一類的應用?
    5. dongle是否直接連接在電腦上,或是有接在hub上?
    6. 可以試著下載標準版的host_lib https://github.com/kneron/host_lib,將https://host_lib/app_binaries/KL520/tiny_yolo_v3/內的兩個bin複製到https://host_lib/app_binaries/KL520/ota/ready_to_load/後,執行python main.py -t update_fw 來更新firmware
    7. 可以試著改在Windows上試,若還是一樣的現象,可能就是dongle內的firmware異常,需要回廠進行進一步分析
  • 1.dongle是因為參加競賽跟電腦公會借的。

    2.安裝過也確定dongle有正確連接。

    3.有的。

    4.都沒有。

    5.直接接在電腦上

    6.已經有將檔案複製過去,還是有錯誤,顯示

    "adding devices. . . ."

    "Task category not in KL520 or KL720: updat"

  • 因為使用的是KL520的dongle,指令的部分還請加上 KL520,完整指令如下

    python main.py -t KL520-update_fw


  • 請問,將dongle插拔後再試結果還是一樣嗎?

    是否會有windows環境也可以試試看是否一樣的現象呢?

  • 若是重新插拔以及在Windows環境下也是一樣的問題,那應該就是dongle本身有損壞需要進一步的分析,還請向電腦公會申請更換,聯絡方式如下

    電腦公會的湯小姐

    justine_tang@mail.tca.org.tw

    02-2577-4249 #390

  • 我們已經更換過新的dongle了,但還是一樣的錯誤("add device failed")。

    pid是對的,電腦也確定有讀到usb

    它device抓到的是11但應該要是2,看起來是api連不到,想請教有什麼方式能夠修正這個問題嗎?


  • 請問一下,所使用的電腦是x64的ubuntu嗎?

    另外,可否透過指令conda list,提供你現有環境下安裝的Lib與版本

  • 你執行時發生錯誤的環境是在 (base),但提供conda list的環境是在(try),還請在要使用的環境下(base)執行conda list,可透過conda deactivate退回到base環境

  • 確認了一下,有幾個環境設定可檢查一下,如下是我conda中的環境,安裝的是python 3.8.5,在同一個環境中使用指令python的確可以執行到3.8.5,但若使用指令python3,則會執行到3.8.2,也代表透過python3指令去執行時,使用的不見得是當下環境(app)的Library


    有請問有試過在環境(base)下執行python main -t KL520-update_both_fw,會是一樣的錯誤嗎?

    另外若是改至環境(try)底下執行同樣的指令python main -t KL520-update_both_fw ,結果是否也相同?


    若還是一樣有問題,可能要改請你下載C版本的host_lib_v1.0.0 (https://www.kneron.com/tw/support/developers/?folder=KNEO%20Stem%20(USB%20Dongle)/host_lib/&download=615)來確認是否為python 環境的問題,可參考README_CPP.md的說明,透過cmake ..與make -j4來編譯C project,編譯完成後再至/host_lib/build/bin中透過終端機執行指令燒錄(視環境可能需要在指令前加上sudo)

    ./kl520_update_fw 1

    ./KL520_update_fw 2

  • 您好,我們用windows系統可以成功更新了,不過我們在使用範例中預設的模型,拿兩張照片輪流做推論的部分出現以下錯誤,但我們使用電腦連接攝影機是可以成功執行的,想請教一下是什麼問題,謝謝。


  • 如果是cam的範例正常但兩張照片的範例會出錯的話可以檢查是否有安裝 pip install image 這個library,在dme_async_pre_post_host_yolov5這個範例中會透過"image"這個lib來處理照片


  • "pip install image"是成功的,但還是有問題 :(

  • 新的錯誤訊息看起來是找不到檔案dme_async_pre_post_host_yolov5.py,可以先確認/host_lib/python/examples_kl520/中是否有此檔案,此範例要使用競賽專用的專案 host_lib_competition.zip中才有

  • 後面測試後有發現,在Linux環境下,USB的存取是需要管理者權限的,但管理者權限下的環境與一般環境會有差異,也代表即便先前安裝好了python環境,若是在執行時改用sudo python 指令,則會發生找不到相關lib的python error。

    為避免usb權限以及python環境安裝的問題,建議可以照下面做法來開放耐能的KL520 usb控制權限

    以管理者權限創建 (或開啟)檔案 /etc/udev/rules.d/10-local.rules (也提醒,若不是用管理者權限開啟的話無法存檔),在檔案中加入下面三行

    KERNEL=="ttyUSB*",ATTRS{idVendor}=="067b",ATTRS{idProduct}=="2303",MODE="0777",SYMLINK+="kneron_uart"

    KERNEL=="ttyUSB*",ATTRS{idVendor}=="1a86",ATTRS{idProduct}=="7523",MODE="0777",SYMLINK+="kneron_pwr"

    SUBSYSTEM=="usb",ATTRS{idVendor}=="3231",ATTRS{idProduct}=="0100",MODE="0666"

    輸入完畢後將檔案存檔,後續就可以擁有USB權限來執行指令 python main.py -t KL520-update_both_fw

The discussion has been closed due to inactivity. To continue with the topic, please feel free to post a new discussion.