golang交叉编译运行在小米ac2100 mips架构的可执行文件
最近咸鱼45包邮收了一台小米ac2100用来做ap,米系设备还是可以的,预留好了漏洞给刷openwrt,openwrt也直接官方提供了方案:
https://openwrt.org/toh/xiaomi/mi_router_ac2100
搞定后发现CPU为MT7621,是个mips架构的cpu,openwrt软件源里木有sing-box,只能手动编译下了
编译注意点:
- MT7621为mipsle,也就是little end,golang里mips默认是大端,需要指定GOARCH=mipsle
- MT7621没有浮点计算单元fpu,编译时需要指定下软件模拟浮点GOMIPS=softfloat
- 可以通过指定-ldflags="-w -s"去除调试信息减小文件体积
- 如果嫌文件还大,可以再用upx处理下
- sing-box提供了很多编译选项开启或关闭某些功能支持,可以用tags指定,这里我选择全都不要
具体命令就是
$ GOOS=linux GOARCH=mipsle GOMIPS=softfloat CGO_ENABLED=0 go build -ldflags="-w -s" -tags="" ./cmd/sing-box
$ upx sing-box
最后的可执行文件在4.5m左右,还是可以的
发表于 2023-12-26 01:04:00 并被添加「」标签,阅读量: 2418 。
此处评论已关闭