Fixing Battery Discharge problem on Chromebook Dev-Mode
As a follow-up to my previous post about installing Arch Linux on a Chromebook, this write-up describes an annoying problem and some of my own observations while following through with the solution (mostly for self-reference in the future).
The Problem
To boot into Arch Linux, the Chromebook device needs to run a legacy bootloader so that your BIOS of choice can be initiated (e.g. Grub). This was part of the process when installing Arch:
$ sudo crossystem dev_boot_legacy=1
When the device drains its battery, this value is set back to its default (0), effectively locking you out of the only OS you have installed on the system. Pressing Ctrl + L as usual will only greet you with two beeps.
The solution
Here's the full solution. Here's my summary:
- We need to utilize ChromeOS' built-in recovery system to fix the boot flag for us
- The only script that ChromeOS recovery routine will run is the chromeos-install script
- So we make a recovery USB, then we mount it and modify the chromeos-install script so that it fixes the flag for us during recovery instead of... well, installing ChromeOS
A Couple Notes on my Adventure
- My Chromebook model is a Falco, so the recovery image is #35 in the list.
- I ran into a full-disk problem while downloading/extracting the recovery image from Google. Simply modify the
linux_recovery.sh
script and set theWORKDIR
variable to something that's not/tmp
. - The starting location for my BOOT-A partition is 146800640
- Keep the original chromeos-install script in case of future need for installing ChromeOS
Comments
Post a Comment