小米路由器2(R2D) 编译shadowsocks-libev 最新版
文章目录
最近新入了一个小米路由器2,本着折腾一下更健康的原则,就想弄一个shadowsocks自动X墙。本来小米路由器号称基于openwrt,应该是很容易自己装插件上去的,结果弄了以后才知道。。。太幼稚!
小米路由器2目前的固件内核居然还是2.6,openwrt的版本:12.09,几年前的版本,也就是从一代开始就没有更新过,所以目前还没有2代上能用的openwrt固件。
不能自己刷新版的固件,小米本身这个固件又是深度定制过的,显然不支持标准的openwrt插件。。。顿时感觉当下很忧郁啊。。。
结果就只剩一条路,自己编译!好在小米号称是支持开放的,发布了工具链,不用拿第三方的折腾了。关于小米路由器相关的工具链,这里有一个列表:小米路由器相关工具链。
一不小心写了这么多,闲话少说,开始很忧郁的折腾之路,中间过程就不细说了,说起来都是泪。。。既然是给有同样目的的人参考,我就只列一下那条通往成功的路吧。(说起来也是参考了不少网文,不过由于年代久远,已经不怎么适用了)
编译步骤
准备工作:
- 小米路由器工具链,目前有32,和64两个版本,我只说64位的版本,可以从这里下载SDK: http://bigota.miwifi.com/xiaoqiang/sdk/tools/package/sdk_package.zip 这个是sdk的包,解压以后sdk_package/toolchain目录就是我们要的工具链。如果不清楚下载到的工具链是什么版本的,可以file 一下bin目录中的这个文件: arm-xiaomi-linux-uclibcgnueabi-gcc:
|
|
- linux系统,小米路由器官方只发布了linux的工具链,一般是ubuntu 64位,版本不限,我在16.04上编译成功了。
- 一些常用的工具这里就不一一列举了,比如git等,如果系统里没有,请自行安装。
环境变量
接下来是相关配置,我的整个过程在/home/nana/miwifi这个目录中执行,
- 在PATH中导入工具链目录,本例中工具链的目录: /home/nana/miwifi/sdk_package/toolchain,在shell中执行以下命令
|
|
安装必须的package
|
|
编译依赖包
目前最新版的shadowsocks-libev需要openssl,zlib,pcre库,所以要先编译这几个库
4.1 编译zlib
|
|
4.2 编译openssl 目前高于1.0.1t的版本编译有问题,所以只用1.0.1t版的就行了。
|
|
4.3 编译pcre
|
|
编译shadowsock-libev
shadowsocks的项目地址:https://github.com/shadowsocks/shadowsocks-libev.git。 这里的编译配置里,需要特别说明一下最后一个–disable-ssp,首先啥是ssp呢,英文是stack smash protector,中文直译是堆栈溢出保护,是gcc编译器针对堆栈溢出攻击的一种保护技术,在4.1版就已经实现了。小米工具链这个gcc是4.8,按理说应该是支持的,可是并没有,-v查看时,可以看到构建时被禁用了,对就是–disable-ssp这个标志。而shadowsocks最近的版本中加入了ssp的支持,SO老子就被这玩意坑了好久。。。好在,shadowsocks的ssp支持是可选的,可以通过–disable-ssp禁用,哎呀妈呀,这下可以编译了,舒坦!!!
|
|
然后,就可以愉快的等待编译结束,编译成功以后,就可以在之前指定的miwifi/ss/bin目录里找到我们要的ss-local,ss-redir,ss-tunnel等程序了。
同样的方法可以编译小米路由器2用的chinadns,redsock2等程序,这里不一一列举了。
至于这些东东怎么用,就是另外一个故事了,下次再说。
文章作者 Imhun
上次更新 2022-07-15 (38a6c3e)