近日发现小米AC2100性能实在太过弱鸡,不能很好满足搞事情的需求,遂购入FriendlyPi R2S一台作软路由。但苦于校园网宽带需要使用Dr.com客户端,而之前使用的dogcom第三方客户端只能在MIPS架构运行,不能兼容ARM64的软路由处理器,在这个问题解决前无法作为主路由使用,网上也没找到现成的包。但好在该项目是开源的,我们便可以自己编译一个。
先放一个编译完成的dogcom客户端链接,大小735KB:dogcom – cyp0633’s Drive。如果你只是想找客户端,OK,到这里就可以退出了。
原项目地址如下:
显然大部分人的电脑处理器是AMD64架构,直接用AMD64的GCC当然不能正常编译。对于跨架构的编译,网络上很大一部分的解决方案都是使用交叉编译,但这个方法似乎挺麻烦的。转念一想,既然大部分人都有Android手机,而这手机又是ARM64架构的,如果用它编译出Linux的二进制文件,不就简单了?
显然早就有不少人打了Android手机的算盘,做出了可以在其上运行Linux系统的方案。解决方案大致有Termux和Linux Deploy等几种,这里使用Linux Deploy,因其SSH比较方便,但需要Root——我刚好有。
大致的步骤可以参阅https://my.oschina.net/zss1993/blog/1790223,但就在我的Android 11系统的小米10 Pro上的情况来说,需要说明一下:
- 不需要Busybox,可以直接使用。
- 文章作者使用的是老版本,如果你使用新版本遇到不同的部分,可以酌情选择或者保持默认。
- ARM64的手机当然是无法安装x86或AMD64镜像的,反过来也不行,除非你搞个QEMU,当然这也可以作为一个替代方案。
- 个人认为没必要设置挂载,在PC上使用WinSCP更舒服。
安装好Ubuntu后,使用电脑SSH连接同局域网中手机IP,即可控制容器中的Linux系统。我选择了Ubuntu 18.04 LTS Bionic Beaver,理论上Debian系也都差不多。
输入以下命令:
sudo apt install build-essential # 安装必备依赖库和编译器
git clone https://github.com/mchome/dogcom # 下载代码
cd dogcom # 进入文件夹
make static=y # 编译并使用静态库,下面讲
使用静态库可以避免使用不同编译器时找不到动态链接库的情况,但文件大小会从80KB增长至700多KB。
然后使用WinSCP把那个拷贝到R2S的某个目录,再把你的配置文件拷进去,执行就可以了。
关于如何生成配置文件,可以参考https://www.right.com.cn/forum/thread-215978-1-1.html。
效果大概是这样子。
等有空了再折腾下ipk的搞法。
参考文献
qemu /lib/ld-linux-aarch64.so.1: No such file or directory_深空深蓝的博客-CSDN博客_ld-linux-aarch64.so.1
makefile 强制使用静态链接库_xiexievv的专栏-CSDN博客_makefile static
【Linux Deploy】一、Linux Deploy安装配置使用教程 – MaxBill个人空间 – OSCHINA – 中文开源技术交流社区