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