我的兆能讯通M2(ZN-M2),目前能完美使用Wifi的OpenWRT固件,就只有Lean(L大)的AX1800。
但是,该版本源码树基于2019年的OpenWRT 19.07,它提供的Go语言支持为1.17。然而,该版本似乎不能完美支持编译自定义模块,例如在编译Caddy时,可能会发生这样的错误:
1 |
|
最新版的1.21已经解决了这一问题,因此开发者通常会建议使用新的Golang。而OpenWRT自带的Go语言版本过旧,势必会导致一些新应用无法构建。
那么,如何把OpenWRT 19.07的Go语言支持更新到最新版?
1. 获取新版本Feed中的Golang配置文件
包括Golang在内的编程语言工具链,是以Feed的形式提供的,对应的Feed名为package
。每款工具链有自己的配置文件,OpenWRT会根据配置文件来构建之。
这里使用L大提供的package
Feed,将它克隆到本地。假设克隆到~/lean-packages/
。
1 |
|
注: 开发团队更新Golang配置文件的提交是
f937504996886608d3803b63cc6288790bc6a19e
。如果后续出现问题,你可以使用git checkout f937504996
来恢复到该提交。
2. 替换Golang配置文件
考虑到兼容性,我们不能简单把Feed源替换为新版OpenWRT,而是要单独替换Golang的配置文件。
假设OpenWRT 19.07源码位于~/openwrt-19/
。
1 |
|
3. 刷新Feeds
最后,运行以下命令刷新Feeds,使修改生效:
1 |
|
下一次编译时,OpenWRT将自动构建新版的Go语言编译器,并投入使用。
注意
- 不要运行
./scripts/feeds update -a
,否则有可能会导致Golang的配置文件目录被覆盖!如果你需要更新Feeds,则先恢复原版的golang配置文件(如,将上文的golang.bak
名字改回去),更新后再重复本教程步骤。
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2023/10/07/OpenWRT/OpenWRT_Replace_Golang/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!