-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable Touchpad while typing. Fix eve-recovery-files loop regex. Keyboard mapping additions #15
Open
flantel
wants to merge
29
commits into
yusefnapora:master
Choose a base branch
from
flantel:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 22 commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
a056ce2
Update eve-recovery-files loop dev regex
flantel 89e5996
Disable Touchpad while typing
flantel 58963cb
Merge pull request #1 from flantel/flantel-patch-1
flantel 0e001cc
Support (optional) remapping of keyboard to use Chromebook top key ma…
barryflanagan 6d963f1
Ensure /etc/libinput directory exists. Fixes issue #17
barryflanagan 8a00d2a
update to the latest chromeos release kernel
daemonp 9585049
update readme to include kernel build instructions
daemonp 362dd4e
switch to chromeos release-R75-12105.B-chromeos-4.4 kernel branch pro…
daemonp 5835c30
fix filename
daemonp 4ddb2af
Merge pull request #2 from daemonp/kernel-upgrade
flantel a6c80e3
Use Ubuntu 19.10
kyzn 4556f9c
Add 'ccd reset factory' while removing write protect
kyzn b71fe25
Remount two folders for MrChromebox script as exec
kyzn 213fb6c
Add a quick note about firmware-util backup
kyzn 1a8f650
Get the most updated repo
kyzn 693cd23
Make sure to use the 'alternative' way as that one seems to work.
kyzn ded8fda
Install gcc-8 to get around gcc/cras issues
kyzn 56f3ce0
Create /etc/libinput by hand before starting script
kyzn 5b24d5b
Add an optional note about seeing boot menu
kyzn 32e700f
A quick note about checking kernel running and removing old kernel
kyzn b044276
Minor typos and leading spaces
kyzn 57d3cd0
Merge pull request #3 from kyzn/master
flantel e2195b3
Default to src installation, drop deb install
kyzn 1884327
Fix broken see details link
kyzn 855328f
Update README.md
flantel 6140dbd
Fix kernel name
kyzn 6188171
Don't add KEYBOARD_KEY_d8 twice
kyzn f4776e6
Don't add KEYBOARD_KEY_db twice
kyzn af28198
Merge pull request #4 from kyzn/master
flantel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,7 @@ the battery cable to disable the firmware write protect. This method avoids the | |
you will need to spend ~$20 USD on a special USB cable. See the [installation instructions](#installation) | ||
for details. | ||
|
||
The automated configuration targets Ubuntu 19.04 (Disco Dingo), although it's likely that the basic techniques | ||
The automated configuration targets Ubuntu 19.10 (Eoan Ermine), although it's likely that the basic techniques | ||
used will work for any distribution. I initially tried using Fedora Workstation 29, but ran into an issue where | ||
the system would crash immediately after resuming from suspend. I assumed this was due to my tweaks, but decided | ||
to give another distro a shot and found Ubuntu worked without issue. As a nice bonus, bluetooth works out of the | ||
|
@@ -19,7 +19,7 @@ box on Ubuntu, whereas Fedora required some fiddling post-install. | |
## Why | ||
|
||
I absolutely love the Pixelbook hardware. The keyboard is better than any laptop keyboard I've ever used, | ||
including the sorely missed pre-butterfly MacBook Pro keyboards. I also really like the 3:2 screen aspect ratio, the | ||
including the sorely missed pre-butterfly MacBook Pro keyboards. I also really like the 3:2 screen aspect ratio, the | ||
beautiful chassis and design, etc. | ||
|
||
I bought the machine in the first place because I was excited about [Crostini](https://reddit.com/r/crostini), which is | ||
|
@@ -54,10 +54,10 @@ Here's what's working at the moment: | |
full UEFI firmware) [fail to extract files from the recovery | ||
image](https://github.com/yusefnapora/pixelbook-linux/issues/3). | ||
- Running the install script while booting from an external USB has not been | ||
verified to work, and might suffer from a similar issue. Please update | ||
verified to work, and might suffer from a similar issue. Please update | ||
[this issue](https://github.com/yusefnapora/pixelbook-linux/issues/1) if | ||
you're able to test it out. | ||
|
||
Please [open an issue](https://github.com/yusefnapora/pixelbook-linux/issues/new) if you find other problems. | ||
|
||
|
||
|
@@ -99,7 +99,7 @@ help as time allows. | |
### Flashing UEFI Firmware | ||
|
||
To boot operating systems other than ChromeOS, we need to replace the Pixelbook firmware with a more | ||
standard UEFI firmare implementation. | ||
standard UEFI firmware implementation. | ||
|
||
Luckily, the indefatigable [MrChromebox](https://mrchromebox.tech) has developed a full replacement | ||
firmware for many ChromeOS devices, including the Pixelbook. | ||
|
@@ -178,7 +178,7 @@ ls /dev/tty* | |
``` | ||
|
||
**Important Note**: If you don't see any `/dev/ttyUSB` devices showing up when you plug in the | ||
cable, flip the USB-C end of the CCD cable over! Unlike most USB-C cables, the pins on the CCD | ||
cable, flip the USB-C end of the CCD cable over! Unlike most USB-C cables, the pins on the CCD | ||
cable **are not bidirectional.** | ||
|
||
Now we can send commands to the `cr50` console at `/dev/ttyUSB0`: | ||
|
@@ -189,18 +189,19 @@ echo "wp false" > /dev/ttyUSB0 | |
echo "wp false atboot" > /dev/ttyUSB0 | ||
echo "ccd set OverrideWP Always" > /dev/ttyUSB0 | ||
echo "ccd set FlashAP Always" > /dev/ttyUSB0 | ||
echo "ccd reset factory" > /dev/ttyUSB0 | ||
``` | ||
|
||
That will disable write protect, and also change the capabilities to allow overriding the write | ||
protect setting and flashing the firmware even if the CCD is locked. This makes it possible to | ||
recover if anything goes wrong during flashing and makes it easier to restore the original | ||
firmawre. | ||
firmware. | ||
|
||
Once you've issued the commands above, check the status with `gsctool -a -I` - you should see | ||
that the `OverrideWP` and `FlashAP` capabilities have changed from the default of `IfOpened` | ||
to `Always`. | ||
everything listed there have "Always". Some of them are changed from "IfOpened" (in parentheses). | ||
|
||
Now run `crossystem wpsw_cur` to verify the current write protect setting. | ||
Now run `crossystem wpsw_cur` to verify the current write protect setting. This should show `0`. | ||
Also do `crossystem wpsw_boot` to verify write protect status on boot. This should be `0` too. | ||
|
||
Alright, now that you've disabled Write Protect, you can flash the firmware! | ||
|
||
|
@@ -211,6 +212,14 @@ You won't be needing the CCD cable anymore, so feel free to disconnect it and pu | |
We'll be using MrChromebox's [firmware utility script](https://mrchromebox.tech/#fwscript) to flash | ||
the UEFI firmware. | ||
|
||
Before we begin, we need to remount two folders this script will use with exec. | ||
Run following in `crosh` shell. | ||
|
||
``` | ||
sudo mount /tmp -o remount,exec | ||
sudo mount /home/chronos/user -o remount,exec | ||
``` | ||
|
||
I made an ascii-cast for this as well, if you want to follow along: | ||
|
||
[![asciicast](https://asciinema.org/a/241665.svg)](https://asciinema.org/a/241665) | ||
|
@@ -227,6 +236,9 @@ prompts. | |
**Important:** Make a backup when prompted! This is why the requirements section told you to get | ||
2 USB flash drives. Seriously, USB drives are dirt cheap; don't skip this step. | ||
|
||
This backup does not make a bootable USB. It creates a `stock-firmware-EVE-<date>.rom` file in | ||
the external USB flash drive. The file is about 15 MB. | ||
|
||
After a couple minutes, you should be all set! Say goodbye to ChromeOS; by flashing this firmware | ||
you lose the ability to boot into ChromeOS, and you'll need to restore your firmware from the | ||
backup if you want to go back. | ||
|
@@ -236,7 +248,7 @@ backup if you want to go back. | |
Now that you're running a standard UEFI firmware, installing Ubuntu works just like on a standard | ||
laptop. | ||
|
||
Download an ISO image for [Ubuntu Desktop 19.04][ubuntu_dl] - other versions might work, but I make absolutely | ||
Download an ISO image for [Ubuntu Desktop 19.10][ubuntu_dl] - other versions might work, but I make absolutely | ||
no guarantees, and I won't be able to help you out if things are broken. Note that I might not be | ||
able to help regardless, but if you run into issues and you're not running the same distro as me, | ||
chances are much higher I'll shrug my shoulders and ineffectually wish you good luck, rather than | ||
|
@@ -257,6 +269,10 @@ unless you wiggle the cursor when the system is booting. If your mouse cursor is | |
installer (or in the stock Ubuntu install afterward), try rebooting and continuously moving your | ||
finger around on the trackpad while the system starts. | ||
|
||
Your screen might come up upside down. This is due to auto screen rotation. You can rotate your machine | ||
upside down, then click triangle at top right, and click the button with lock sign inside rotating arrows. | ||
This will "lock screen rotation" so it will stay in the correct direction. | ||
|
||
Now you can go ahead and install Ubuntu using the standard method. The installer defaults should all | ||
work fine, although I recommend encrypting your disk, or at least enabling LVM for volume management. | ||
|
||
|
@@ -283,22 +299,45 @@ git config --global user.email "[email protected]" | |
Now clone this repository: | ||
|
||
```bash | ||
git clone https://github.com/yusefnapora/pixelbook-linux | ||
git clone https://github.com/flantel/pixelbook-linux | ||
``` | ||
|
||
Enter the `pixelbook-linux` directory and run the install script: | ||
Enter the `pixelbook-linux` directory and run following: | ||
|
||
```bash | ||
sudo apt-get install gcc-8 g++-8 | ||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 | ||
sudo mkdir /etc/libinput | ||
cd pixelbook-linux | ||
./run-ansible.sh | ||
./run-ansible.sh -e "kernel_install_type=src" | ||
``` | ||
|
||
The script will ask you a couple of questions, after which it will spend ~20 minutes | ||
downloading and installing stuff. If you don't know how to answer the questions, just | ||
accept the defaults. | ||
|
||
If everything goes well, the script should complete successfully, and you can now | ||
reboot: | ||
If everything goes well, the script should complete successfully. | ||
|
||
Optionally, if you want to see which-kernel-is-which in boot menu, you can edit grub config: | ||
|
||
```bash | ||
sudo gedit /etc/default/grub | ||
``` | ||
|
||
There, update `GRUB_TIMEOUT` and add `GRUB_TIMEOUT_STYLE`. | ||
|
||
``` | ||
GRUB_TIMEOUT=5 | ||
GRUB_TIMEOUT_STYLE="menu" | ||
``` | ||
|
||
After saving the file, you have to run: | ||
|
||
```bash | ||
sudo update-grub | ||
``` | ||
|
||
Now you can reboot: | ||
|
||
```bash | ||
sudo reboot | ||
|
@@ -309,6 +348,18 @@ You'll be able to tell that you're using the correct kernel by the display backl | |
becoming very dim just after boot. Once the GUI is up, you can adjust the backlight | ||
using the Gnome slider in the upper-right corner. | ||
|
||
Once you are logged in, you can also check the kernel version with `uname -r`. You should | ||
see something like `4.4.205chromium-gdc1f94d5` and not `5.something.something`. If that holds, | ||
you can go ahead and drop the old kernel. This is optional. | ||
|
||
```bash | ||
sudo apt-get purge linux-image* | ||
sudo apt-get autoremove | ||
``` | ||
|
||
Feel free to do another restart to make sure it still works. | ||
|
||
|
||
### After the install | ||
|
||
Here's some info about the scripts and other customizations I added. If you're interested | ||
|
@@ -419,4 +470,4 @@ Do NOT remove `/opt/google` - it contains some files needed by the audio setup. | |
[ansible]: https://ansible.com | ||
[pixelbook_product_page]: https://www.google.com/chromebook/device/google-pixelbook/ | ||
[suzyqable]: https://www.sparkfun.com/products/14746 | ||
[ubuntu_dl]: https://www.ubuntu.com/download/desktop/thank-you?country=US&version=19.04&architecture=amd64 | ||
[ubuntu_dl]: https://releases.ubuntu.com/19.10/ubuntu-19.10-desktop-amd64.iso |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change might need to be reversed once this PR is merged.