玩转 Lenovo 10e Chromebook Tablet:安装 ubuntu arm
准备材料
- 蓝牙鼠标
- 8G 及以上 U 盘,可以接到 type c 口(有拓展坞也行,就没必要蓝牙鼠标)
- 一台其他电脑,用于刻录和查资料
解锁平板
拿到机器的时候自带的是 ChromeOS 系统,并且只能从 ChromeOS 启动。为了刷入系统,需要开启开发者模式并打开 USB 启动。进入开发者模式会清除全部用户数据。
关闭机器,同时按住电源键,音量+和音量-5 秒钟并松开,可以看到屏幕亮起,然后再同时按下音量+和音量-,就进入了一个菜单,用音量键移动并选择“关闭系统验证”,点击电源键确认,就进入了开发者模式。
启动后,将在全新的 chromeos 欢迎页面上看到“启用调试模式”。这时会有个框,让你输入密码,可以留空。打开调试模式,进入 chromeos 桌面,并按下 Ctrl+Alt+T 打开 crosh。在 crosh 中输入 shell,回车,可以看到进入了 shell,用户为 chronos。
按 Ctrl+Alt+F2 进入命令行,输入用户名 root,密码 test0000 登录。在 root 的命令行中输入 enable_dev_usb_boot,就打开了 USB 启动。关机。
下载并安装镜像
ubuntu arm 有两种安装方式:直接安装到 emmc 或者安装在 USB/SD 卡。由于 10e 没有 sd 卡槽,直接安装在 emmc 比较方便。在本章节之后,全部都是按照 emmc 编写的,但可以举一反三。
项目地址:https://github.com/hexdump0815/imagebuilder
进入 github 链接点进 releases,找到我们的 cpu mt8183 对应的镜像。 https://github.com/hexdump0815/imagebuilder/blob/main/systems/chromebook_kukui/readme.md
如果要安装在 emmc,需要下载最新和倒数第二新两个镜像。如果只是在 usb/sd 卡中安装,只需要下载最新镜像。
安装在 usb/sd 卡:将镜像刻录到 U 盘/SD 卡中即可。
安装在 emmc:将旧镜像刻录到 U 盘。
插入设备,选择 usb 启动。然后可以看到已经启动到 ubuntu 界面。默认是进入 xfce 桌面,可以点击小齿轮选择 ubuntu on wayland 进入 gnome。密码是 changeme。
以 root 权限运行/scripts/extend-rootfs.sh 扩展根文件系统
复制/下载最新镜像到 usb 中。
这样就完成了安装。安装到 emmc 的。拔掉 usb 并重启;安装到 sd 卡的退出登录。
重命名用户
在登陆界面 Ctrl+Alt+F2,进入 tty2,用 linux 用户登录到控制台,密码 changeme。然后输入 sudo passwd root,将 root 密码更改成你想要的。改完后输入 exit 退出登录,再用 root 用户密码登录。
运行/scripts/rename-default-user.sh xxx,把默认用户 linux 换成你的名字。
设置 btrfs 并安装 timeshift
通过观察会发现,这个镜像采用的是 btrfs 作为根分区。btrfs 可以进行快照,从而很简单的恢复备份。一般而言,ubuntu 系列的系统可以采用 timeshift 进行快照/恢复。但是 timeshift 不支持作者默认的挂载结构,需要我们手动更改。
timeshift 支持的结构:分区下仅有@
和@home
两个子卷,将@
挂载为/
,将@home
挂载为/home
。并且要求 btrfs 卷默认挂载subvolid=5 (FS_TREE)
。
先查看现在作者默认的目录结构:
也就是说默认直接把卷的根挂载到/
。并且 timeshift 不太支持这种 swap(忘记哪看到的了),因此我们要关闭 swap。
然后我们再创建@和 home 子卷
这时目录已经建好,只需要更改内核命令行修改启动参数即可。更改命令行需要手动修改 boot 分区。如果是 amd64 估计用不着这么麻烦,可以直接在/etc/kernel/cmdline 改
到这里先别着急重启。还需要改/etc/fstab。根据 timeshift 的说法,他的要求特别严格:除了上面的要求以外,还要 fstab 的/和/home 分区必须是用 UUID 或者/dev/mmcblk0p0 这样的形式指定。我们的系统默认是通过 label。大家需要更改。对于这台机子,把里面的 LABEL=rootpart 改成/dev/mmcblk0p4。fstab 需要大致如下,注意里面的 subvol=@,subvol=@home
更改完 fstab,再用命令设置默认卷
现在重启,重启之后应该就把@挂载到/,@home 挂载到/home 了。大家如果成功启动并登录就说明是正常的。这一步如果正常,就可以删除在原先磁盘根目录下除了@和@home 的所有文件。
安装 timeshift
到这里 timeshift 就能用了。大家可以先不急着快照,因为屏幕旋转问题还没解决。
修复屏幕旋转角度错误
这个问题是加速度传感器与屏幕方向不匹配。创建一个/etc/udev/hwdb.d/61-sensor-local.hwdb
这里的意思是匹配 chromebook 的加速度传感器,并且设置传感器指示的正确方向。然后运行
拆下键盘,测试下屏幕旋转是否正常。一般就正常了。到这里旋转解决了。
安装 ubuntu-desktop 并卸载多余环境
这里可以根据自己需要操作。想要 ubuntu 的就装 ubuntu-desktop,要 kde 就装 kde,自己解决。安装完后卸载掉多余的桌面环境和包。本文里只写一下安装 ubuntu-desktop 的命令。
重启即生效。可以看到标志性的 ubuntu 登陆界面。
关于升级系统
从 22.04 往上升级的话,会出现屏幕在刚开机的时候一直是黑的的问题。不知道为啥。可以写一个脚本放在/etc/init/当中,在系统启动时自动重启 gdm。到时候找到 bug 再做其他处理。
系统美化
这个网络上教程一大把,大家可以按照自己口味来。关键词 ubuntu 美化教程
关于电源按钮功能
如果你拿来当一台普通平板使用,想要他在不用时保持超长续航,那么需要设置电源按钮功能为挂起。如果你想要把它拿来当一台一只在线的服务器带屏用(比如把 homeassistant 装在里面),那么显然电源按钮不能一按就挂起或者关机。但是 ubuntu 的电源按钮功能只有 suspend、poweroff、ignore 三种,如果我们不想 suspend,只想按电源关闭屏幕,就需要一些操作。
可以用 acpid 监听电源按钮事件。
首先 Ubuntu on wayland 关闭屏幕比较困难(X11 相对简单),我们需要用那个当前登录的账户来执行命令,因此需要安装 doas
这个配置允许 root 以任何用户身份执行命令,应该没什么安全问题。
然后创建一个脚本/path-your-script/powerbutton.sh
这个脚本中 1000 是你的登录用户的 uid,自己查看是多少。如果只有一个用户,一般就是 1000
然后在设置里面把电源按钮功能改成无就行了。
docker安装
和普通系统完全一样,参考网络即可
杂项
在 wayland 下,firefox 用命令行启动时需要加环境变量,否则看起来比较不清晰(直接点击快捷方式没这个问题)
同理在 wayland 下 chrome 也需要添加 flags 才能变得清晰。
如果想在启动 firefox 之后自动按 f11,在 X11 下可以用注释掉的内容(xdotool),wayland 下没有好办法,只能用 kiosk 模式
请根据自己chromebook情况选择设备!一般arm设备是mmcblk0
zcat xxx.img.gz | dd of=/dev/mmcblk0 bs=1M status=progress
这个xxx.img.gz是放在哪里呢?另外一个U盘么?
是的
ACCEL_MOUNT_MATRIX的每一个数字代表什么意思啊,我用duet5来刷发现屏幕顺序总是反的,怎么改够改不对
不同的设备似乎是不同的,我具体也忘了,当时好像是试出来的