文章目录
0. 前言
由于新冠病毒,在家闲得慌,又想起自己想要有个服务器。正好手上有两把旧手机,一把 Mi 3,一把 Mi 4,正好可以让我来试试能不能改造成服务器。
Mi 3 和 Mi 4 的驱动是差不多的,所以找到的 Mi3 的刷机包可以给 Mi4 用,反之也可以
刚好想起来,之前有看过把手机刷成 Ubuntu 系统的视频,我就打算去找找。很巧的是,刚好被我找到了。
PS:联动、电信版可以互刷,移动版不行,移动版的用户,看到这里就可以退出去了
1. 刷入 Twrp Recovery
下载 Twrp Recovery
我这里找到了一个一键为 Mi 3/4(电信/联通) 刷入 Twrp Recovery 的工具。
百毒盘链接: https://pan.baidu.com/s/1qM9wL1EgGxGYLQuEtZbuFw 提取码: tzpt
0.1.4 版本 Google driver 链接:https://drive.google.com/file/d/1iv5q2q6Ob4PJqp5yEi_RCuC3-yd4nQEK/edit
刷入 Twrp Recovery
关闭手机,同时按住 音量下键 和 电源键,直至出现 Fastboot 的界面,连接电脑,打开工具,跟着提示刷入即可
2. 卡刷系统包
下载 Ubuntu Touch 的卡刷包
链接: https://pan.baidu.com/s/1hV1SPuZ-E69k_i55DGJBRw 提取码: sghy
建议下载 Alpha-0.1.3 的版本,因为 0.1.4 的版本,我不知道密码(笑哭)
可以下载 Alpha-0.1.4 的版本,0.1.3 的版本有时候会莫名其妙自动重启,默认密码:0000
刷入 Ubuntu Touch
先三清手机,注意这里要把 system、data 分区都清除,可以用 U盘拷贝卡刷包,手机插上 U盘来卡刷。
刷机完成后,Twrp 可能会提示「没有安装系统,确定重启?」,无需理会,直接重启
3. 基本设置
开机后,根据提示慢慢来,WiFi 我推荐链接 5Ghz 的,带宽高、延迟低。记得设置密码。
完成设置后,系统会引导你如何使用 Ubuntu Touch,记得学习,不然下面的三个按键是用不了的
PS:以下操作建议使用蓝牙鼠标、键盘
先输入这个命令,开启系统可写模式
mount -o remount,rw /
修改软件源
默认的软件源的速度十分感人,我这里将软件源修改为阿里源
打开手机 终端,输入你设置的密码,之后再输入以下命令
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
# 要让备份成为一种好习惯
sudo nano /etc/apt/sources.list
# 为什么不用 vim,因为系统没有。。。
然后复制以下内容,粘贴即可
# 阿里源
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial main restricted
deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial main restricted
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main restricted
deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main restricted
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial universe
deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial universe
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe
deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-security main restricted
deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-security main restricted
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe
deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe
键入“Ctrl+o”,回车保存
安装 ssh
Ubuntu Touch 的系统好像自带 ssh,但是并没有开启,我们这里手动开启一下
sudo setprop persist.service.ssh true
# 开启 ssh 自启动
mkdir -pm700 ~/.ssh
# 建立存放公钥的文件夹
然后使用 ip addr
查看一下手机的 ip 地址,也可以进入路由器界面查看。我的 Mi4 的内网 ip 地址是192.168.3.26
在输入以下命令
nc -l 1234 > ~/.ssh/authorized_keys
这时候我们回到计算机上面,建议使用 Linux 或者 MacOS 系统
打开终端,输入
ssh-keygen
一路回车,直到输入私钥密码的那里,输入自己想要设置的密码
然后输入
nc <你手机的局域网IP地址> 1234 < ~/.ssh/id_rsa.pub
比如我的命令就是这样的
nc 192.168.3.26 1234 < ~/.ssh/id_rsa.pub
回到手机,键入
sudo nano /etc/ssh/sshd_config
修改一下一些设置,去掉这一项前的 #
# AuthorizedKeysFile %h/.ssh/authorized_keys
接下来的设置是可选的,可以一定程度上提升 ssh 的连接速度
将这几项
# GSSAPIAuthentication no
# GSSAPICleanupCredentials yes
修改为
GSSAPIAuthentication no
GSSAPICleanupCredentials no
然后在配置文件的底部添加
UseDNS no
键入“Ctrl+o”,按照提示回车保存
设置 apt
不知什么原因,使用 apt-get update
会提示 系统上的沙箱用户'_apt'不存在
,历经千辛万苦地 Google,终于找到了解决办法,输入以下命令即可
sudo su
adduser --force-badname --system --home /nonexistent --no-create-home --quiet _apt || true
设置 DNS(可选)
自带的 DNS 确实有点。。。所以我打算换一下 DNS,又因为 Ubuntu16.04 之后的系统不能直接修改 DNS,要用以下命令
sudo vim /etc/resolvconf/resolv.conf.d/base
添加以下内容
nameserver 119.29.29.29
nameserver 114.114.114.114
nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 8.8.8.8
nameserver 8.8.4.4
增加系统分区大小
默认的系统分区大小只有 2GB,完全不够我们使用,这里我们使用这个命令来增加分区大小
sudo su
cd /home
wget https://github.com/KDE/plasma-phone-dev-setup/raw/cce4f0dfe403b871a204bf8277501d15da53cec0/usr/bin/resize-root-partition -O resize.sh
chmod +x resize.sh
./resize.sh
等待运行完毕,分区扩容就完成了
完成
Mi3/4 的 Ubuntu Touch 系统安装到这里差不多就结束了。我们可以通过 ssh 连接,在上面运行一些程序,比如:Minecraft服务器、网站……但是由于系统内核版本过低,运行不了 Docker。
至于你们要怎么用,那就由你们决定啦
参考资料
手机变PC的第二步:给Ubuntu Touch安装桌面软件:https://www.ithome.com/html/android/346068.htm
什么是我系统上的沙箱用户’_apt’:http://www.kbase101.com/question/4888.html
Set DNS settings Ubuntu Touch:https://askubuntu.com/questions/603465/set-dns-settings-ubuntu-touch
How to get a larger root partition on Touch:https://askubuntu.com/questions/514913/how-to-get-a-larger-root-partition-on-touch
Github – resize-root-partition脚本:https://github.com/KDE/plasma-phone-dev-setup/blob/cce4f0dfe403b871a204bf8277501d15da53cec0/usr/bin/resize-root-partition
文章有(2)条网友点评
测试
帮你找找bug
while(true);
console.log(1);