GL-XE300路由器的Openwrt软件编译方法和一些坑
- By lifetyper
- Thu 18 November 2021
其实我一般没有单独编译openwrt软件ipk文件的需求,强迫症肯定是编译固件的时候直接都打包进去的。但是最近买了个GL-XE300路由器,这个其实就是GL-MiFi的升级版(虽然CPU依然挺弱的),官方的固件虽然是基于openwrt的,但openwrt官方并没有这个硬件的支持,而且gl-inet自己做了一个自动4G拨号的包还是挺好用的,所以就想在官方固件的基础上编译一些自己需要软件包就行了。
使用Openwrt的SDK就行了
不需要去使用gl-inet的官方sdk,用openwrt的19.07(因为官方固件目前是基于这个版本的)版的SDK就可以了,这里可以下载到适合我们路由器的版本,注意你自己用的路由器是什么CPU的,别瞎跟着这个链接下载。
Git的SSL验证失败问题
从某些openwrt的服务器git clone数据的时候会发现对方服务器的SSL证书失效了,导致clone失败,直接暂时关闭Git的SSL验证就好了,或者写入.bashrc也行:
export GIT_SSL_NO_VERIFY=1
WSL2的PATH变量问题
WSL2已经是我的linux主力发行版了,毕竟只需要打开一个terminal就可以使用几乎纯linux的环境还是挺方便的。但是WSL2默认会在PATH变量中包含Windows的PATH变量,这可能会导致一些同名工具的冲突,所以最好排除掉windows的PATH变量。 方法如下:
sudo vi /etc/wsl.conf
[interop]
appendWindowsPath = false
helloworld项目里的v2ray-core这些代码编译有问题
不是你的问题,好像是他们包组织里缺了些东西,毕竟本来就只是搜集一下,并不是代码主内容,换成下面这这个库里的v2ray-core就可以顺利编译了。
mkdir -p package/small
git clone https://github.com/kenzok8/small.git package/small
golang版本太低导致v2ray-core编译失败
要换成最新的版本,golang版本太低不行的:
先
./scripts/feeds update -a
再
pushd feeds/packages/lang
rm -fr golang && svn co https://github.com/openwrt/packages/trunk/lang/golang
popd
最后
./scripts/feeds install -a
同样的道理,你如果想更新别的软件到最新版本的代码,而不是使用SDK中的老版本,也可以用上面的方法,从trunk中更新代码替换掉。 不要忘记最后的feeds install,这步才是真正把update出来的代码copy到package目录下用于编译的。
复制一个upx工具
v2ray体积比较大,编译的最后一部就是upx压缩,所以我们要把host上的upx copy一份到sdk目录里给编译过程使用。 先通过which命令找出upx所在的位置。
cp /usr/bin/upx staging_dir/host/bin/
先编译一个luci-base
编译luci-app前先编译一个luci-base,后续的编译过程会用到这其中产生的一些工具,虽然你用不上,但不这样就基本上会失败。
make package/feeds/luci/luci-base/compile V=s
ipk文件在哪?
在bin/packages/mips_24kc/目录下。
能提供编译好的ipk文件吗?
滚