沒有板子也可以玩的 7688 模擬器!

LinkIt Smart 7688 實戰

最近燃起熱潮,很多人買不到 LinkIt Smart 7688,很想要試玩看看,官方一也直呈現缺貨的狀態,真的是「一板難求」。而有趣的是,有些人好不容易剛拿到板子,就把系統玩爆了。硬體的記憶體有限,容量有限,CPU 速度也有限,在上面開發應用,確實綁手綁腳。在這樣的環境下,很多前線開發人員,若想要先在上面掃蕩地雷,更是痛苦不堪!

尋思,如果可以在自己的電腦上建立一個 7688 的虛擬機(Virtual Machine)或是一個模擬的開發環境,不是很棒嗎?除了可以有空間盡情安裝想要的模組、函式庫、開發工具,還可以有足夠記憶體直接編譯許多程式,更是可以直接在這虛擬機上測試複雜的程式,省去許多麻煩。

最重要的是,沒有板子的人,也可以先行在模擬器上開發自己的應用,熟悉 7688 的環境!


運用 makerboard 工具建立模擬環境

筆者開發了一個工具「makerboard」,讓開發者在 Linux 下可以很容易建立一個自己的 7688 模擬環境。主要方法是藉由實作 Container 技術來完成,完整原始碼可以在 Github 上找到:

https://github.com/cfsghost/makerboard

使用之前必須先安裝 QEMU 和 SquashFS 的套件,若在 Debian/Ubuntu 之下可以使用 apt-get 命令來安裝:

sudo apt-get install qemu-user-static squashfs-tools

接著確定你的系統有 Node.js,就使用 NPM 命令安裝 makerboard 到全域路徑:

npm install -g makerboard

安裝成功後,我們的環境就應該會有 makerboard 這命令可以執行,接著就可以代入「create」參數來建立一個 7688 模擬環境。它執行後,會從 MTK 下載官方的 Root Filesystem 回來使用:

makerboard create my7688

如果沒有意外,你會得到一個名為 my7688 的目錄,裡面包含了 Root Filesystem 的所有架構和檔案。接著就可以進入到這個環境中:

makerboard run my7688

如果沒有任何錯誤,你已經成功進入模擬環境裡的 Shell 了!在這所做的動作,就如同在板子內執行一樣。


使用自己編譯的 Root Filesystem

除了可以從 LinkIt Smart 7688 官方伺服器取得映像檔外,我們也可以透過自己編譯 OpenWrt 來取得,甚至會做一些客製化。

如果你想要自己編譯,你可以參考 MTK 的官方文件來編譯一個全新的 Image:

重新編譯 OpenWrt 需要花點時間,一旦完成編譯後,我們可以取得一個 Root Filesystem 的新 Image 檔案:

<openwrt>/bin/ramips/openwrt-ramips-mt7688-root.squashfs

然後,我們可以利用「-i」選項,來使用這個新的 Image 建立一個模擬環境:

makerboard create myrootfs -i openwrt-ramips-mt7688-root.squashfs

最後,一樣可以使用 run 命令進入這個新的模擬環境:

makerboard run myrootfs

GPIO 或 ATmega 等硬體控制的模擬?

目前只有模擬 MPU 上的 Linux 環境,主要方便開發者進行軟體的開發配置和編譯,避免板子上的效能和資源太少所造成的開發困難,所以沒有硬體控制方面的模擬。


有疑問或碰到困難?

這個 MakerBoard 工具是由「MakerCup」社群所開發,你可以到「LinkIt-7688」線上討論區來尋求協助,或是直接與開發者溝通。