红米2刷PostmarketOS打造ARM服务器(完全篇)

2022-04-12 21:04:30 42点赞 228收藏 27评论

之前我关于PostmarketOS的内容是分几次完成的,其中有不少的错误和疏漏之处。为了便于感兴趣的朋友查找资料,我做了一次整理,删除了一些试错的内容。同时让内容变得更加完整,希望对于大家找资料有一定帮助。

手机安装原生Linux系统,目前最成熟的两个方案:1.Ubuntu Touch;2.PostmarketOS。

Ubuntu Touch我体验之后觉得系统做的稀烂,没有任何兴趣深入。

PostmarketOS基于Alpine Linux,支持的旧手机型号比较多。作为原生的完整Linux系统,可玩性很不错。国内最佳的刷机设备是红米2:功能支持全、没有BootLoader锁刷机简单、价格便宜刷坏不心疼。(要刷PostmarketOS,红米2必须是高通骁龙410的那款才兼容,1G+8G或2G+16G均可。不要小看这配置,论性能吊打现在溢价离谱的树莓派3B+没有任何问题)。

1.刷机

原生的安卓fastboot无法引导到Linux系统,所以刷机前手机需要刷一个ln2nd的“伪”fastboot,安装文件可以去GitHub上找。下载镜像后手机连接电脑进入fastboot模式,刷入ln2nd(关机后:音量减 + 关机键)

#fastboot flash:raw boot ln2nd.img

如果你买的是1+8G的红米,默认系统是安卓4.4,可能刷不进ln2nd。需要刷一次高配版的ROM(刷机后可以正常开机,安卓版本升级到了5.1)。

#安装必备软件
sudo apt install python3 git fastboot python3-pip
#安装pmbootstrap
pip3 install --user pmbootstrap

接下来是最重要的过程:配置pmbootstrap(建议看一下官方的文档,我这里做一个简单的配置过程介绍):

pmbootstrap init
#安装文件保存路径,默认即可
Work path
#postmarketOS发行版,默认是滚动更新版,可以选稳定版
Choose the postmarketOS release channel.
#选择手机品牌,全英文,可以在官方wiki查询红米属于xiaomi
Choose your target device vendor
#选择手机型号,官方wiki查询,红米2是wt88047
Available codenames
#是否安装驱动,默认选是
Enable this package?
#设置用户名
Username
#选择操作界面,如果是纯命令行选fbkeyboard,其余可以gnome、sxmo等
Available user interfaces
#后续的配置选择默认即可

配置完毕,输入下面的命令开始下载和打包:

pmbootstrap install

整个下载打包配置过程大概会用到1个小时左右。打包完成后手机进入ln2nd的伪fastboot模式开始准备安装(开机震动后按音量减)。

如果不通过这种方式打包,也可以直接在官网下载镜像刷机。

#查看是否正常连接
fastboot devices
#开始刷机
pmbootstrap flasher flash_rootfs
pmbootstrap flasher boot
#刷机完成
fastboot reboot

别看PostmarketOS界面简单,但比Ubuntu Touch好玩多了,SSH、Docker都可以跑起来,只是图形化界面不太流畅,但是玩Linux系统的人都知道SSH才最重要。

2.跑分

Alpine Linux下没想到Unixbench可以直接用apk包管理安装,跑分很简单:

sudo apk add unixbench
ubench whets dhry

我做了个简单的跑分,单核251(树莓派4B单核跑分也就290左右)。

红米2刷PostmarketOS打造ARM服务器(完全篇)


发现仅有单核成绩,后面查资料发现因为刷的lk2nd版本是0.9仅开启了单CPU,而刷了0.11版后的lk2nd后可以开启全核后。完整的跑分Unixbench单核233、多核926:

红米2刷PostmarketOS打造ARM服务器(完全篇)

