樹莓派是耳熟能詳的開發板,上頭搭載 Linux Based 的作業系統,還有豐富的GPIO控制,對於軟體工程師而言,大幅降低進入到底層控制的入門門檻。如果你想要有其他不同的應用需求,還有不同的客製化作業系統可以安裝。最重要的是價格不高,你就可以有一台效能不錯的小電腦,當然這只得不是在目前芯片短缺的時刻,遙想當年一塊只要兩千元新台幣,現在一套要將近六千元新台幣的高通膨。好消息是在去年年底看到來自樹莓派官方執行長宣佈的好消息: Broadcom 的芯片供應無虞,預計可望讓短缺的芯片補上,應該可望讓價格回到以往更具競爭力的售價『《Raspberry Pi 樹莓派官方消息》供應鏈更新——好消息!|奧斯丁國際有限公司 OURSTEAM Internationl』,這個消息也與他們的下游合作廠商獲得證實。
回到這篇文章的主軸,reTerminal 是 Seeed 的工業化方案。該產品整合 Raspberry Pi 4 且具有 5.5 吋 IPS 觸控屏幕,支援 1280×720 顯示解析度,還擁有內置的 Wi-Fi、藍牙和 Gigabit 乙太網口,可以輕鬆連接互聯網和其他設備。簡而言之,他就是現成的工業化方案,良好的外殼包裝,方便工程師快速包裝新的產品方案進行展示。剛到手時,對於軟體工程師而言,最大的問題是預載的作業系統為 Raspberry Pi OS 32Bit。
對於 Python 與 AI工程師,最頭疼的就是這套作業系統架構會讓你在佈署運行環境遇到一堆坑,浪費不少時間在上面,我自己就是受害者之一。主要原因就是在於它的作業系統架構為 armv7l,不是我們熟知的 x86_64 甚至是 Nvidia Jetson 系列使用的 aarch64,導致在應用上就很受限。舉虛擬環境管理工具 conda/ anaconda 來說,以往在 Pi4 以前,通常都會使用 GitHub – jjhelmus/berryconda: Conda based Python distribution for the Raspberry Pi,然而遺憾的是這項工具在2022/12/11正式宣告停止維護並轉為唯讀狀態,就算你拿下來,也會發現Python 為 3.4版,很多專案可能都沒法順利在上頭跑起來。對於GPIO應用工程師可能沒關係,但軟體工程師而言,就很頭痛。
主要是因為不知道為什麼,我自己在使用時,資料不多,摸索一段時間,所以想把它紀錄下來。
接下來我們正式進入主軸,reTerminal 搭載 Raspberry Pi 是有 32GB emmc,所以你可以把作業系統的映象檔直接燒錄進去,無須再使用記憶卡來提升存取效率。
這時候你會遇到一個問題,如果他沒有記憶卡,我要怎麼燒入?
這時候你就會需要使用到一個樹梅派的官方工具- GitHub – raspberrypi/usbboot: Raspberry Pi USB booting code, moved from tools repository,簡單來說,就是把樹莓派當成隨身碟,再用 Raspberry Pi OS – Raspberry Pi 中的Raspberry Pi Imager進行燒錄。
很快你會遇到第一個坑,我的電腦是 Windows,有沒有它可以用的 usbboot ? 答案是有的,但我也不知道為什麼在官方網站藏的很隱密,直接將官方網站的下載連結附上。
搞定之後,你需要拆開你的 reTerminal 背蓋與散熱片。散熱片下方左側有一個指撥開關往下撥動,進入 emmc 燒錄模式,可以參考這個 Blog圖解 reTerminal 烧写系统 – 人人都懂物联网 (getiot.tech),這時候使用 Type C 接上安裝好 usbboot的電腦上,再打開 Raspberry Pi Imager 就能發現電腦彈出偵測到隨身碟的提示。
以為這樣就搞定了? 其實沒有,下一個坑是要燒什麼映像檔,如果傻傻直接選擇 Raspberry Pi OS 64Bit 那麼你還會遇到其他 GPIO無法操作的坑,這時你需要參考 reTerminal 自己的 FAQ FAQs for reTerminal Usage | Seeed Studio Wiki,第二點有提供對應的作業系統映象檔與流程,這裡直接把連結附上 64-bit 2022-07-21-Raspbian-reTerminal,這下總算可以順利進行燒錄。
成功燒錄後,好像沒事了? 其實沒有,你會發現reTerminal 的螢幕不會亮,其實就是驅動的問題。這個坑就需要這個工具來填,GitHub – Seeed-Studio/seeed-linux-dtoverlays: Seeed Board 的設備樹疊加層。關鍵是請把 HDMI接上螢幕、鍵盤滑鼠也接上USB,這時最簡單的,當然你也可以透過網路搜索工具透過 ssh 連線,我自己是覺得太浪費時間,還是簡單暴力來得好。
進入 Terminal 後,這樣下指令就行
git clone https://github.com/Seeed-Studio/seeed-linux-dtoverlays
cd seeed-linux-dtoverlays
# sudo ./scripts/reTerminal.sh #這裡是關鍵,如果這樣下,你會遇到安裝失敗的問題,請參考下方指令
sudo ./scripts/reTerminal.sh --compat-kernel
最後看到安裝提示成功後,重新開機就搞定啦! 螢幕也就能正常亮起,更重要的是作業系統架構換了,可以直接到 conda 下載安裝包。
uname -a #檢視作業系統資訊
# expect: Linux raspberrypi 5.10.17-v8+ #1403 SMP PREEMPT Mon Feb 22 11:37:54 GMT 2021 aarch64 GNU/Linux
# install minconda
sudo apt install -y wget
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
sh Miniconda3-latest-Linux-aarch64.sh
收工! 謹以此篇記錄下午的填坑時光!