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