Hi there! I recently made the leap to wipe ChromeOS from my Framework Chromebook Edition and install Ubuntu instead. If you’re thinking about doing this, there are some things you should know before jumping in:
- Many Framework components will not work out-of-the-box with Linux, because their firmware was designed specifically for ChromeOS. You can read about compatibility issues here: Chromebook board compatibility
- You will have to make your own GSC CCD cable, or buy one. There are tutorials online, and the only seller I could find was on eBay. I did end up purchasing one from eBay that worked perfect for me: GSC Debug Board (aka "Chromebook Debug Cable" / "SuzyQ", for Cr50 / Ti50) | eBay
- You should be prepared to work on the command line, read documentation, and troubleshoot - I’ll share as much as I can about my own experience, but your mileage may very and if you get stuck, you’ll need to be able to dig yourself out.
Steps I followed:
- Using CCD to open the hardware write-protect: Firmware Write Protect - MrChromebox Wiki
- Create a bootable USB with an Ubuntu ISO
- Install UEFI and wipe ChromeOS from the device: MrChromebox.tech
- Boot to “Try or Install Ubuntu” from the bootable USB
- The installation of Ubuntu will fail. This is because the nvme disk is still partitioned into a bunch of pieces from ChromeOS. We’ll need to wipe the partition table so that the Ubuntu installer can wipe the disk.
sgdisk -Z /dev/nvme0n1
- you can double check the device name for extra safety if you’d like.- reboot, boot to “Try or Install Ubuntu”, and follow the installer’s steps. It should install Ubuntu, and then allow you to boot without the USB. Congrats! But we aren’t done…
Post-Install Troubleshooting
Here’s where I’ll document ways I overcome compatibility issues I have. I could go to the Framework marketplace and buy Linux friendly components, but in the interest of saving me some money, I’ll be doing what I can at a software level to get the modules to play nice.
Things to fix:
- Trackpad “works”, but is slightly insensitive - doesn’t always track my finger well
- Audio output / input devices aren’t recognized at all
- The Chromebook keyboard doesn’t have function keys (although the modifier keys for brightness and such do seem to mostly work)
I will be editing this post with updates on how I solved these issues as I do!
Trackpad Fixes
For me, it was just that the trackpad sensitivity was misconfigured. To fix this, I:
sudo apt-get install libinput
- install a library to make updating the sensitivity easier- Debugging touchpad pressure/size ranges — libinput 1.26.0 documentation
- these instructions are mostly helpful for setting the values.
- I didn’t have a
/etc/libinput
directory, so I had to make one. - the documentation mentions
libinput list-quirks
which wasn’t installed locally, butlibinput quirks list
did work for me. - I found that “50:40” for the “down:up” sensitivity was all I needed to make the trackpad responsive and smooth. YMMV.
- for completeness, I’d recommend checking all of the proper values yourself, but here is a copy of my
local-overrides.quirks
file (restart the laptop after writing this file)
[Touchpad pressure override]
MatchUdevType=touchpad
MatchName=PNP0C50:00 093A:0274 Touchpad
MatchDMIModalias=dmi:*svnGoogle:pnBanshee:pvrrev3*
AttrPressureRange=50:40
Audio Fixes
- After trying lots of different things, I eventually came across this script: GitHub - WeirdTreeThing/chromebook-linux-audio: Script to enable audio support on many Chrome devices
- The script will complain that it doesn’t work for Ubuntu, but after rebooting, I found that the sound card was recognized and my Framework’s laptop speakers, 3.5mm audio jack, and Bluetooth headphones started working. USB-C headphones do not work. (I’ll keep looking into this)