Chuwi(驰为)Vi8Super刷Linuxmint 19

准备工作

手里的Chuwi Vi8Super平板是五年前买的,当时就已经是白菜价了。

据说这主要是托Intel的福——当年Intel为了推广Atom移动平台真是大出血本,给各厂商巨额补贴,造就了市面上一大批Z3735F平台的大小平板,Windows系统和Android系统都有,甚至还有这款双系统的神机。

当年的微软为了对抗Android也是大出血,宣布为某些条件(屏幕小于多少,分辨率低于多少,CPU低于多少等)下的硬件平台提供免费windows license。比如这种8寸的Z3735F平板就是,这真是我们这种垃圾佬最爱的货了。

然而时过境迁,这些垃圾货的本性开始暴露了:Windows 8.x已经被抛弃了(我曾经试图在免费期内升级到Windows10,而且因为空间不足还手动把Android删除,但还是失败了,包括但不限于各种驱动缺失等问题),Android 4.x也是过时得不行,很多新版APP已经安装不了。于是闲置了一两年。

最近因为疫情放长假,随手翻出来想试试看能不能折腾一下,结果居然还真找到解决方案了。

这个机器的硬件配置是这样的:

  • CPU Intel Atom Z3735F
  • RAM 2G
  • NAND 32G
  • WIFI+BT

算是一个挺普通的低配X86 64方案,理论上应该可以装别系统,然而我早年也尝试过安装Linux,但是失败了,引导不了。后来才知道这货有一点很奇葩:它是一个64位的平台,但是用了32位的BIOS……

所以问题的关键就是需要做一个能被32位BIOS引导的安装盘。

搜了一番,找到一个达人做的解决方案:Linuxium,用一个脚本把标准的Linux安装盘转换一下,就成了可以在这种平板平台上引导的安装盘了。

作者做了几个ISO可以直接下载安装,不过因为他用的免空在科学网外,下载不便,而且他只做了Ubuntu,我最近喜欢用LinuxMint,所以还是自己做了一个,然而过程并不顺利,最大的问题还是在科学上网上。

本来我是应该用这样的命令在转ISO的:

isorespin.sh -i linuxmint-19.3-cinnamon-64bit.iso --atom

但不幸的是这样运行就会直接卡住不动。看文档看得头昏眼花之后,终于看到原来--atom相当于:

-l rtl8723bX_4.12.0_amd64.deb -f linuxium-install-UCM-files.sh -f wrapper-linuxium-install-UCM-files.sh -f linuxium-install-broadcom-drivers.sh -f wrapper-linuxium-install-broadcom-drivers.sh -c wrapper-linuxium-install-UCM-files.sh -c wrapper-linuxium-install-broadcom-drivers.sh

当我把那两个8723的驱动和四个脚本下载下来才发现,脚本里多处从google的免费空间里下载文件的语句——就是这里卡住了。

最后只能不带--atom参数制作ISO,然后写到U盘里先刷上看看。转换完成的文件名叫做linuxium-linuxmint-19.3-cinnamon-64bit.iso。刷U盘可以用dd命令,不过我习惯用Mint系统自带的Disks工具。

刷机

准备以下硬件:

  • 一根MicroUSB OTG线
  • 一个USB HUB
  • 一个USB键盘和一个USB鼠标
  • 一个前面做好的启动U盘

平板关机,把键盘鼠标U盘都插到HUB上,再把HUB插到OTG线上,再把OTG线插到平板上。

按住ESC键,平板开机,等待进入Boot mode界面——注意,不同的平板可能操作不同。在此界面上选择Boot Manager,在菜单中选择你的启动U盘,如果没发现,请检查U盘并重启再试。

成功启动后即可进入LinuxMint Live环境,然后就可以开始正常安装了。

过程中需要注意的一点是硬盘分区,我没有使用默认的全盘自动重分区,而是手工把不用的分区一个个删除,保留了最前面的几个小分区,以防万一……虽然可能也没什么必要。

