pixelbook 2017 (eve) 安装 archlinux 避坑指北

我又不死悔改,整了两台新 chromebook 其中一台就是本文中的 Google pixelbook 2017 ,如果不是因为从咸鱼上收的二手机成色很旧的原因,这玩意某种意义上真的可以跟macbook媲美(贫穷的我只在 apple store摸过mbp),很轻很薄,打开的手感,关闭屏幕的阻尼都恰到好处,可惜,它是没用的chromebook。


如果你已经刷好了 uefi 装上 arch 请跳到本文最后阅读

要刷系统首先要解除写保护(wp) pixelbook是cr50设备,要么拆机断开电池,要么使用特制的cr50调试线,考虑到过于轻薄加上很难拆,我花了¥85从咸鱼上购入了一根 。

大概长这样

此教程部分过期,118以后 sudo 命令无法在cros的shell里生效,需要ssh到本地才能使用,而ssh需要在chromebook的初次引导界面开启调试模式,然后进访问模式开shell ssh root@127.0.0.1 默认密码大概为test0000

以root用户身份设置 chronos 用户的密码 passwd chronos

重新开一个shell ssh chronos@127.0.0.1 登录,在这个ssh里就能正常用sudo命令了

关于cr50线得具体使用方法可以看mr chromebook的wiki ,chromebook进开发者模式,进 shell 用脚本确认是否 有写保护

cd ~ 
curl -L -O http://mrchromebox.tech/firmware-util.sh 
sudo bash firmware-util.sh
注意:未解除wp的会显示成红色

执行以下命令

