Go Wiki: Go on MIPS
引言
Go 程式可以交叉編譯,例如在 x86/x86_64 構建系統上為 MIPS 目標機器構建。
支援的架構
Go 支援以下 MIPS 架構系列。(還有更多嗎?)
| 架構 | 狀態 | GOMIPS 值 | GOARCH 值 |
|---|---|---|---|
| 大端序 (例如,ar71xx) | 支援 | GOMIPS=softfloat | GOARCH=mips |
| 小端序 | 支援 | 不適用 | GOARCH=mipsle |
支援的作業系統
- Linux 上的 MIPS。已在基於 ar71xx 的 OpenWrt 裝置上進行測試。
推薦的 Go 版本
在 MIPS 系統上執行 Go 的測試版本是 Go 1.13。
技巧和竅門
為 ar71xx OpenWrt 構建
這會構建一個 Go 程式,移除不必要的字串和符號以減小其大小,並進行壓縮以進一步減小其大小。
env GOOS=linux GOARCH=mips GOMIPS=softfloat go build -trimpath -ldflags="-s -w" 'server.go'
upx -9 server
成功案例
MIPS 硬體形狀和尺寸多種多樣。如果您在 Arm 系統上構建和執行 Go 時有成功經驗,請在此處詳細說明您的結果。
D-Link DIR-505 移動伴侶
架構:ar71xx
作業系統:OpenWrt
D-Link DIR-505 移動伴侶配備 Atheros AR1311 處理器、8 MB 快閃記憶體和 64 MB RAM。空間有限,但允許我們載入 Go 應用程式,例如從網路載入到 /tmpfs 並從那裡執行它們。
有關該裝置的更多資訊可在 https://openwrt.org/toh/d-link/dir-505 找到。
Teltonika RUT955
架構:ar9344
作業系統:RutOS (基於 OpenWrt)
Teltonika RUT955 配備 Atheros Wasp MIPS 74Kc CPU,執行頻率為 550 MHz,配備 16 MB 快閃記憶體和 128 MB RAM。內建快閃記憶體對於大多數應用程式來說不足,但可以新增 Micro SD 或 USB 驅動器(直接從 SD 執行應用程式不可靠,但複製到 /tmpfs 並從那裡執行效果很好)。內建的 IO、GPS 等可透過 Modbus TCP 訪問,RS232/RS485 埠執行正常。已在 Go 1.14.6、1.15.3 和 1.21.1 (GOARCH=mips, GOMIPS=softfloat) 上進行測試。
有關該裝置的更多資訊可在 https://teltonika-networks.com/product/rut955/ 找到。
Teltonika RUT956
架構:MediaTek MT7628AN ver:1 eco:2
作業系統:RutOS (基於 OpenWrt)
Teltonika RUT956 配備 Mediatek MIPS 24KEc CPU,執行頻率為 580 MHz,配備 16 MB 快閃記憶體和 128 MB RAM。內建快閃記憶體對於大多數應用程式來說不足,但可以新增 USB 驅動器。內建的 IO、GPS 等可透過 Modbus TCP 訪問,RS232/RS485 埠執行正常。已在 Go 1.21.1 (GOARCH=mipsle, GOMIPS=softfloat) 上進行測試。請注意,如果未設定 GOMIPS,則會輸出 illegal instruction。
有關該裝置的更多資訊可在 https://teltonika-networks.com/product/rut956/ 找到。
TP-Link Archer A6 WiFi 路由器
架構:ath79(與 ar71xx 相同硬體,但支援原生核心)
作業系統:OpenWrt
TP-Link Archer A6 配備 Atheros QCA9563 MIPS 24K 經典處理器、16 MB 快閃記憶體和 128 MB RAM。快閃記憶體儲存有限,並且沒有可用於儲存擴充套件的 USB 埠,因此程式從網路載入到 /tmpfs 中執行。
有關該裝置的更多資訊可在 https://openwrt.org/toh/tp-link/tp-link_archer_a6_us_tw 找到。
Belkin F7D7302 WiFi 路由器
架構:mipsel_74kc
作業系統:DD-WRT
Belkin F7D7302 配備 Broadcom BCM4716 小端序 MIPS 74K 經典處理器、8 MB 快閃記憶體和 64 MB RAM。快閃記憶體儲存嚴重不足,但有一個 USB 埠可用,因此程式可以載入到快閃記憶體驅動器上執行。
有關該裝置的更多資訊可在 https://openwrt.org/toh/belkin/f7d3302 找到。
AVM FRITZ!Box 7362 SL
系統型別:xRX200 rev 1.2
CPU 型號:MIPS 34Kc V5.6
作業系統:OpenWrt 21
有關該裝置的更多資訊可在 https://openwrt.org/toh/avm/avm_7362_sl 找到。
此內容是 Go Wiki 的一部分。