比较方便的一点就是这个时候WIFI已经被成功驱动起来了,可见LinuxMint 19已经默认带了那个8723驱动。

安装完成后的配置

虽然系统成功安装,但还有一些后续的配置工作:

  • 虽然--atom参数需要的8723驱动已经有了,但broadcom驱动和UCM配置还是需要补装的
  • 屏幕方向始终是竖屏
  • 触摸屏不能用

broadcom驱动和UCM配置用linuxium提供的两个脚本即可:linuxium-install-UCM-files.shlinuxium-install-broadcom-drivers.sh,注意,是两个不带wrapper的。

但是直接运行是不行的,如前面所说,需要从google下载一些文件,所以需要修改一下脚本里的wget语句,加上必要的科学上网方式,或者直接用全局科学上网来运行。

这两个装上,声音应该就有了。

竖屏的问题研究了半天,改了一堆的配置文件,最后发现其实在“首选项”-“显示”里面就可以配置。先在“设置”里把“禁止自动旋转屏幕”打开(反正重力传感器也用不了),然后在“布局”里改变“旋转”的设置,我用了“逆时针”,结果导致触摸方向相反,后来改成“顺时针”就顺了。

需要说明的是,这个设置需要登录后才生效,所以登录界面还是竖屏的……

触摸屏就麻烦多了。

首先是需要驱动,但是我连这个触摸屏是什么型号都不知道。搜了半天,总算找到有人试出来是Silead GLSx680,虽然他的型号是Vi8,但据我所知,Vi8Super与Vi8的唯一区别就是:Super是双系统,硬件应该是完全一样的。

sudo apt install git
git clone https://github.com/onitake/gslx680-acpi.git
# 下面这个固件实测需要用浏览器下载,用wget会被github阻止,不知道为什么
# wget -O silead_ts.fw https://github.com/Manouchehri/vi8/blob/master/Ubuntu_support_files/silead_ts.fw?raw=true
sudo mv silead_ts.fw /lib/firmware/
cd gslx680-acpi
make
sudo make install
sudo insmod gslx680_ts_acpi.ko

装上这个驱动,触摸总算有反应了,虽然位置跑偏的厉害,而且方向还相反(后来才知道是因为旋转方向用了逆时针)……

又找了很久找到这个ubuntu的触摸屏解决文档,提到了校正和配置的方案。

sudo apt install xinput-calibrator
xinput_calibrator

然后按提示把生成的配置保存为99-calibration.conf,然后放到/etc/X11/xorg.conf.d/下(如果没有则创建)。更新配置需要重启X:

sudo service lightdm restart

然后需要重新登录生效。

然而不幸的是,校正参数是生效了,但是反向的问题还是没有解决,加上了InvertXInvertY也没有用,加了evdev的设置也没用,最后是在xorg的日志里看到错误才知道需要另外安装:

sudo apt install xserver-xorg-input-evdev-hwe-18.04

当然,最后把反向问题解决完,发现其实只要改一下旋转方向就不用反向了……

最后,因为触摸屏设置也要登录以后才有效,所以登录时的竖屏状态,触摸还是乱的,导致屏幕键盘不能用(也不是完全不能用,只是点击位置和虚拟键盘对不上,而且因为竖屏,XY轴还是相反的,基本不可能点准)……所以在没有连接蓝牙键盘的情况下是无法登录的……

当然这些已经不重要了,至少基本上都能用了。

然后就是正常的LinuxMint环境配置了,比如安装语言包、输入法这些。当然实际使用的性能还是比较感人的,毕竟Z3735F这个CPU还是太弱了点,可能后来的Apollo平台会好一些吧。

BTW:我刷这个机器也只是为了以后出门万一有需要可以应急一下,不可能用来正经干活的,毕竟性能一般,屏幕太小,这个小蓝牙键盘也不好用。目前是放在家里做个小服务器跑测试用,毕竟可以docker……

推送到[go4pro.org]