几年前使用的小米5手机不知道什么时候屏幕失灵了,触摸任何地方都没有反应,幸好下面三个实体按键还是好的,就拿来安装一下linux系统。
我到华强北去问了一下,修好屏幕至少需要100多块,这个手机卖旧手机也就是100块,懒得换屏幕盖板了,刚好前段时间购买u盘赠送了一个otg转接头,用鼠标插上转接头,然后再把转接头插上手机,瞬间屏幕上就出现了一个鼠标。android还可以连接蓝牙鼠标,但是连接蓝牙鼠标有个bug就是不能弹出键盘,在输入框里面有线鼠标能够正常弹出键盘。
首先解锁小米手机,要到小米网站下载解锁工具,网址http://www.miui.com/unlock/done.html
解锁后打算安装lineageos,但是在lineageos上安装了linuxdeploy以后,无论安装ubuntu还是centos镜像都没有成功,我就下载了Havoc的镜像,这个ROM极度精简,速度也很快,下载网站是https://forum.xda-developers.com/mi-5/development/rom-havocos-3-0-t3997199,也可以到网站https://download.lineageos.org/gemini上面可以下载lineageos每天build的镜像,由于安装linuxdeploy需要root手机,所以我选择了Magisk,到https://forum.xda-developers.com/apps/magisk网站下载最新的Magisk zip安装包。首先要安装TWRP,到网站https://wiki.lineageos.org/devices/gemini/install有详细介绍,步骤是同时按下电源键和向下的音量键,启动进入bootloader模式,然后通过fastboot将TWRP刷入,然后重启手机,重启的时候同时按下电源键和向上的音量键,进入recovery模式,然后将havoc zip镜像和Magisk zip包通过 adb push推送到手机里面,一般放到手机的/sdcard/Download目录下面。然后在手机端TWRP里面format data,然后安装Havoc zip包和Magisk zip包,安装完成以后就可以重新启动手机了。
重启之后进入系统,由于Havoc要到google服务器上验证网络,所以WiFi即使连接了网络,但是在中国大陆依然显示叉叉或者叹号,可以使用以下方法消除:
Android 7.0之前版本的系统,执行以下命令:
adb shell "settings put global captive_portal_server connect.rom.miui.com"
Android 7.0之后的版本需要执行下面的两条命令:
adb shell "settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204"
adb shell "settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204"
然后手机开启开发者模式,然后通过usb连上电脑,由于屏幕失灵,这个时候可以使用蓝牙鼠标,到https://github.com/meefik/linuxdeploy/releases网站下载最新的版本,很多网站都说要先安装BusyBox,我安装了几次BusyBox,都没有成功,具体错误就是Remounting /system to rw . . . fail,在BusyBox的github issue里面有人遇到同样问题,https://github.com/meefik/busybox/issues/78,作者说要修改一个脚本,我没有去试,其实不安装BusyBox也可以使用LinuxDeploy安装linux镜像的。
打开linux deploy,在左上角的菜单里面,可以设置屏幕常亮,锁定wifi和cpu唤醒等功能,然后点击右下角的属性,发行版选择CentOS,版本选择7,镜像大小我填的15G,源地址是http://chinanet.mirrors.ustc.edu.cn/centos-altarch/,选择启用SSH服务器,我没有选择启用允许使用初始化系统,结果导致后面运行systemctl的时候出现Running in chroot, ignoring request.错误,然后点击右上角菜单里面的配置,有的时候会出现错误,不用理会,linuxdeploy这个软件是一个俄罗斯人开发的,bug很多,然后点击安装,大概需要10到30分钟左右时间就安装完成了。
安装完成以后通过远程ssh进入,我就是打算安装一个mariadb服务器,通过命令curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash安装了最新的mariadb数据库,安装完成以后打算用systemctl start启动,结果出现Running in chroot, ignoring request.错误,只好使用mysqld_safe启动,结果仍然出现错误Failed to create a socket,需要运行命令usermod -a -G aid_inet,aid_net_raw mysql让mysql能够使用socket,然后通过setsid mysqld_safe > /dev/null 2>&1 &就成功启动了mariadb。关闭mysql可以使用mysqladmin -uroot shutdown来完成。
整个安装过程充满了很多坑,但是让旧手机发挥余热也是一件很有成就的事情。
网友评论