在 Windows 平板(Z3735F)上安装 Ubuntu

手里头有台六年前买的 Windows 平板——昂达 V891W。预装系统 Win8,采用当年有着英特尔补贴而被寨厂们钟爱的 Z3735F 芯片方案,以及勉强能用的 2G 内存和 32G 的 emmc——不过随着前两年升级几次 Win10 后,它的系统盘基本被系统更新占满,卡得没法再用了。

最近收拾东西,把搬家后一直放着压箱底的它翻了出来,发现还能开机,突然想把它折腾一番,发挥余热。

修复

当初把它当作下载机和漫画阅读器,挂在床头支架上,常年插电挂机之后又放置了两三年,电池已经濒临报废。

上班前开机更新 Win10 系统,下班回来后就黑屏发热再也开不了机了……

目测是电池彻底报废,于是在万能的淘宝找到同型号的电池,下单到货后拆开更换上,终于重新开机。然而由于之前更新过程中的断电,似乎已经导致系统损坏,无论输入什么账号密码也无法登录。

使用带供电的 OTG Hub 外接键盘,开机长按 Shift 进入特殊启动菜单,选择恢复系统。缓慢的恢复过程不提,还总在快要结束时卡住,最后突然重启又回到无法登录任何账号的状态。

被折腾到没脾气,转念一想,就算重置了 Win10 系统估计也是卡得没法用,要不装个 Linux 试试?

毕竟就算它的配置不高,比树莓派还是要强不少的。

选择 Linux 系统

经过几次尝试,最终选择了 Ubuntu 20.04,其他几个系统安装和使用中遇到但问题:

  • Linux Mint 没法正常完成安装。

  • Debian 倒是安装顺利,但安装完毕后缺少各种驱动,无法调整屏幕亮度、没有声音、甚至看不到电池电量。

  • Ubuntu 的话,首先尝试了 Ubuntu 18.04,大部分驱动相对正常,重力感应异常(不过可以手动锁定屏幕方向);换成 16.04 后 Unity 桌面比 18 的 Gnome 流畅许多,但是缺少很多驱动。

  • 最后尝试了 20.04,安装后驱动几乎都正常,手动再装个 Unity 桌面后就可以使用了。

安装系统

1. 制作启动盘

这里推荐使用 Rufus,将 Ubuntu 镜像写入闲置的 U 盘,就做成系统安装启动盘了。

不过需要注意,Z3735F 芯片虽然本身支持 64 位,但可能是为了节省系统空间,加上系统配置本身也都不高,厂商都采用了 32 位的系统,对应的 EFI 也是 32 位的。

而 Ubuntu 并没有提供 32 位 EFI 的引导文件,所以制作完安装启动盘后,需要网上找一个 bootia32.efi,放到 U 盘的 /EFI/BOOT/ 路径下。

2. 进入系统安装环境

将 U 盘和键鼠接上 OTG Hub,开机时按住 Esc 进入系统启动选单,选择从 U 盘启动。

如果启动失败,可能进入 grub 命令行(在 grub 菜单按 C 键),手动配置参数启动:

1
2
3
4
5
6
ls                  # 查看所有可用的设备
ls (hdX,Y)/boot # 从中找到 U 盘的 /boot 目录
set root=(hdX,Y) # 数字参考上面找到的盘
linux /casper/vmlinuz boot=casper
initrd /casper/initrd
boot

经过系统自检之后就将进入 Ubuntu 的安装环境,点击安装后一步步操作:选择语言、时区、安装分区、创建用户,然后等待文件复制完毕并且安装完毕即可。

3. 手动引导系统启动

安装到最后一步,不出意外将看见一个报错弹窗:

然后,提示安装程序崩溃了:

不用惊慌,此时系统其实基本已经安装完毕,但和引导进入 U 盘安装环境一样,也需要修复一下安装后但系统启动引导。

不过我们要先手动引导启动一次,才能开始之后的修复工作。

依旧是通过之前的操作进入 U 盘系统,打开 disks 查看内部存储里的磁盘信息。

找到安装完成后的系统分区(注意不是引导分区),记住它的设备分区号,如:/dev/mmcblk1p2

重启后再次进入 grub 命令行,使用之前的办法,通过 ls 命令找到内部存储中带有 /boot/vmlinuz* 的磁盘分区:

1
2
3
4
set root=(hdX,gptY)         # 刚才找到的分区
linux /boot/vmlinuz* # 星号表示按 Tab 键自动补完
initrd /boot/initrd*
boot

这样,应该就能启动刚才安装在本地的系统了。

4. 修复系统启动引导

为了不用每次都这样手动输入命令启动,我们还是得修复一下启动引导。

连接 WiFi,打开终端,输入以下命令:

1
2
3
4
5
sudo apt-get update
sudo apt-get -y purge grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed
sudo apt-get -y install grub-efi-ia32-bin grub-efi-ia32 grub-common grub2-common
sudo grub-install --target=i386-efi /dev/mmcblk1p2 --efi-directory=/boot/efi/ --boot-directory=/boot/ # 这里的 mmcblk1p2 就是上一步找到的系统盘
sudo grub-mkconfig -o /boot/grub/grub.cfg

没看到什么报错的话,启动引导应该就修复完毕了,之后就算拔掉 U 盘,也可以直接自动启动到 Ubuntu 系统了。

完成

之后就是更换 Unity/KDE 桌面,安装 vim、git、VSCode、Chrome,想怎么折腾就怎么折腾了。

Linux 的终端环境比 Windows 的强太多,配置 swap 内存后,可以通过 Chrome 打开不少网页,开启 VSCode 敲敲代码之类的更是不在话下。

老设备成功复活~

如果启动栏有个 install RELEASE 的 Ubuntu 安装入口,觉得碍眼,可以执行 sudo apt remove ubiquity 移除掉。