Installing Debian 12 on a Samsung Chromebook 3



Last Updated:

linux

neofetch

A while back my girlfriend was going to recycle her old Samsung Chromebook 3 that she didn’t need anymore after getting a regular Windows laptop. Before she could, I offered to take it. I had recently heard of the Chrultrabook project, and thought installing Linux on it to turn it into a regular super-portable laptop could be a fun project. Flash forward many months later, I finally got around to doing this and have a working Samsung Chromebook 3 with Debian 12 installed on it.

Veronica Explained also uploaded a great video on the topic which sparked my interest again.

If you are going to do this I highly recommend you check out both Mr Chromebox’s website at mrchromebox.tech and the Chrultrabook docs at docs.chrultrabook.com. Mr Chromebox is one of the main figures in Chromebook-hacking world, and the Chrultrabook is the name for the community that has formed around putting alternative OSes (not just Linux, Windows and even macOS too!) on chromebooks, making them essentially regular ultrabooks (chrome + ultrabook = chrultrabook). If you have questions they also have a forum at forum.chrultrabook.com.

Disclaimer: This involves flashing new firmware which always has the potential brick your device. If you want to do this as well please make sure you understand this risk!

Getting Started

Now, there are other ways to get Linux or Linux tools to work on your Chromebook without flashing on new firmware and wiping ChromeOS completely, but I won’t be talking about any of that here. My goal is to totally remove ChromeOS and essential turn this Chromebook into a regular UEFI laptop running GNU/Linux as the operating system.

First things first, to get started you have to enable Developer Mode on your Chromebook. Developer Mode gives you root access and enables some other features that aren’t very important for what we’re trying to do.

Be warned, enabling Developer Mode will wipe all the data currently on your Chromebook for security reasons. Backup anything you want to keep.

First, you need to boot into recovery mode, which you can do by pressing ESC+Refresh+Power. Once you are in recovery mode, press CTRL+D to enable developer mode. Accept the warning and all your local data will be deleted.

recovery mode

developer mode

Once you reboot, you can now enter the developer mode shell by pressing CTRL+ALT+F2 on the login screen. You should now be greeted with a familiar Unix shell login screen. Go ahead and log into the default user chronos. There is no password set. The default shell is bash and user chronos has sudo privileges.

developer console

Now is a good time to disable write protection so we can flash new firmware on our device.

Disabling Write Protection (WP)

The process to disable write protect varies depending on your Chromebook model. This could be removing a screw on the motherboard, unplugging the battery, or needing a jumper cable. You can determine what you need to do by looking at the supported device table on the Chrultrabook documentation or MrChromebox’s website (Chrultrabook docs link).

For my device, a Samsung Chromebook 3, I need to remove a screw on the motherboard.

Unfortunately removing the WP screw is slightly annoying on this Chromebook; it is located on the back of the motherboard, meaning you have to take it out and flip it over to access it.

If you’ve worked on laptops before though this shouldn’t be too difficult, after taking off the bottom cover the motherboard is easy to access, then its just more unscrewing and unplugging cables. If have not thought this might make you a bit uneasy.

Before you start working the motherboard, and this applies to any laptop you might be taking apart, you should always disconnect the battery first. Trust me, I have blown a backlight fuse on a different laptop before by not taking this seriously, and now disconnecting the battery is always the very first thing I do.

This blog post help me identity and remove the write protect screw, be sure to check it out.

insides

motherboard1

motherboard2

screw

Look for the screw with the arrow pointing at it. This is WP screw.

After removing the screw, there might be some paste left on around the screw hole. Be sure to remove this paste too!. After I removed the WP screw and booted back into the Chromebook, I still could not disable WP. I was very confused but after some research found a redditor with the same problem and found out that I also needed to remove the leftover paste. So I opened up the Chromebook again, carefully scraped off the gray paste around the screw hole, booted back into my Chromebook and was able to disable WP successfully!

After removing the screw and paste, get back into the developer terminal and execute flashrom --wp-disable to disable write protect. Confirm it has been disabled with flashroom --wp-status.

Flashing new Firmware

Next we can move on to downloading MrChromebox’s firmware utility scripts to install UEFI firmware. These utility scripts are open-source graciously provided by MrChromebox for updating, installing, and configuring firmware on your Chromebook. What we are interested in for this project though is his script to install UEFI firmware.

In the developer mode shell (not crosh!!!), download and run his script with the following commands:

curl -LO mrchromebox.tech/firmware-util.sh

sudo bash firmware-util.sh

Do not run as scripts as the root user directly! Use sudo!

script

The next steps should be pretty self-explanatory. The script will give you some stats about your device and options you want to take. If you disabled WP correctly, you should be able to select the option to Install/Update UEFI firmware, which is what we want.

Read through the warning prompts carefully and accept. Make sure your device is connected to a charger and under no circumstances interrupt the device while it is flashing new firmware. The process for me was pretty painless and ran without hiccups but there is still always risk to your device doing this if all doesn’t go as planned.

You should be given the option to backup the current ChromeOS firmware to a flash drive. I recommend you do this so you can recover in case something goes wrong while flashing or if in the future you want to put ChromeOS back on your device (if you were to sell it for example).

coreboot

After the flashing is finished and if you didn’t get any errors, go ahead and reboot your device. Soon you should be greeted by the Coreboot rabbit logo. Do not interrupt the device on first boot. First boot might also take a while so be patient. For my device it was pretty fast though.

Congrats! If everything has gone well so far Coreboot should try to boot into your device’s drive. This will of course fail however since we have rendered ChromeOS unbootable by flashing UEFI. You might get an error, but my device simple just got hung trying to boot into the disk.

Installing Debian

boot menu

boot menu 2

Now you can install Debian (or any other operating system of your choosing) like on any other UEFI computer! Plug in your bootable USB and press ESC once Coreboot loads. Select your USB in external boot menu and install your OS.

debian installer

debian installing

There were no hiccups installing Debian on this Chromebook for me. If you watched Veronica’s video you’ll see she had this weird endless reboot issue due to a bug in grub, but I did not have any problem like that.

Loading into the OS, surprisingly things were not totally broken. Audio worked. I initially chose MATE as my desktop environment, but was getting this weird screen flashing glitch where the screen would randomly get very dark then very bright again. I thought it could be an X specific issue so I tried Sway and did not get the same graphical glitch. Rather than try and debug the issue with MATE I opted to just uninstall MATE and use Sway instead since that worked out of the book.

When using Sway and I assume any other window manager the search key (where caps lock would be on a normal laptop) will be your default mod key.

sway

And there you have it, a Samsung Chromebook converted to a regular lightweight Linux laptop! I’m sure there are more issues I have not uncovered yet, I haven’t used this thing very heavily, but if I find anything major I’ll come back and edit this post. For general post-install tips checkout the chrultrabook docs.