欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pixelbook 2017 安装Ubuntu 替代 ChromeOS 日记

程序员文章站 2022-07-12 20:59:13
...

本教程并不完善,正在解决所遇到的问题,可以等等...

 

我的设备信息:Google Pixelbook 

 

注:

风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险 风险

再次提醒有风险

若出现 拆机问题,Bios刷入失败 等问题自行处理,本人将不承担任何责任

目前正在解决 驱动问题。。。。。。。。。。。。

 

部分操作需要 小飞机,若步骤需要使用*标记出

 

在刷机之前建议看看

相关文档 -> 有关ChromeOS设备解决方案汇总(也许有其他适合你的方法,不一定要刷机)

相关文档 -> 目前没有支持 Pixelbook 但有其他 ChromeOS 设备(如果你持有的是其他型号的可以看看有支持吗?)

相关文档 -> 完整的 PixelBook 刷机教程(这一篇是比较完整的刷机教程)

 

先大致看下本文,下方有些链接点开看看都可以打开吗?

因为有些无法下载的文件但又必须使用。

如果无法打开就需要注意了。

 

相关文档:

完整的 PixelBook 刷机教程

需要移除电池才能刷入UEFI *

刷入UEFI固件视频*

目前没有支持 Pixelbook 但有其他 ChromeOS 设备

若需要恢复固件,以支持 ChromeOS

GalliumOS 据说完美支持 ChromeOS 的Linux发行版,但我刷机后无法调节亮度且屏幕比例有问题

有关ChromeOS设备解决方案汇总

ChromeOS设备进入管理员模式

Crouton安装常规Linux

 

使用工具:

除了Pixelbook外,还需要一台电脑

下载UEFI固件*

烧入ISO镜像

Ubuntu操作系统 (19.04版本)

U盘(拿来做备份(一定要做,不然回到ChrmoeOS会很麻烦),和刷入系统)

二选一 (如果是调试电缆:可以在 某鱼,某宝,某转 上看看可以收到吗?)
SuzyQable CCD Debugging cable (调试电缆) 可选,除非你想拆机。我并没有研究过,所以教程中不会出现。(解决禁止写入保护)
螺丝刀型号,拆机有风险(T3 Torx Screwdriver,T5 Torx Screwdriver)。(解决禁止写入保护)

 

 

 

如何安装?

  1. ChromeOS 设备进入管理员模式,有链接教程

  2. 通过安装 UEFI固件 替换原有,需要备份使用到U盘,固件来自MrChromebox刷机有风险。下面会有图

  3. 将U盘内备份的BIOS保存,并写入我们的操作系统

  4. 按 ESC 选择 BIOS Manage 将 U盘启动移动带第一项,开始装机,这里有几个问题下面会说

  5. 无驱动的替代解决方案(比如:声音,亮度,等等一系列问题),通过 相关文档 -> 完整的 PixelBook 刷机教程 中的方法将项目Clone到本地按照指定的步骤执行,但会很多问题,下面给出解决方案

 

如何进入管理员模式:

不做赘述,原因已经刷到Ubuntu,不想回去,就不放图了。

记得需要注意的:每次开机都需要按 Ctrl + D 进入ChromeOS管理员模式,如果按 Enter 系统将重置回到最开始的地方。

 

刷入UEFI固件

这里还拍了几张图

Pixelbook 2017 安装Ubuntu 替代 ChromeOS 日记

这里选择 3 . Install/Update Full ROM Firmware(安装或更新输入固件)

Pixelbook 2017 安装Ubuntu 替代 ChromeOS 日记

之后是免责声明(刷机有风险),这里看自己是否同意如果同意就请输入 "I ACCEPT"

Pixelbook 2017 安装Ubuntu 替代 ChromeOS 日记

提示你需要去安装一个固件,输入 y

然后检测你的机器上是否插入U盘设备,以完成备份,选择U盘对应的序号进行备份

然后开始下载固件。

注:下载太慢了,等了很久才下载完成。

我将shell命令中的一些链接列出,看看你们都可以访问吗?

https://raw.githubusercontent.com/MrChromebox/scripts/master/firmware-util.sh

https://raw.githubusercontent.com/MrChromebox/scripts/master/sources.sh

https://raw.githubusercontent.com/MrChromebox/scripts/master/firmware.sh

https://raw.githubusercontent.com/MrChromebox/scripts/master/functions.sh

这是我需要下载的固件,只做个参考

https://www.mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-eve-mrchromebox_20200317.rom

------------------------------------------------------------------

--------------- TODO 之后有空放上截图 ---------------

------------------------------------------------------------------

如果一切顺利,那么你的命令行窗口将可再次使用,这里我忘了截图。

重启电脑,将会进入你新刷入的 UEFI固件中,这时是没有操作系统的。

移除Pixelbook上的U盘,在另一台电脑内通过 Rufus 去写 Ubuntu 操作系统。

安装系统就不做说明了,能做到这里的都应该会装系统吧!!!

 

系统安装完成

如果选择的 Ubuntu 18.04.4 LTS 在进入系统后重力感应将出现异常,屏幕是反过来的,需要点击右上角锁定方向按钮。

建议使用旧版本的 Ubuntu.

屏幕反转解决方法

 

以下使用 Ubuntu 19.04 版本:

进入系统后会发现屏幕非常的亮(应该是100%)

并且右上角的 亮度,声音 都无法调节。

触碰版使用必须使用大面积手指去移动,非常不方便

 

解决驱动问题(以下步骤都可以在 相关文档 -> 完整的 PixelBook 刷机教程 中找到)

进入Ubuntu系统 Ctrl + Alt + T 打开命令窗口后执行shell命令

安装需要用的工具

git 版本控制管理工具,拉取 chromium.googlesource 的一些组件

python 

ansible 用于运维的工具,基本的执行流程都是有它完成

sudo apt install -y git python ansible

git clone https://github.com/yusefnapora/pixelbook-linux

cd pixelbook-linux

./run-ansible.sh

 

执行以上脚本所遇到的问题以及解决方案:

问题1:'NoneType' object is not iterable 错误如下

TASK [eve-recovery-files : Find mapper device to use for mounting image] ***********************
fatal: [localhost]: FAILED! => {"msg": "Unexpected templating type error occurred on ({{ kpartx_output.stdout | regex_search(regexp, '\\1') | first }}): 'NoneType' object is not iterable"}
to retry, use: --limit @/home/nrm/improve-ubuntu/pixelbook-linux/ansible/playbook.retry

PLAY RECAP *************************************************************************************

打开 ***/pixelbook-linux/ansible/roles/eve-recovery-files/tasks/main.yml

修改 (loop[0-9]p3) 为 (loop[0-9]+p3)

- name: Find mapper device to use for mounting image
  set_fact:
    mapper_device: "{{ kpartx_output.stdout | regex_search(regexp, '\\1') | first }}"
  vars:
    regexp: '(loop[0-9]+p3)'

问题1的解决方案


问题2:

网络问题 git无法从 chromium.googlesource.com clone 下数据,抛出 TLS异常 checked out异常

问题2的解决方案:

使用 github 导入项目,将文件中的 git url 给替换了,下图位置。

计算签名:
certutil -hashfile *** sha256

./pixelbook-linux/ansible/roles/eve-audio/tasks/main.yml 第13行
git:
https://chromium.googlesource.com/chromiumos/third_party/adhd

./pixelbook-linux/ansible/roles/eve-recovery-files/tasks/main.yml 第13行
https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_11647.154.0_eve_recovery_stable-channel_mp.bin.zip
本地sha256:ccde720355b8d0f1bbd890b379614bf7cb378feb856f45fe1d11bec50f9a80ad
下载sha256:ccde720355b8d0f1bbd890b379614bf7cb378feb856f45fe1d11bec50f9a80ad

./pixelbook-linux/ansible/roles/eve-touchpad/defaults/main.yml 第 10 16 23 行
git:
https://chromium.googlesource.com/chromiumos/platform/libevdev
https://chromium.googlesource.com/chromiumos/platform/gestures
https://chromium.googlesource.com/chromiumos/platform/xf86-input-cmt

问题3的解决方案:

TASK [eve-tweaks : Copy libinput touchpad pressure tweak file] *****************
fatal: [localhost]: FAILED! => {"changed": false, "checksum": "9cb56d667cd390aa928d9d760bb5739b4f0d9c1d", "msg": "Destination directory /etc/libinput does not exist"}
	to retry, use: --limit @/home/sk/Research/pixelbook-linux/ansible/playbook.retry

PLAY RECAP *********************************************************************

手动执行,或在yml前创建目录

sudo mkdir /etc/libinput/

问题3解决方案

待续未完...

 

正在解决驱动问题中...