PostmarketOS可以轻松地开启SSH,另外PostmarketOS自带USB网卡驱动,用数据线连接电脑可以直接共享电脑的网络(不需要路由器也能SSH你说放不方便),通过172.16.42.1就可以访问PostmarketOS。:

sudo rc-service sshd start
sudo rc-update add sshd

这样下来手机真的可以作为一台完全的ARM小服务器。接下来想装个zerotier组虚拟局域网,没想到官方源里直接有打包,所以说Alpine Linux真强:

#安装zerotier
apk add zerotier
#开启虚拟网卡
modprobe tun
#运行zerotier
zerotierzerotier-one -d
zerotier-cli join
#查看运行状态
zerotier-cli listnetworks
#如果运行出错,结束进程重新运行
killall -9 zerotier-one
zerotierzerotier-one -d
#让zerotier开机自启动
sudo rc-update add zerotier

部署了zerotier,这个ARM服务器就成了我诸多设备的一个node了。家庭服务器的玩法都可以如法炮制:

3.修改ash为bash

PostmarkOS默认为ash.ash我不太熟,所以改为bash顺手一点(主要是为了配置bashrc)。PostmarkOS默认已经安装了bash,如果没有的话先安装一下:

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

以root账户为例修改其默认sh

root:x:0:0:root:/root:/bin/ash
#把上面这行改为下面的
root:x:0:0:root:/root:/bin/bash

新建一个.bashrc文件用于配置别名,后面的例子会介绍.bashrc的用法

sudo vim .bashrc

4.局域网开机设备

Alpine Linux没有wakeonlan安装包,我下了个c语言的wakeonlan源码编译:

#解压后编译
gcc wakeonlan.c -o wol
#把编译好的文件复制到bin文件夹方便调用
cp wol /bin/wol

有wol mac地址的命令太长不好记,所以要设置别名方便远程操作,之前我已经介绍如何切换为bash且生成bashrc文件,接下来编辑它:

sudo vim /home/.bashrc
#由于我有三台主机所以添加3个别名
alias wolxzj='wol mac1'
alias wolzj='wol mac2'
alias wolbjb='wol mac3'

由于我已经安装了zerotier,所以我可以远程SSH手机,通过手机唤醒局域网内的其它设备:输入wolxzj就可以唤醒我的小主机,wolzj就可以唤醒我的主机,wolbjb就能唤醒笔记本,然后再可以分别操作这些设备。是不是很省电。

5.安装Docker

PostmarketOS可以安装docker:

sudo apk add docker
sudo service docker start
sudo rc-update add docker default

安装docker后会遇到一个问题,防火墙让docker的端口无法通过远程访问。虽然官方文档里介绍了可以通过防火墙规则允许docker通信,但我按照官方指引配置/etc/nftables.d后无效:

#!/usr/sbin/nft -f
table inet filter {
chain input {
iifname "docker*" accept comment "Allow incoming network traffic from Docker"
}

chain forward {
iifname "docker*" accept comment "Allow outgoing network traffic from Docker"
ct state {established, related} counter accept comment "accept established connections"
}
}

于是我直接关了防火墙(毕竟是个人用的也没有公网,所以关闭防火墙影响不大):

sudo service nftables stop
sudo rc-update del nftables

这下docker可以正常访问了。

由于手机CPU是ARM指令集,所以下载镜像时也要搜索ARM镜像。我安装了一个speedtest进行测速,在USB连接模式下红米2测速可以达到100兆,而在wifi连接下,测速则只有20兆:

红米2刷PostmarketOS打造ARM服务器(完全篇)

红米2的内存太小,带不起多个Docker。而且8G空间装不了几个镜像,可以考虑通过OTG拓展扩容。

6.OTG扩容

有朋友问OTG怎么解决充电问题?我还真找到一个完美解决方案。关键词“充电OTG线”,虽然介绍说仅支持平板电脑不支持安卓手机。但是事实上红米2刷PostmarketOS后可正常充电+OTG,3USB口+1个充电口的OTG线也就14元。将充电线插入OTG充电口,档位调到charge。然后插上500G硬盘和一个64GU盘,连接红米手机。

