For all of my life I have used desktop workstations for my computing needs and I have always built them up by parts to get the best performance and value.

This mixed well with my lifestyle. As a self employed course instructor and consultant, a majority of my work is done remotely. I consider this my home base and my source of income as well as entertainment.

I didn’t have a need for a portable computing device, or so I thought…

In case you need to be convinced at how much value one could add to your life, here’s a few quality of life improvements I gained immediately:

It encourages me to read more because now I can read at night from either my bed or a comfortable chair close to my bed

Being able to move away from my standing desk workstation helps sparks creativity (working outside and from different locations)

Productivity has gone way up because of being able to work at different locations (I’ll be writing another post about this in the future)

Every few weeks I take a 90min train ride to NYC for tech meetups, now I have something to do and 3 hours round is a lot of time

That’s the only set up I can run which lets me use high quality screen and audio recording software while giving me the ability to spend my time in a Linux environment while still having access to native Windows apps and games.

Ok, enough about that. My point is, I want my portable computing device to feel very snappy because I don’t want to constantly think “well, I should really go back to my workstation because it’s too slow to work here”.

Now That I Know What I Want, It’s Time to Research Laptops

I spent the entire morning researching laptops by reading review sites, watching Youtube videos and scouring the web to get opinions from other software developers who were looking to get a laptop.

After nearly half a day of researching laptops I came to the conclusion that all of them priced in the $300-350 range were not that great.

They suffered from 1 of a few problems, such as having a really low end CPU, only 2GB of RAM, no SSD, poor displays, poor touchpads and so on.

If you want to jump up to the $550+ price range you can find high quality components such as an i5 with 8GB of RAM and a 256GB SSD.

crouton sets up a Chroot to run Linux alongside ChromeOS which is Chromebook’s native OS. That sounded cool but I read a bunch of stories about how things just didn’t work quite right, and also for a machine that might be resource constrained I wanted to ensure I found a native solution.

Then I found GalliumOS. Their slogan really connected me with, which is “A fast and lightweight Linux distro for ChromeOS devices.”.

Hell yes, that’s exactly what I want. Then I learned it was based on xubuntu which is what I have been using for years and it was like a match made in heaven.

It’s almost too good to be true right? What’s the catch?

Chromebook Model Recommendation

Most Chromebooks that I saw only had 16-32GB SSDs, or larger non-SSD drives. That really puts the brakes on your plan to install Linux and set up a proper development environment.

There’s really no way to accomplish everything I wanted with a 16-32GB SSD. I came across the Toshiba Chromebook 2 CB35 (2015) and it looked like the perfect device except it only had a 16GB SSD.

Luckily for me I learned that you can just take the thing apart and put in a new SSD card without too much of a hassle.

Someone who was involved with the GalliumOS project pointed me to a specific SSD expansion card that was compatible with the Toshiba linked above as well as a few other Chromebooks. $50 for a 128GB SSD sounds good to me!

So now for about $350 you can have an excellent Chromebook running GalliumOS and have plenty of disk space. If you really want more than 128GB you can always buy the other capacities for a bit more money.

If you want a different Chromebook then make sure you check out the hardware compatibility guide on GalliumOS’ site because not all Chromebooks will work.

The rest of this article will be based around the Toshiba linked above but most of the advice can be followed with other Chromebooks that have a Broadwell based CPU.

The next section will explain why I chose the Toshiba Chromebook 2 CB35 (2015).

Review of the Toshiba Chromebook 2 CB35 (2015)

First, let’s go over its main specs:

1.7 GHz Celeron 3215U (or an i3 for $45 more)

4GB of RAM

13.3” 1920x1080 IPS display (165 PPI)

Full size SD card

2.9 pounds

I don’t know about you, but having used an i5 3.2GHz workstation I was skeptical that a Celeron processor that’s not even an i3 would be able to do what I wanted.

While I suffer from an illness called cheapfuck-atitis, I am willing to spend money when it makes sense and after I talked to a few developers who were using Chromebooks with a similar CPU I was feeling better about it.

I went into this thinking I’d get the 3215U and if it happens to not be good enough then I’d return it and try the i3. Spoiler alert: the 3215U is awesome!

Testing Out a Realistic Work Load

Since I’m a developer and you’re probably a developer or into tech at the very least, let me tell you what I’ve run on it to test the performance:

Google Chrome with 6 tabs open

Youtube playing back a video (streaming music is important!)

Docker daemon

Dockerized Rails app with 28 gems

Dockerized Sidekiq background work

Dockerized Action Cable server

Dockerized Postgres and Redis

Sublime Text 3 with about 30 plugins

2 terminal windows, one with 2 tabs and the other with 3

1 PDF open with the native PDF viewer

A 2nd workspace with another Google Chrome window and 3 more tabs

Result? If I don’t touch anything the CPU idles at about 14% and the memory usage sits at about 60% used. Not only that, it was silent too, awesome!

