Skip to content

Instantly share code, notes, and snippets.

@plembo
Last active March 12, 2024 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save plembo/5c761b15d0f719c30f38a4a4e676a088 to your computer and use it in GitHub Desktop.
Save plembo/5c761b15d0f719c30f38a4a4e676a088 to your computer and use it in GitHub Desktop.
Linux on a Dell Chromebook 11

Linux on a Dell Chromebook 11

My retail (not enterprise) Dell Chromebook 11 (an Inspiron model 3181, not the 3180 or 3189) went EOL shortly after I purchased it new from Best Buy. Since then it saw some hard use in the family kitchen as a recipe lookup device, but was finally retired when replaced by a (relatively) newer Android tablet (that also reached EOL shortly thereafter).

NOTE: Ridiculously short lifespans for hardware devices definitely suck, as do all the manufacturers who make them. There should be a law against it.

With an overseas trip looming, I decided to look into refurbishing the Chromebook for use as a privacy hardened travel laptop. Frankly, the thought of TSA and Customs manhandling my trusty portable workstation was too much to bear.

I mostly followed the detailed instructions in the Chrultrabook Docs, using the firmware supplied by MrChromebox. As it turns out, the process was fairly painless, and seemed much more straightforward when I did a similar refurb on an old Acer 720 with the help of John Lewis's amazing firmware.

The 1366x768 display of the Dell Chromebook 11, which allowing the machine to be nicely compact, has suboptimal resolution and so is guaranteed to be the source of as much frustration as when it ran ChromeOS. The same goes for the severely underpowered CPU, paltry 4 GB RAM, and ridiculously tiny 32 GB primary disk. But if not for these limitations, where would the challenge be?

Enabling developer mode

For the Dell Chromebook 11 all I had to do was put the device into Developer mode and verify that I could get into the crosh shell with sudo rights.

Removing write-protect

For Dell Chromebook 11 all I needed to do was pop off the bottom cover and remove the write-protect screw from the mainboard, which was helpfully labelled "IO WP SCREW":

dell3181-wp-loc-sm.png

Find a larger version here.

To minimize damage to the laptop finish I highly recommend prying it open using a guitar pick-style opening tool like these.

Flashing firmware

The firmware I used was the appropriate file from MrChromeBox, downloaded and flashed using their ChromeOS Firmware Utility Script in a crosh bash shell.

Installing Linux

After some research, I decided to go against all advice and install Ubuntu 22.04.02, whose updated kernel is just new enough to support MrChromebox's firmware (tried 23.10 first, just to make sure I got the UEFI side of things right). I used Ubuntu's "Startup Disk Creator" (a/k/a USB Creator) to install Ubuntu 22.04.02 on a usb stick and then selected it from the new UEFI menu. During install I was careful to select "Minimal installation", "Download updates while installing Ubuntu", and "Install third-party software". This insured that I'd have latest kernel and firmware, and minimized the amount of bloatware I'd have to remove after setup. After install, I followed my usual practice of removing snapd and personalized the OS to my tastes, installing some of the software on my List of Useful Software.

Post install fixes

With my Ubuntu install the Chromebook blares a loud tone whenever it encounters buffering in rendering video or audio, for example while playing a YouTube video in a web browser. This script was useless (as was the dismissive exception raised when it detects Ubuntu), but it turns out to be a known problem outside of Linux Chromebook circles and easy to fix, at least on Ubuntu. All I had to do was create a file named /etc/modprobe.d/sof.conf with the following text:

# Fix for Ubuntu issue with buffering audio
snd_sof sof_debug=1

None of this stuff is magic, although I often think it's a miracle anything in tech works at all. A reboot makes the change effective.

NOTE: After all this I chose "Ubuntu on Xorg" on my next login, because.

References

https://blog.nanax.fr/post/2018-05-01-chromebook-linux/

https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/

https://dl.dell.com/content/manual51127767-inspiron-3181-service-manual.pdf?language=en-us

https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/dell-chromebook-11/

https://www.reddit.com/r/chromeos/comments/nljy29/where_the_hell_is_the_write_protection_screw/

https://www.google.com/imgres?imgurl=https://content.hwigroup.net/images/products_1920x1080/507153/6/dell-chromebook-11-3189.jpg&imgrefurl=https://nl.hardware.info/laptops.18/dell-chromebook-11-3189.507153&tbnid=DooAg4jlUQnW5M&vet=1&docid=xoaG7ORVxgtjNM&w=1583&h=1080&hl=en-GB&source=sh/x/im

https://docs.chrultrabook.com/docs/firmware/developer-mode.html

https://docs.chrultrabook.com/docs/firmware/write-protect.html

https://docs.chrultrabook.com/docs/firmware/flashing-firmware.html

https://docs.chrultrabook.com/docs/installing/installing-linux.html

https://www.reddit.com/r/Ubuntu/comments/uzp9tn/long_beep_after_few_minutes_playing_a_video_or/ thesofproject/sof#4662 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment