本来笔者想买一个Armbian的斐讯N1盒子来运行一些docker容器,但是突然想到有一部闲置的红米2,于是乎便寻找方法看看能否将其刷入Linux解锁更多玩法。
红米2增强版拥有2G RAM和 16G ROM 和晓龙410处理器,作为手机早已过时,但是作为一台ARM服务器则绰绰有余。
刷机
1.进入fastboot模式
关机情况下,电源键+音量减进入fastboot模式,因为红米2 发行的年代尚且不流行BL锁,所以无需考虑解锁问题。
2. 刷入postmarketOS系统
2.1 检查是否刷入了最新固件
- 使用了安卓版本为5以上的MIUI可以跳过此步骤
- 使用了安卓版本为4的的MIUI请更新固件,(不过更简单的方式是线刷一个安卓5的MIUI)下载红米 2/2A (wt86047) 稳定版刷机包 MIUI9
固件下载地址:https://www.androidfilehost.com/?w=files&flid=303434
红米2有增强&标配区分,小米给红米2挺多个设备名
标配(官方4.4) 2014811、2014812…(太多不列出来了,一般201481x对于刷第三方来说没特殊区分)
增强(官方5.1) wt86047(移动)、wt88047(联通&电信)
对于标准版 下载连接中对应的wt88047的文件,
增强版下载wt86047
不知道的话,打开设置,导航到“手机信息”,并记下“型号”标题下方的型号
- 2014811, 2014812, 2014817 2014818, 2014819, 2014821 :wt88047.
- 2014813, 2014112 : wt86047.
下载固件文件后,在miui里通过adb sideload 安装
在设备中,选择“高级”,“ADB Sideload”,然后滑动开始sideload
在电脑命令行输入如下指令
1 | adb sideload firmware.zip |
2.2 安装lk2nd作为2nd bootloader
虽然小米已经给我们提供了一个默认的bootloader,但是还需要在原有基础上额外安装一个自定义的bootloader 来给运行linux环境提供更多硬件支持,因此需要安装lk2nd
Github项目地址:lk2nd,请在github的release页面里下载lk2nd-msm8916.img
文件(k2nd-msm8916.img)
建议安装最新版lk2nd,因为0.9版本只开放了单CPU,而0.11版之后才能开启全部四核心。
刷入lk2nd指令如下:
1 | fastboot flash boot lk2nd-msm8916.img |
2.3 刷入 postmarketOS
固件下载地址:https://images.postmarketos.org/bpo/v22.06/xiaomi-wt88047/
这里有三个ROM 随便选一个下载即可,反正最后也使用终端和手机进行交互,GUI不是很重要。
Phosh_mt88047.img
Phosh_mt88047_boot.img
重启后手机显示lk2nd界面,重新连接到电脑的fastboot,在电脑的命令行中执行如下的fastboot指令刷入ROM
1 | fastboot flash boot phosh-18-xiaomi-wt88047-boot.img |
PS1:lk2nd 0.10.0 版本之后,不需要再刷入传统的*-boot.img
文件,所以可以考虑跳过刷入该文件。
刷机完成后,重启手机,进入系统!
安装软件
1.解锁手机进入图形界面
postmarketOS提供的默认用户名:user
密码 147147
PIN 147147
,使用该密码解锁手机即可进入系统
2.开启SSH Server
postmarketOS 默认不开启sshd,因此我们需要手动开启,在手机上的终端机软件中输入如下的指令:
1 | sudo service sshd start #开启SSH Server 服务 |
再说一遍sudo密码 147147
开启后手机连接到局域网就可以ssh连接到终端了
1 | ssh user@IP地址 |
有需要的话可以编辑 sshd_config 文件,postmarketOS 没有预置nano vim等编辑器,所以使用vi编辑
1 | sudo vi /etc/ssh/sshd_config |
3. 包管理器apk
postmarketOS使用apk作为包管理
换源前首先看一下PostmarketOS的Alpine Linux版本(cat /etc/alpine-release
),目前的PostmarkOS的内核版本应该是3.16:
然后编辑源配置文件
1 | sudo vi /etc/apk/repositories |
增加源地址
1 | http://mirrors.aliyun.com/alpine/v3.16/main |
替换源地址后,更新一下
1 | sudo apk update |
4.安装Bash并设为默认终端
PostmarkOS默认的Bash为ash,为了更好的使用选择更熟悉的Bash作为默认终端
1 | sudo apk add bash #安装bash |
以root和user账户为例修改其默认终端
1 | root:x:0:0:root:/root:/bin/ash |
还有一种方式就是直接用chsh
指令
例如:
1 | chsh -s /bin/bash |
5. 安装Nano作为编辑器
相比于vi,nano更适合新手使用,用下面的指令可以一键安装
1 | sudo apk add nano |
便可以使用nano来编辑一些系统文件
6.安装docker
给旧手机安装linux,主要目的就是利用docker来运行各种容器。
1 | sudo apk add docker #安装docker |
根据网上的教程, postmarketOS中的docker可能会因为防火墙的原因导致docker的端口无法通过外部访问。
正确解决这个问题的手段是通过配置防火墙规则允许docker通信,但是省事的方法是鉴于手机服务器的用途,直接停用防火墙。
1 | sudo service nftables stop |
然后安装可视化图形工具Portainer看看是否能正常使用,同时作为日常管理容器的工具,
1 | docker pull portainer/portainer |
开启定时计划运行服务 cron
1 | sudo rc-update add crond default |
可选优化
1. 停用GUI(可选)
停用GUI可以节省大量内存,用更多的资源来运行我们的容器等服务。
根据官网wiki上的介绍https://wiki.postmarketos.org/wiki/Phosh#Starting_Phosh
对于我们之前安装的 phosh 镜像,其GNOME图形界面的维持是靠tinydm这个图形界面管理器实现的,因此停用GUI只需要禁用该服务便能停用GUI。
1 | sudo rc-update del tinydm |
然后reboot
重启即可,大约可以节约出500MB以上的内存空间
这样开机就不会进入图形界面,卡在loading界面,过一段时间后便自动息屏。
需要恢复只需要运行
1 | sudo rc-update add tinydm default |
2. 停用modemmanager(可选)
ModemManager用来控制移动宽带(2G/3G/4G)设备和连接,提供统一的高层API接口,类似于NetworkManager进行网络连接的移动宽带设备/连接,说白了就是可以用来管理手机卡,如果不需要插入上网卡做热点机的话,可以考虑将其停用。
1
sudo rc-update del modemmanager
需要恢复只需要运行下面的指令:
1 | sudo rc-update add modemmanager default |
转载无需注明来源,放弃所有权利