红米2刷PostmarketOS打造ARM服务器(完全篇)

红米2刷PostmarketOS打造ARM服务器(完全篇)

首先确认手机正在显示示充电,然后SSH连接红米2。由于postmarketOS不会自动挂载硬盘,所以一开始使用df -h命令看不到磁盘,需要用到lsblk命令:

红米2刷PostmarketOS打造ARM服务器(完全篇)

#查看所有硬盘用lsblk或fdisk -l
lsblk
#查看硬盘UUID
sudo blkid

可以看到500G的硬盘和64G的U盘正常识别,接下来需要挂载才能使用。记下硬盘名字,然后根据名字查看对应的UUID。创建一个目录用于挂载硬盘,然后把挂载命令写入/etc/fstab:

#创建挂载文件夹
sudo mkdir /media/twindows
#设置自动挂载
sudo vim /etc/fstab
UUID="00BC-614E" /home/sd ext4 defaults 0 0
#让挂载命令生效
sudo mount -a

注意分区格式一定要正确,如果你的硬盘是ntfs等Windows格式需要安装软件ntfs-3g。如果安装了ntfs-3g挂载命令如下:

UUID="00BC-614E" /home/sd ntfs-3g rw 0 0

挂载硬盘之后可以开启Samba共享也可以安装aria2做下载机,是不是有点像NAS了。不过红米2WIFI速度太慢所以实际表现一般。

7.aria2c下载机

有了扩容方案,这台红米2还可以作为下载机了,毕竟低功耗挂机神器。搭建下载机自然少不了aria2:

sudo apk add aria2

aria2的配置,我这个是简版:

# 保存目录
dir=/home/downloads
# 断点续传
continue=true
# 任务目录设置
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
# 定时保存任务
save-session-interval=60

# 启用RPC
enable-rpc=true
# 允许所有来源
rpc-allow-origin-all=true
# 允许外部访问
rpc-listen-all=true
# RPC端口,默认6800如果被占用可修改
# rpc-listen-port=6800
# 设置的RPC授权令牌
rpc-secret=password

带配置的启动aria2命令有点长,所以还是通过.bashrc设置别名解决:

sudo vim /home/.bashrc
alias runaria2='aria2c --conf-path=/etc/aria2/aria2.conf -D'

8.Samba共享

既然做下载机了肯定要开Samba共享:

sudo apk add samba
sudo rc-update add samba
sudo rc-service samba start

设置一下samba登陆用户和密码

sudo smbpasswd -a username

然后编辑samba的配置文件

sudo vim /etc/samba/smb.conf
#在share里增加想共享的路径
[share]
comment = share
path = /home
public = yes
writable = yes
printable = no
browsable = yes
valid user = username

9.安装Nginx

虽然红米2性能很弱,但这是在图形化界面的使用感受。如果是作为小服务器,其性能还是挺强的,至少搭建个人网站没问题。如果你有域名和云服务器,通过nginx部署,借用云服务上的nginx搭建反向代理功能,就可以让别人在公网访问你的网站了:

sudo apk add nginx
sudo rc-update nginx
sudo rc-service nginx start

看了这么些是不是觉得PostmarkOS麻雀虽小五脏俱全,玩法确实很多。但不得不说手机扩展性太弱是一个非常大的瓶颈,制约了更大的可能性。但也让几十块的二手手机发挥了最大的价值。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

249元起

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

159元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

308元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

177元起

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

279元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

185元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

676.4元起

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

249元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

国行版 Switch体感游戏套装 《健身环大冒险》

国行版 Switch体感游戏套装 《健身环大冒险》

439元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

Microsoft 微软 办公软件 优惠商品

Microsoft 微软 办公软件 优惠商品

239元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

299元起

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

239元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

198元起
27评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
228
扫一下,分享更方便,购买更轻松