sudo gsctool -a -I
大概会长这样(没解锁
sudo gsctool -a -o
然后每次提示按pp的时候快速连点电源键,然后差不多6次左右,chromebook会出厂(甚至还关掉了开发者模式

然后会提示无法进入系统,按住esc+刷新+电源键,高级选项,重新进入开发者模式,连接调试线(线分正反,正确插入会提示低功率无法充电

ls /dev/ttyUSB*
出现ttyUSB0、ttyUSB1 和 ttyUSB2 说明正确连接
sudo su - 

echo "wp false" > /dev/ttyUSB0

echo "wp false atboot" > /dev/ttyUSB0

echo "ccd reset factory" > /dev/ttyUSB0

gsctool -a -I


#一次复制粘贴一行
成功以后是这样的

crossystem wpsw_cur

确认返回值为 0 后 手动重启


关于arch 的指北

接下来的刷uefi固件的教程可以参考我之前写的那些,不过刷之前,为了能在linux下正常驱动pixelbook的硬件,我们需要提取一些东西。参考

当然你也可以什么都不做,现在大部分都进linux-firmwire里了,直接免驱(包括键盘背光都能直接用gnome调整)


sudo su cp出来到downloads里就行

/lib/firmwire 和/opt/google 里的全部 (事后再提取的话会很麻烦,chromeos镜像不能正常挂载为可读文件,步骤很复杂(关键是我记不得了)

当然你也可以用我提好的现成固件(

然后就可以着手准备刷uefi了

刷uefi脚本里还有一个 降级驱动板的选项(仅在chromiumos下能正常降级/刷入windows必须降级


arch下的屏幕亮度调节

使用最新内核/较新的内核都能成功驱动(pixelbook内置屏幕是edp控制亮度的,旧内核有bug)

arch下的音频问题

最新内核 (6.0)不知道为什么认不到pixelbook的声卡

我推荐用 downgrade 降到linux 5.19.7

不过就算是降级到旧内核 sudo aplay -l 能认到声卡了,也是不能正常响的

参考,需要复制固件到对应文件夹(固件在上面有我提取出来的链接):

sudo cp /mnt/lib/firmware/9d71-GOOGLE-EVEMAX-0-tplg.bin /lib/firmware/

sudo cp /mnt/lib/firmware/dsp_lib_dsm_core_spt_release.bin /lib/firmware/

sudo cp /mnt/lib/firmware/intel/dsp_fw_C75061F3-F2B2-4DCC-8F9F-82ABB4131E66.bin /lib/firmware/intel

sudo mkdir -p /opt/google/dsm/

sudo cp /mnt/opt/google/dsm/dsmparam.bin /opt/google/dsm/dsmparam.bin

重启后应该就能听到了

然后你会发现扬声器是耳机而且会有爆裂音(是 pulse audio 的bug 需要改采样率到48000)参考 sudo vim /etc/pulse/daemon.conf

然后这把默认采样率改成48000就行

default-sample-rate = 48000
alternate-sample-rate = 48000

pulseaudio -k 重启 pulseaudio,如果你发现音频开一会就死建议把pulseaudio的所有包装上尤其是 pulseaudio-alsa

ARCH上的触控板问题

触控板经常开机后无法使用,建议开机时手放在触控板上转转,如果不行试试看用chromium OS的 live cd (比如fydeos)然后用chromebox的脚本,降级触控板固件,或许会有用。

另外键盘映射咨询过hamiki大佬,他的 pixelslate 是用xmod map映射,正在研究中,日后更新

看了半小时arch wiki 没看懂怎么找那个assitant key的对应键位,索性放弃治疗,直接google答案,一顿乱抄之后都以外的能正常使用了。

1.首先搞到正确的键盘布局 参考

sudo vim /lib/udev/hwdb.d/61-eve-keyboard.hwdb

2.重新载入布局 参考

sudo systemd-hwdb update

sudo udevadm trigger

3.映射正确按键 参考

xmodmap -e "keycode 133 = Caps_Lock"

xmodmap -e "keycode 134 = Super_L"

4. 开机自动映射正确键位

vim ~/bin/xmodmap.sh

#!/bin/bash
xmodmap -e "keycode 133 = Caps_Lock"
xmodmap -e "keycode 134 = Super_L"

sudo vim ~/.config/autostart/xmodmap.desktop

`

[Desktop Entry]
Name=Xmodmap
Comment=xmodmap
Exec=~/bin/xmodmap.sh
Icon=application-default-icon
X-GNOME-Autostart-enabled=true
Type=Application

注意脚本文件请设置可执行权限

键盘背光

下载 脚本

chromebook 双启动(linux+chromeos)——-acer cb 713 尝试修复音频的一次记录

前言

我手上这台chromebook 是acer CB-713-1w 主板代号是 nami,nami系列似乎都用了kblda7219max作为声卡解决方案,但是这玩意在linux下支持度相当差,即使用了google原始的ucm2文件也只能用alsa发声,而且强行用pulseaudio/pipewire会炸扬声器。
另外这台chromebook还有个奇怪的问题,它不能用pd快充,笔记本背面明明贴着15v==3a,但我试遍了自己所有的快充头,都只能低功率充电器。
直到某天我更新完beta版的ChromeOS 103的时候,我™hdmi output 炸了
我就又开始研究起 mr.chromebox的脚本了

cd ~
curl -L -O http://mrchromebox.tech/firmware-util.sh
sudo bash firmware-util.sh

跑完以后有个更新seabios,我之前没试过,然后就好了(
对然后就好了,bios更新到test版本,pd充电和hdmi都工作了 (不知道该说什么好了

正题

本来是想整个办法修复音频的(从去年一直研究到现在了)
结果我发现了这个项目
https://github.com/cb-linux/breath
这个项目旨在给chromebook提供完整的linux支持,但是它的实现和以往刷bios的方法不一样,它能用CB自带的引导进入其它linux系统。

于是乎,你可以原系统照用,然后tf卡塞arch(不是)


用这个东西你需要:有一台debian系的物理机(不能装在移动硬盘里),一块稍大的u盘(8G以上),正常的网络环境(能连上github),有以及基础的linux知识(大佬,怎么脚本报错了,这个curl怎么装啊)
你可以直接去看官方文档

简易步骤预览
在debian/ubuntu上

1.制作启动镜像

git clone --recurse-submodules https://github.com/cb-linux/breath && cd breath 
 FEATURES=ISO bash setup.sh gnome ubuntu

2.用制作好的镜像刻入u盘(可以在linux上用balanetcher制作启动u盘
3.(可选/nami)不拔出u盘 另外使用脚本更新系统内核

VERSION=ALT bash updatekernel.sh  #主板型号是nami的才需要执行此步骤

4.(可选)不拔出u盘,用bash expand.sh 将u盘的全部空间用做 live cd

在chromebook上

1.确认开启开发者模式(自己搜
2.进入chrome终端 按住ALT+T 输入shell 按回车,再输入sudo crossystem dev_boot_usb=1; sudo crossystem dev_boot_signed_only=0; sync 允许从usb启动 chromebook
3.chromebook插入之前制作好的u盘,开机在按空格关闭开发者模式的界面 迅速连按ctrl+u
4.在u盘系统里,先连上网络,再使用终端 输入setup-audio
6.不拔出u盘,重启,按ctrl+u,进live cd(如果运气好的话,firefox是有声音的,但是gnome系统无法控制音量(毕竟是用的apluse,这东西 gnome 不支持)
如果出现的是dummy output 说明音频没有正确启用
7(可选).装进 emmc(可以通过chrome_recovery复原)install-to-internal-storage

ps:音频问题很难解决,没几个人会用apluse的,不要强行启用pluse audio,会炸扬声器
ps2:这个breath的镜像相当于个livecd,你对它做的更改会保留,如果你直接刻到sd卡里的话,插chromebook里约等于双启动
ps3:可以通过 mr.chromebox的脚本更改seabios的启动顺序
ps4: 有问题自己去github上看issue
ps5:我返朴归真用ChromeOS了


吐槽

ps:ps
1.之前用过mr.chromebook脚本的,需要回刷bios(如果没备份,那就别想了)
2.脚本只适用于debian系,因为arch系没apt
3.FEATURES=ISO bash setup.sh cli arch 就能装arch了,但是你得手动nmcli去连wifi
4.update kernel 其实只是把内核换成了5.10.7(此内核 kblda7219max能正常工作)
5.但5.10.7 休眠不正常


后记

我又收了台二手surface go
改天出了这破chromebook

ps:psp
被 ubuntu 气到(指最小安装全靠卸载)

pixel slate 装windows?

最近看到 mi pad 5 打折,没忍住又剁手了。
有一个全新的android平板了,那我 pixel slate 就吃灰了。
不行,不能吃灰,不然就会显得我买米板是浪费钱。

问:为什么不用 chrome os?

答:因为 google evil 。

我曾今疯狂的推崇chromeos的ui和交互,但是除此之外的地方就是烂到一塌糊涂。

  • 即便硬件支持,本地视频也无法硬解(因为google没做)
  • 连不上google就提示断网
  • 卡卡卡卡卡卡卡
  • 莫名奇妙的唤醒机制(休眠放在包里,拿出来的时候已经亮到快没电了)
  • 解锁变关机(google:这不是我们问题,我们不负责)
  • 超烂的网页缓存机制,盯着白色屏幕浪费生命(网页它其实根本没在加载)
  • 等等

所以我不做人了


以下是教程部分

  • 首先你得开启开发者模式

1.按住电源键+两个音量键,待屏幕熄灭后松开

2.选择关闭操作系统验证

3.选择开发者选项-重启

4.等待重启

  • 使用mr chromebox的脚本,安装uefi固件
    1.ctrl+alt+t 开启终端
    2.复制粘贴,选安装uefi固件,然后一路确认。
    cd ~
    curl -L -O http://mrchromebox.tech/firmware-util.sh
    sudo bash firmware-util.sh

    此教程部分过期,118以后 sudo 命令无法在cros的shell里生效,需要ssh到本地才能使用,而ssh需要在chromebook的初次引导界面开启调试模式,然后进访问模式开shell ssh root@127.0.0.1 默认密码大概为test0000 以root用户身份设置 chronos 用户的密码 passwd chronos,重新开一个shell ssh chronos@127.0.0.1 登录,在这个ssh里就能正常用sudo命令了

    或者直接 ctrl+alt+f2 登录 root test0000 然后手敲命令

    3.等待安装结束
    4.重启
    5.然后就是普通电脑安装环节了,不再赘述

一些踩坑

  • 本来是安装的 arch linux 然后还是音量不工作,不过这次连亮度都不工作了,而且3965y的表现太烂,在linux下连图形绘制都不正常(具体可以理解为chromeos上偶尔闪过的黑块那样)
  • 3965y版本装 linux 启动内核大概会卡报错,等好长时间
  • 装windows几乎是完美的?最终仅指纹,方向传感器不工作?
  • 装windows后的屏幕驱动可以通过update自动获取和音量驱动请从reddit上搜(懒得找了)
  • 装完 windows,再更新完, 我的4+32G版还剩2G可用空间。
  • 动画效果非常流畅,再重新装回chrome也比chromeos上的好使(注:chromeos上会频繁请求google服务器,无论是否是国内网站,只要连不上 google 就立刻停止加载,还不会主动刷新,即便刷新大概率也进之前缓存的网页,屎到爆)
  • 装windows后关机插电会重启
  • 同样的,直接关机也会概率重启,原因不明
  • 触控笔工作正常(无论是linux还是windows)
  • intel uhd615的性能不足以在3000*2000的屏上玩osu保持60fps

还有别的问题的话,请发评论/邮件。