找回密码
 新注册用户
搜索
查看: 213|回复: 2

[原创] 一个极业余的非IT人士迂回的在一台十年前的手机上安装BOINC Linux,并实现Windows远程

[复制链接]
发表于 2024-3-2 19:01:02 | 显示全部楼层 |阅读模式
(这其实是去年写的。当时被要求发在论坛里,但一直忘记发,现在补发。根据接近一年的测试,在手机上运行BOINC的linux客户端,要比android客户端效率高得多。方法也不只Linux Deploy一种。抛砖引玉。)

大家都在琢磨着怎么跑更高分数,我跑BOINC初衷是废物利用,物尽其用。否则东西没坏,扔掉又可惜,卖掉又有数据泄露风险。其他能安装BOINC的手机都安装上了,但手上有一部手机太老(三星I699),Android版本太低,难以安装现在的BOINC。之前已经研究几个月,找过两三个非官方版的安卓客户端,运行均以失败告终。在Android 2.3中没法直接跑安卓BOINC的情况下,我仍然不死心,发现BOINC官方平台上说明的Linux版本硬件要求很低,遂试图在这手机上安装Linux,再安装BOINC的Linux版本。这个过程很迂回,研究了大量各类技术资料,最终攻克一个个难关。


1、首先研究哪些方式能在手机上运行Linux,发现起码有刷机和chroot运行两种方式。刷机没有对应的ROM,于是检索各种软件尝试chroot方式,最终发现Linux Deploy较为成熟,最近仍然在更新。由于Android实际上运行在Linux基础上,因此性能和原生系统差异不大(经网友测试)。麻烦的是,系统需要ROOT。

2、ROOT是个很麻烦的过程。首先试了七八种一键ROOT APP,始终没法成功。最终只能刷机,找到一个奇兔刷机软件直接刷ROOT进去。

3、然后安装Linux Deploy和Busybox(提供基本的Linux命令)。麻烦主要在于两个软件现在的版本都很难装到Android 2.3上,要去找老版本反复试验。期间各种提示错误,寻找Github上的Issue问答,很多问题都是无人回应或者回答含糊不清。由于都差不多是十年前的版本,所以逐个寻找,逐个试验,非常麻烦。幸运的是最终找到了合适的版本。

期间在Linux Deploy启动终端,无法启动。查阅内外网,基本上都没有资料。只得自己吓琢磨。后发现是没有安装终端模拟软件,安装。

4、安装Debian 8。用Debian 8的原因是之前已经查阅过Linux Deploy支持的Linux各发行版,然后逐个查过各发行版各版本的系统要求,发现只有老版本的Debian硬件要求很低,能够正常运行。I699太老,内存(512M,实际能用大概不到400M)和磁盘空间都很小(不到1G)都很小,系统都要安装在十几年前的SD卡上,不太可能安装图形界面,只好硬着头皮用命令行系统。

除了事前查过的原因外,其他发行版,比如对Ubuntu、Centos、Arch Linux也反复试验过,但总是在报错,总是提示kernel太老(应是指Android的Linux的核心?)。因此,只有Debian 8较为合适。

5、Debian 8安装成功,但SSH无论如何在Linux Deploy环境下安装不上,无法正常运行。查资料发现是因为版本太旧,无法通过自动部署系统安装SSH。

又发现Linux Deploy留了一个Telnet的守护模式,用Telnet的守护模式从浏览器登陆终端。本来从Telnet的守护模式也可以开始运行BOINC,奈何该模式下浏览器不能复制粘贴文字。使用命令行模式下,不能复制粘贴,操作上实在太麻烦,遂下决心手动安装SSH。

安装好SSH后,尽管账号密码正确,SSH提示Permission Denied。然后又从网上找资料,发现是SSH的配置文件出错。根据相关资料,调用VIM或者NANO编辑相关文件。

用WIN10自带的SSH连接。终于实现在电脑上用命令行操作这台手机。

6、安装BOINC Client,命令行版本,努力学习boinccmd的命令行系统。添加项目后,发现BOINC提示cann't access internet。但直接在Debian命令行中ping,网络是通的,各种Debian的软件也能正常安装。

仔细排查,外网查阅资料,多数说是防火墙有问题,调整防火墙策略,甚至直接删除防火墙,解决不了。查了几天都没人知道原因。准备要放弃。但想了想,可能是对字符型操作不熟,可能是命令输错。如果远程能够连接至BOINC,那么通过图形化操作可能能绕开问题。

打开boinccmd下remote gui的相关规则,然后在电脑上顺利用Windows的Manager连上手机的client。但窗口界面仍然提示cann't access internet。

继续搜索资料,发现本论坛(“中国分布式计算论坛”)上差不多十年前讨论Windows版本出现过类似问题,说可能是DNS出问题。我琢磨着,如果是DNS出问题,那么把网址换成IP应该可以。遂ping项目地址,用IP地址替代网址。发现用BOINC Manager可以进入项目的欢迎界面和账号密码输入界面,虽然添加项目仍然是提示fail,但起码说明用IP地址绕开DNS能够连接项目,网络是通的,那么问题出在DNS上。

修改Debian的DNS,增加8.8.8.8和8.8.4.4。修改完成后网址似乎已经可以解析,但仍然提示cann't access internet。甚是奇怪。

仍然是找到论坛里那篇十年前的讨论,有人提到把某配置文件中“www.google.com””改为“www.baidu.com””问题就解决。我琢磨可能是BOINC一直在尝试用www.google.com来确认是否已经连接网络,修改可能行得通。动手修改,果然成功,网络问题全部解决。

7、逐个测试自己参加的项目,发现Einstein@home可以运行,顺利接到任务。其他项目过段时间再试试,主要是受制于CPU架构和内存太小,支持的项目不多。分数非常低,由于是单核单线程800MHZ的处理器,大概每天能跑80分。

但不管怎么样,至此,终于实现这一部很老的手机参与BOINC,真正实现物尽其用,而且还可以用Windows环境下的Manager实现远程图形化管理,我还是非常高兴。我手上还有一部更老的华为C8500S,会尝试把这一部也用上。

小时候是个电脑迷,但初高中后就再没尝试学习过计算机技术,对Linux系统完全没有任何经验,长期以来学的和工作的领域都和计算机无关。为了BOINC,这次真是在大脑中调集了二十多年前的电脑知识,利用业余时间,查阅各种资料,很多问题还是官网、民间都根本查不出解决方案的问题,无数次想放弃,从准备研究到正常运行,历经几个月,攻克一个个难关,收获不小,给我的电脑知识补上了一大块。

这是一个有意思的小故事,写出来分享给大家,也给自己留个备忘录。

Weixin Image_20240302184545(1)(1).png



评分

参与人数 2基本分 +66 收起 理由
panda7456 + 16 太帅了
昂宿星团人 + 50 太酷了哥们儿

查看全部评分

回复

使用道具 举报

发表于 2024-3-14 16:19:37 | 显示全部楼层
消灭零回复。另外,支撑折腾精神,挺好的。好了,已顶,开阅
回复

使用道具 举报

发表于 2024-3-23 21:23:43 | 显示全部楼层
支持楼主折腾。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-5-19 07:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表