../install-arch-on-pixelbook2017

Install arch on Pixelbook(2017)

Table of contents

咸鱼搞了一台 Pixelbook 2017,当年的顶配 16+512,CPU i7-7Y75 看着有点拉胯,不过也有好处,那就是续航挺不错的。

先把参考链接记录一下,挖坑折腾过程。

解锁

刷固件

装 arch

折腾驱动

用起来

键盘映射

pixelbook 本来按键就不多,有几个按键比较奇怪,还用不上,就需要重新做一下映射了。这里参考的是 arch wiki: Map scancodes to keycodes

确定按键 scancode

在映射之前首先需要找到按键的 scancode,这也算是 pixelbook 自己独特的地方,键盘上有几个不一样的按键。这里使用的是 evtest 来确定按键的 scancode,不过还需要先确定键盘的 device event number 是多少。

cat /proc/bus/input/devices | rg "kbd" -C 5
# name 中包含 keyboard 的就是键盘了,我的是 event2,所以我使用 evtest 的命令就是
sudo evtest /dev/input/event2
# 这个时候键盘按下你想要知道 scancode 的按键就可以了
# 而我最想知道的就是一般键盘 Caplock 和 LeftMeta 位置的两个按键的 scancode 值
Event: time 1706794010.527439, -------------- SYN_REPORT ------------
Event: time 1706794010.619637, type 4 (EV_MSC), code 4 (MSC_SCAN), value db
Event: time 1706794010.619637, type 1 (EV_KEY), code 1 (KEY_ESC), value 0
Event: time 1706794010.619637, -------------- SYN_REPORT ------------
Event: time 1706794012.397696, type 4 (EV_MSC), code 4 (MSC_SCAN), value d8
Event: time 1706794012.397696, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1

# 由于我已经把那两个按键映射好了,所以可以通过 EV_KEY 那一行的 code 看到 KEY 的名字;看 EV_MSC 那一行的 value 值就可以知道按下按键的 scancode 是多少了

使用 udev 进行映射

我的需要是把 Caplock 和 LeftMeta 位置的两个按键进行重新映射,通过上面我们知道了 Caplock 位置按键的 scancode 是 0xdb,LeftMeta 位置按键的 scancode 是 0xd8。 参考 wiki,就直接贴配置了

# cat /etc/udev/hwdb.d/61-keyboard-local.hwdb
evdev:input:b0011v0001p0001eABBA*
 KEYBOARD_KEY_d8=leftmeta
 KEYBOARD_KEY_db=esc

我这里使用的设备匹配方式是 USB 键盘序列号,这个号码同样可以通过命令

cat /proc/bus/input/devices | rg "kbd" -C 5

找到键盘相关的第一行来确定。

这里稍微踩过一个坑,似乎在更新了什么之后,这个键盘的 version 号是会变的,这个时候键盘映射就会失效了,需要更新这个配置文件才行。

然后使用

systemd-hwdb update

更新 hwdb.bin

最后再使用

sudo udevadm trigger

使系统重新读取 hwdb.bin(当然重启也行)