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 裝置上進行測試。

在 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 時有成功經驗,請在此處詳細說明您的結果。

架構: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/ 找到。

架構: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 的一部分。