If I goto Chrome and start browsing sites, it’s extremely snappy and pages load nearly instantly. The Rails application reloads on the order of milliseconds when I make change codes. Coding feels very snappy too – there’s no hitches.

The only time I noticeably saw worse performance over the workstation was when native gem extensions had to be compiled. They took a little longer than my workstation (damn you nokogiri!) but that’s a rare event for me.

If you’re doing a ton of compiling on a regular basis you may want to upgrade to the i3 model, but it might be worth testing this one first.

Let’s Talk About the Display

One of the main features of this Chromebook is the display. I definitely don’t want to develop with less than 1920x1080 screen resolution, it makes me feel claustrophobic.

I was a little concerned about 1080p on a 13.3” screen because my primary monitor was 21.5” at the same resolution. The smaller your screen is, the higher the pixels per inch will be, which means things will become smaller and smaller.

As soon as it booted up, all of my worries went away. If you have decent vision then you won’t have any problem at this size. I would describe it as very comfortable to read everything at its native size from a reasonable “laptop distance” but I wouldn’t mind things being a touch bigger.

In other words, for my brain 15” is probably the optimal 1080p resolution but I have no real complaints or worries with this 13.3” screen. There’s no eye strain.

I’m really sensitive to these things usually. Back in the day I used to play competitive Quake 3 on a CRT at 120hz and I was one of those weirdos who could tell the difference between 90hz and 120hz.

Oh and don’t worry, if you do need to scale it because the text is too small then it’s no problem. The UI can be scaled with very minor display issues.

How’s the Keyboard and Touchpad?

The next most important pieces are the keyboard and touchpad. If either of them suck it could be a deal breaker. Sure you could use external devices but I’m looking for a convenient device to use in a portable way.

With cosmetics out of the way, let’s get into the important things. I’m actually writing this blog post on it and other than there being no delete key I haven’t had any issues adjusting to the keyboard.

Obviously my words per minute are slower since it’s a brand new layout for me but I don’t feel like I’m battling it, or getting hung up. The keys feel reasonably responsive but I’m not one of those crazy people who can type at 140 WPM.

I average at about 80 WPM and haven’t used a high end mechanical keyboard to compare it to. All I know is, I’m happy with this keyboard so far.

The touchpad seems pretty good. I don’t have a lot of experience with laptops in general so I don’t know well it fares against let’s say a MacBook Pro.

All I know is, it’s 1 surface and it has a click zone on the bottom that pops loudly to register mouse clicks but it’s optional. You can tap anywhere you want to register a click and the software lets you tune various sensitivities.

It also supports 2 finger scrolling and you can even swipe left/right to navigate pages in a browser. I’m not a touchpad wizard so there’s probably other gestures that you can do which I haven’t discovered yet.

Since I’m a rookie with touchpads I’m definitely struggling a bit but I feel like this is my fault, not a fault with the device. I could see myself getting used to it eventually.

What’s the Deal With the Webcam and Microphone?

Honestly, way better than I thought. I used the built in microphone on it and my friend told me it sounded really good.

He’s an audiophile and audio is very important to me too. I spent about $115 on a Blue Yeti Microphone which is what I use for all of my course recording and he told me this microphone can hang with it.

It sounds different than the Yeti for sure, but it’s not so much that it sounds a lot worse. It just sounds different.

I won’t be recording my courses on this Chromebook’s microphone but it’s good to know that I can do a Google Hangouts with high quality video and audio.

This is one of those things where I didn’t really pay attention to these components before purchasing it but I’m pleasantly surprised at the outcome.

What Type of Ports Does It Have?

It has 1x USB 3.0 port and 2x USB 2.0 ports along with a proper 3.5mm headphone jack and an HDMI port. It also packs a full size SD slot. That’s good enough for me.

It’s missing a USB-c port which kind of stinks but it’s not a deal breaker.

Network Speed and Speaker Quality

The wireless network device is rock solid. My ISP gives me 30MB down and 5MB up and in a speed test I was getting identical numbers to my wired i5 workstation.

I did a lot of tests for packet loss too and it passes all tests with flying colors.

The speakers are probably the weakest link of everything, but you’ll have your own headphones or earbuds anyways so it’s a non-issue.

I mean, it plays sounds but the quality is pretty poor. The speakers are driven by Skull Candy, which aren’t really well known for high end audio.

Overall Build Quality?

I don’t know. As long as you don’t abuse it, I think it will be fine. It’s a little bit flimsy but it’s not so fragile that I would feel afraid to actually use it.

To put things into perspective, I would feel very comfortable putting it into my backpack in a laptop sleeve and taking trips with it. In fact, I already rode a bike with it once (inside of the backpack sleeve) and had no problems.

If I dropped it from about head high then I’m pretty certain it would explode into 85 qaudrillion pieces. Protip: don’t drop it.

How to Swap in an SSD Card to Your Chromebook

If you plan on installing GalliumOS then you’ll definitely want to replace the tiny 16GB SSD with something larger.

The first thing you’ll want to do is buy the SSD expansion card. This will completely replace the 16GB SSD inside of the Toshiba.

