[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法

本来笔者想买一个Armbian的斐讯N1盒子来运行一些docker容器,但是突然想到有一部闲置的红米2,于是乎便寻找方法看看能否将其刷入Linux解锁更多玩法。

红米2增强版拥有2G RAM和 16G ROM 和晓龙410处理器,作为手机早已过时,但是作为一台ARM服务器则绰绰有余。
[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第1张图片

刷机

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
在电脑命令行输入如下指令

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指令如下:

fastboot flash boot lk2nd-msm8916.img
fastboot reboot

[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第2张图片
没问题的话,重启后手机会显示如下的画面:
lk2nd的主界面
[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第3张图片

2.3 刷入 postmarketOS

固件下载地址:https://images.postmarketos.org/bpo/v22.06/xiaomi-wt88047/

这里有三个ROM 随便选一个下载即可,反正最后也使用终端和手机进行交互,GUI不是很重要。

Phosh_mt88047.img
Phosh_mt88047_boot.img
[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第4张图片

[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第5张图片

三种UI如下图所示:
[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第6张图片

重启后手机显示lk2nd界面,重新连接到电脑的fastboot,在电脑的命令行中执行如下的fastboot指令刷入ROM

fastboot flash boot phosh-18-xiaomi-wt88047-boot.img
fastboot flash userdata phosh-18-xiaomi-wt88047.img
fastboot erase system
fastboot reboot

[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第7张图片
j8sYkV.png

PS1:lk2nd 0.10.0 版本之后,不需要再刷入传统的*-boot.img文件,所以可以考虑跳过刷入该文件。

刷机完成后,重启手机,进入系统!

安装软件

1.解锁手机进入图形界面

postmarketOS提供的默认用户名:user 密码 147147 PIN 147147,使用该密码解锁手机即可进入系统

2.开启SSH Server

postmarketOS 默认不开启sshd,因此我们需要手动开启,在手机上的终端机软件中输入如下的指令:

sudo service sshd start #开启SSH Server 服务
sudo rc-update add sshd # 开机启动SSHD 服务

再说一遍sudo密码 147147

开启后手机连接到局域网就可以ssh连接到终端了

ssh user@IP地址

有需要的话可以编辑 sshd_config 文件,postmarketOS 没有预置nano vim等编辑器,所以使用vi编辑

sudo vi /etc/ssh/sshd_config

[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第8张图片

3. 包管理器apk

postmarketOS使用apk作为包管理

换源前首先看一下PostmarketOS的Alpine Linux版本(cat /etc/alpine-release),目前的PostmarkOS的内核版本应该是3.16:
[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第9张图片

然后编辑源配置文件

sudo vi /etc/apk/repositories

增加源地址

http://mirrors.aliyun.com/alpine/v3.16/main
http://mirrors.aliyun.com/alpine/v3.16/community

替换源地址后,更新一下

sudo apk update
sudo apk upgrade -a

4.安装Bash并设为默认终端

PostmarkOS默认的Bash为ash,为了更好的使用选择更熟悉的Bash作为默认终端

sudo apk add bash #安装bash
sudo vi /etc/passwd #修改默认配置

以root和user账户为例修改其默认终端

root:x:0:0:root:/root:/bin/ash
↓
root:x:0:0:root:/root:/bin/bash

user:x:10000:10000:Linux User,,,:/home/user:/bin/ash
↓
user:x:10000:10000:Linux User,,,:/home/user:/bin/bash

还有一种方式就是直接用chsh指令
例如:

chsh -s /bin/bash

5. 安装Nano作为编辑器

相比于vi,nano更适合新手使用,用下面的指令可以一键安装

sudo apk add nano 

便可以使用nano来编辑一些系统文件

6.安装docker

给旧手机安装linux,主要目的就是利用docker来运行各种容器。

sudo apk add docker #安装docker
sudo service docker start #启动docker服务
sudo rc-update add docker default #设置docker为自启动

根据网上的教程, postmarketOS中的docker可能会因为防火墙的原因导致docker的端口无法通过外部访问。

正确解决这个问题的手段是通过配置防火墙规则允许docker通信,但是省事的方法是鉴于手机服务器的用途,直接停用防火墙。

sudo service nftables stop
sudo rc-update del nftables

然后安装可视化图形工具Portainer看看是否能正常使用,同时作为日常管理容器的工具,

 docker pull portainer/portainer 
 docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

初始化之后就可以正常使用了
[Linux] 红米2 安装 postmarketOS(基于 Alpine Linux)及后续玩法_第10张图片

开启定时计划运行服务 cron

sudo rc-update add crond default

可选优化

1. 停用GUI(可选)

停用GUI可以节省大量内存,用更多的资源来运行我们的容器等服务。

根据官网wiki上的介绍https://wiki.postmarketos.org/wiki/Phosh#Starting_Phosh
对于我们之前安装的 phosh 镜像,其GNOME图形界面的维持是靠tinydm这个图形界面管理器实现的,因此停用GUI只需要禁用该服务便能停用GUI。

sudo rc-update del tinydm

然后reboot重启即可,大约可以节约出500MB以上的内存空间

这样开机就不会进入图形界面,卡在loading界面,过一段时间后便自动息屏。

需要恢复只需要运行

sudo rc-update add tinydm default

2. 停用modemmanager(可选)

ModemManager用来控制移动宽带(2G/3G/4G)设备和连接,提供统一的高层API接口,类似于NetworkManager进行网络连接的移动宽带设备/连接,说白了就是可以用来管理手机卡,如果不需要插入上网卡做热点机的话,可以考虑将其停用。

sudo rc-update del modemmanager

需要恢复只需要运行下面的指令:

sudo rc-update add modemmanager default

你可能感兴趣的:(linux,运维,服务器)