Framework Chromebook - Installing Ubuntu (and wiping ChromeOS)

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, but libinput 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

4 Likes

Regarding the USB-C headphones:

I’ve found that if they are plugged in when the computer is rebooted, then they will be recognized until they are unplugged. After some quick Googling, it’s possible this is an issue with Ubuntu at large, not necessarily an issue with a converted Framework Chromebook.

More investigation to come!