Making a Recovery USB Stick

The next thing you’ll want to do is unbox your Toshiba and turn it on without making any modifications. Since we’re going to be replacing the stock SSD, you’ll want to transfer a bootable copy of ChromeOS over to a USB stick.

This step is only needed if you plan to dual boot with ChromeOS, which is what I highly recommend. It’s worth giving up 6GB or so of your drive for ChromeOS just to have it around.

Grab a USB stick with 4GB+ of available storage and plug it into the Toshiba after booting into ChromeOS

Follow the instructions and once the recovery USB stick is good to go, then shut down and unplug the Toshiba

Installing the Custom SSD

Flip the Chromebook over

Unscrew the 8 visible screws on the back

Take a razer or something sharp / thin and pop out the 2 rubber stoppers that are furthest away from the vents (they are factory sealed with glue and will take force to rip them out, just try not to rip them in half, they will sit back perfectly after this so don’t worry)

Unscrew the 2 hidden secret screws that Toshiba decided to troll you with

Look for 2 small card slots next to each other and connected by yellow tape. One is the SSD and the one with the wires coming out is the wireless adapter

Unscrew the small black screw for the SSD card and gently slide it out

Insert the new SSD card (it can only go in 1 way)

Screw in the new SSD card

Make a Judgment Call on Dual Booting

If you plan to dual boot then you can seal things back up, so go do that now.

If you want to install GalliumOS without dual booting you will need to remove a special write protect screw which will allow a custom firmware build to write settings to a chip that is normally read only.

I didn’t do this personally, because if you dual boot you won’t have to use a custom firmware build with this exact Toshiba model.

How to Install GalliumOS So You Can Run Linux Natively on a Chromebook

At this point you should have your new SSD card in. Place the recovery USB stick in and turn the machine back on. Then enter in your information again if it asks.

Entering Developer Mode

In order to install GalliumOS you’re going to have to enable developer mode which will give you root access to your Chromebook.

To enter this mode with the Toshiba or other Broadwell based Chromebooks:

Turn the Chromebook off

Hold down ESC + F3 (the refresh key) and press the Power button

The machine will boot into a scary looking white screen (don’t panic!)

Press CTRL+D at the white recovery screen

Press Enter on the “To turn OS verification OFF, press ENTER” screen

The machine will reboot and you’ll see a “OS verification is OFF” white screen. This is what you will always see when you turn on your device. Now we’re expected to boot into a specific OS. Right now our only choice is ChromeOS.

Press CTRL+D to boot into ChromeOS

Configure your wifi and other settings

Installing GalliumOS

Drop into a Virtual Terminal by pressing CTRL+ALT+F2 (top right arrow). If nothing happens then you’re not in developer mode, repeat steps 2-5 from above

That would ensure your new user belongs to the correct groups. In this case it would match the default chrx user’s groups. At this point you would log out and then log back in and you would be free to delete the chrx user.

For Future Reference When Turning on Your Chromebook

If you turn off your Chromebook and boot it up, you’ll always be presented with the white screen. Think of this as your boot menu.

Press CTRL+L to boot into GalliumOS or CTRL+D to boot into ChromeOS.

If you’re wondering why CTRL+L was chosen and not CTRL+G to better describe GalliumOS, it’s not up to GalliumOS to pick this hotkey. It’s something provided by the firmware and CTRL+L stands for legacy firmware.

IMPORTANT: If Your Battery Ever Drains to 0%, Read This

If your battery ever drains to 0% then a certain firmware setting will be forgotten and it will prevent your Chromebook from being able to boot into GalliumOS.

You might be thinking, “omg that’s horrible” and it kind of is but there’s 2 things to understand first:

Firstly, there’s multiple stages of 0%. This firmware setting will only get lost when the battery is completely drained. This might be a full day or 2 after the charger shows 0%. Think of it like your car’s gas tank running on empty for a while.

Secondly, it’s not a permanent issue, so don’t freak out if you ever fully drain to 0%, however do understand that you will need perform a few steps to fix the issue.

Fortunately it doesn’t take long and since you should rarely hit 0%, you won’t have to worry about it too often. To fix the issue:

Boot into ChromeOS (CTRL+D at the white screen)

Drop into a Virtual Terminal by pressing CTRL+ALT+F2 (top right arrow)

Login as chronos with a blank password

Run sudo crossystem dev_boot_legacy=1

Reboot the system and now you’ll be able to boot into GalliumOS with CTRL+L

These steps could be bypassed if you removed the write protected screw when installing your new SSD, but it’s not really a big deal to do it this way.

Let Me Know What You Think About GalliumOS

I’d be curious to hear what you think about GalliumOS or the idea of using a Chromebook to run Linux natively. Leave your comments below.

Never Miss a Tip, Trick or Tutorial

Email Address

Like you, I'm super protective of my inbox, so don't worry about getting spammed. You can expect a few emails per month (at most), and you can 1-click unsubscribe at any time. See what else you'll get too.