EdgeTPU 開發版環境設定

edgeTPU env. setting for beginner of edge-computing

Chun-Ting YE
Mess up
9 min readJan 19, 2020

--

這篇文章介紹當你拿到期盼已久的 edgeTPU 開發版包裹後,到你可以透過 SSH 連線至開發版上之間所需要做最少的事情,也分享一些可能會遇到的問題。

由於在設定的過程中會需要插線又拔線的,我會先介紹這塊板子大致的架構和會用到的接孔,接著是電腦端需要裝的套件,才會進入設定的環節。

一、開發版的架構

開發版的圖片如下圖,

首先要區別圖片上方的兩個 USB-C 接口,注意旁邊的文字,左邊的用來供電(使用一般的手機充電頭即可),右邊的則用來傳輸資料,OTG 的意思簡單來說就是可以由開發版這端當作主動送出資料的一方;接著,請注意右下角的紅色框框,它稱作 serial port ,只有在最一開始設定的時候會用到,用到的接頭為比較舊的手機會拿來充電、兩邊不對稱的 USB micro-B ;最後要介紹的為圖片中藍色框框的 boot mode switcher ,用來切換開機的模式,一般來說拿到時都已經調成等等設定需要的 eMMC 模式了,只需要確認一下即可。

二、電腦需要的套件

電腦需要的套件主要有以下幾項:

  1. screen: 用來讓電腦與開發版可以透過 serial port 溝通的程式,安裝方式:

2. fastboot: 請至這個連結下載最新的版本,將我們僅需要的 fastboot 執行檔移動到使用者的路徑下,確認可以使用即可

3. mendel-development-tool(mdt): 由於 edgeTPU 開發版上的作業系統是 mendel Linux ,為 google 自己製作的輕量 Linux ,所以也有提供相對應的開發工具 — mdt ,讓我們更方便地達成某些設定目的。

三、設定開發版

介紹完設定會用到的接口後,就可以準備開始設定了。由上一章節中得知,我們至少需要一個一般的手機充電頭、兩條 USB-C 的線,和一條 USB micro-B 的線,線的另一端要是哪一種接口則取決於你的電腦和充電頭是什麼接口,可能是一般的 USB-A ,以可能同樣是 USB-C。

這章節會再分成以下幾個步驟:

  1. 檢查是否需要 fastboot mode
  2. (optional) 進入 fastboot mode
  3. Flash the image
  4. 使用 mdt 工具連接至開發版
  5. 讓開發版連線至網路

1. 檢查是否需要 fastboot mode

這個步驟主要檢查你的開發版是否是 2019/04/10 後出廠的,如果是那麼你真的很幸運可以跳過第二個步驟,直接進入 Flash image 的步驟。判斷的方法如下圖:

圖中的代號分別代表西元年的最後一個數字、月份以及日期,因此只要板子的這個代碼大於 “9410” 即代表不需要額外進入 fastboot 模式。

2. (optional) 進入 fastboot mode

這個步驟是我認為最冗長而且最容易有問題的,所以如果你的板子不幸與我的一樣是 2019/04/10 前出廠的,就撐一下有耐心地把它看完吧…

首先要讓電腦能和開發版透過第一節介紹過的 serial port 連線。

  • Linux:
  • Mac
    這個網站中,找到 MAC 的版本下載並安裝,記得於安全性與隱私權的地方允許這個工具。

— — —

接著將電腦與開發版透過 USB micro-B 連接(注意此時還沒接上電源和其他線),你可以看到 serial console 的橘燈會亮起。我們接著要知道裝置在電腦上的名稱:

  • Linux:

你會看到一些訊息,從中找出有 cp210x 的那幾行:

在這個例子中你的裝置就是 ttyUSB0 和 ttyUSB1 了,我們取 ttyUSB0 即可。透過 screen 指令連接 (115200 為每秒鐘傳輸的位元數):

  • Mac
    Mac 的裝置名稱幾乎就是 cu.SLAB_USBtoUART,因此我們只需要

Checkpoint: 如果這時你的螢幕完全空白沒有游標在閃是對的,接著我們要接上電源讓板子開機。

— — —

接著要拿 USB-C 的線連接開發版和充電頭,讓開發版開機,開機時電腦螢幕會跑出一堆訊息,最後停在一段歡迎的訊息,以及 u-boot> 的提示詞等待接下來的輸入,最後只需要輸入以下指令即可讓開發版進入 flash 的狀態。

3. Flash the image

這個步驟首先我們要將 OTG port 透過 USB-C 連接至電腦,若你幸運地不需要做第 2 個步驟,記得也要接上電源線。

接著我們只需要下載OS 映像檔和執行官方提供的腳本,

這個步驟需要大概五分鐘的時間,結束時開發版將重新開機然後終端機會回到電腦這邊。

4. 使用 mdt 工具連接至開發版

開法版有了OS後,我們要想盡辦法讓電腦可以透過 serial port 以外的方式溝通,mendel development tool (mdt) 是最簡單的方式。在開始前有幾個觀念要先知道:

  1. edgeTPU 開發版一開始只能透過有線的方式(serial port, USB)連進
  2. edgeTPU 開發版除了透過 serial port(有線) 能使用密碼登入外,在無線的方式下只能用 key 登入而不能用密碼。
  3. mdt 工具能更方便地讓我們知道現在電腦能否辨識到裝置,以及更方便地在一開始傳送 key 至開發版,ssh 等方式也完全可以達到目的。
  4. 透過 mdt 連線時,電腦和開發版中的連線只能有 USB。

會用到的指令主要就兩個:

前者讓我們辨識現在的裝置,後者幫助我們連線至開發版。

問題來了,在做這個步驟時我發現無法透過 mdt shell 推送 key 至開發版上,導致一直無法連線,找資料的時候也發現別人有類似的問題(mendel 13),因此這裡也提供另一個方式,流程如下:

1.在電腦端產生一組 key

2. 透過 serial port 使用密碼登入開發版,並將開發版開機,在 login 畫面輸入帳密(皆為 mendel

3. 在開發版端,主動地將key 複製到自己的 .ssh/authorized_keys 檔案中

5. 讓開發版連線至網路

終於到最後一個步驟了,而這個步驟也相當簡單,主要目的是讓電腦能以無線的方式(wifi) 連線至開發版,設定基本上跟 linux 系統差不多:

<NETWORK_NAME> 和 <PASSWORD> 分別就是 wifi 的名稱和密碼,簡單明瞭。最後要補充的是網路的小知識,在預設的情況中,你的電腦必須和開發版都在同一個網域下才有辦法聯繫,因此若你是使用桌電就要將網路線連至 wifi 的 router 上,筆電的話只需要連線至和開發版同一個 wifi 即可。

結語

開發版的設定只是讓我們接下來能更順利地開發自己想要的應用,因此希望這篇文章能讓大家節省一些不必要的時間。

--

--