Moving to Chromebox by Mark Stone
January 2015. Today there's not a single device in our household running an operating system made by either Apple or Microsoft. Our tally looks something like this: 4 devices running Android (2 phones, 2 tablets); 3 devices running Linux (1 server, 1 desktop, 1 laptop); 5 devices running Chrome OS (1 Chromecast, 3 laptops, and 1 desktop), making Chrome OS the most popular operating system in our home. Among these, the latest addition to our collection is a Chromebox, a new desktop computer running Chrome OS and, after some fiddling, Linux.
Google's Chrome OS has been around for about 5 years now. It's a stripped down version of the Linux operating system optimized to run the Chrome web browser with limited hardware support and an emphasis on security. The primary intent of Chrome OS is to be the operating system for Chromebooks, low cost laptops that deliver a simple, secure and performant experience of the Chrome browser. Chromebooks have been available for about 4 years.
Over the last 18 months Chromebooks have become the best selling laptops, growing in sales and market share in a market segment that is otherwise stagnant or in decline. While that may seem surprising for a product that is nothing more than a dedicated web browsing device, several trends have converged to make enable Chromebooks' success:
- Ubiquitous wireless coverage. Wifi is the norm for home network connections now, and many public gathering places from Starbucks to MacDonalds have free wifi. On the cellular side, 4G/LTE coverage is now broad enough and cheap enough that most people who want to have constant coverage do have it.
- Web dominance for user attention. Email, messaging, and social media account for the majority of time users spend with a computing devices, and all of these can easily be accomplished from a browser. In fact dedicated desktop applications for any of these are generally inferior.
- Google Drive. Google Docs, Google Sheets, and Google Slides have improved by leaps and bounds in recent years, making these a fine choice for personal use.
- Streaming media. Besides social media, the fastest growing application area for our attention is streaming media. Netflix, YouTube, Hulu, and Amazon Prime Video all work just fine from a browser. Given that Chromebooks come with HDMI output standard, and given that Chrome tabs can be cast to a TV via a Chromecast device, Chromebooks live harmoniously in the streaming media world.
- Update hell. I do believe that over the years Microsoft has made Windows more secure, which is a real feat given the ever increasing variety of threats and the sheer number of malicious users out there. But on Windows that security comes at a cost of constantly issued updates, not just from Microsoft, but also from application vendors like Adobe, and from security vendors who offer virus and malware protection. Even Apple users are not immune from some of the perpetual update problem. Chromebooks are a quiet sanctuary amidst this storm.
Finally Google and its partners have made sure that these devices are available at unbeatable prices. I had already adopted the frugal attitude that I would never spend more than $500 on any computing device (cell phones included). Thanks to Google I'm revising that price point downward. The first Chromebook we bought was a Samsung for which we paid $249. The most recent one we bought was an Acer c710 with 4 gigs of RAM; double what the Samsung has. I got it refurbished on eBay for $160. Conventional laptop vendors simply cannot compete with that kind of price - performance offering.
A "vanilla" Chromebook does have some limitations. I do a bit of hobbyist programming in my spare time, and I need a device that will run a development environment, compiler, and executables for whatever I'm playing around with (Node.js currently). I'm willing to relegate most gaming to consoles, but there are a few games I'd like to be able to run on a PC. Right now Minecraft is a must. And finally there are peripherals that a computer needs to be able to talk to, like our printer/scanner.
So I've hesitated to get rid of our last desktop computer, a dual boot Windows 7 / Linux machine. With a Celeron single core processor and only 2 gigs of RAM, it has been showing its age and frankly has never run Windows 7 at better than a sluggish pace. But it does talk to the printer, run a few aging games, and even run Minecraft, albeit feebly.
Now, the Linux crowd is always looking for new hardware on which Linux can run. Given that Chrome OS is based on a Linux kernel, Chromebooks have been an attractive target for this crowd. Of the various approaches to Linux on Chromebooks the one that has appealed to me is a project called Crouton. Crouton leverages the fact that Chrome OS is really a modified version of Linux, depending on Linux for hardware support and replacing the usual Linux UI components with direct support for the Chrome browser. Crouton uses Linux's chroot functionality to run in a limited file system space with constrained permissions so as not to interfere with any of the Chrome OS configuration of your device, but to then the usual Linux U components within that contained space. There's a slight performance hit because all of the Chrome OS UI is still in memory in the background, and there are some network quirks since the Chrome OS network settings basically constitute a firewall / proxy between Crouton and the rest of the network, but otherwise Crouton is a full fledged Linux experience.
I first tried out Crouton on a Samsung Chromebook. I encountered two limitations. First, with only 2 Gigs of RAM the Samsung was just not as performant running Linux as I'd like. I've concluded that 4 Gigs is probably the minimum you want for Linux right now. Sadly, the RAM in the Samsung Chromebook cannot be upgraded. Don't get me wrong; as a Chrome OS device this model is still a bargain and reasonably performant. It achieves that performance by running on the leaner ARM hardware, as opposed to Intel-based.
Which leads me to my second limitation. While Linux runs capably on ARM, the ARM kernel has some differences. In general, ARM lags behind; cutting edge kernel features show up on Intel first. More specifically, driver support will not be as great on ARM. In my case I found that the Java graphics library needed to run Minecraft relied on hardware support that was not present on ARM. Minecraft simply wouldn't run.
I looked around for a different Chromebook. The Acer c7xx series met my requirements. The hardware was Intel-based, and models either came with 4 Gigs of RAM or at least with a SIMM slot that would enable a RAM upgrade. I found a refurbished c710 with 4 Gigs of RAM on eBay for $160, and it has become my mainstay computer.
Again, I put Crouton on it, and this time I was very happy with the results. I run the XFCE desktop. I can run Minecraft. I run a full Node.js development environment for my hobbyist programming. The performance isn't snappy, but it isn't sluggish either, and it is a noticable step up from the Samsung Chromebook. Honestly, it's a lot of computer for $160. More importantly, this experiment proved to me that a Chromebox really could be a complete replacement for our desktop computer.
I started evaluating Chromebox options, this time with a very clear idea of what I wanted. I selected the Asus Chromebox M004U. Others have provided a detailed review, but here are the basics:
- Celeron dual core 1.4GHz processor
- 2 Gigs of RAM
- 2 SIMM slots
- 16 GB SSD drive
- 4 USB ports
- SD card slot
- DisplayPort and HDMI out
- Audio jack
- Ethernet port, Bluetooth 4, and 802.11 b/g/n wireless
I got mine from Amazon for $140. I also picked up an 8 gig SIMM to replace the meager 2 gigs, and an HDMI-VGA converter, since I still have a perfectly serviceable flat screen VGA monitor. This gives me a very capable desktop computer for about $200.
Before powering on for the first time I upgraded the RAM. To do this:
- On the base of the device are four soft rubber foot pads that can easily be pried off (see picture).
- Beneath these foot pads are recessed screws that hold the base plate to the cover.
- Remove the screws, and lift the cover off the base plate.
- Inside are two standard laptop SIMM slots, one holding the default 2 Gig RAM SIMM that the Chromebox ships with (see picture).
- Remove the default SIMM and replace with your upgrade.
- Put the cover back on the base plate, screw the screws back in, and press the foot pads back into place.
Setup was simple; basically just plug in the mouse, keyboard, and printer into the USB ports, connect the monitor via HDMI out and the VGA converter, and power on. My monitor also has a mounting bracket on the back which the Chromebox fits nicely (see picture).
In order to install Crouton I needed access to a root shell, which requires me to put the Chromebox in developer mode. The steps to get into developer mode vary slightly depending on hardware, but for the Asus you do the following:
- Directly above the lock slot (see picture) there is a small pinhole. With a paper clip press and hold down the button at the bottom of this hole; this is the recovery button.
- With the recovery button still pressed down, power on the Chromebox, then release the recovery button.
- This will bring you to the Recovery Mode screen. Although there's no prompt to tell you, you can enter Developer Mode here by pressing Ctrl-D.
- Confirm Developer Mode by pressing the recovery button again.
Now that you're in developer mode, you're ready to install Crouton. Details are on the Crouton Github page, but essentially you do the following:
- Download the Crouton script from https://goo.gl/fd3zc.
- Open a shell in Chrome by typing Ctrl-Alt-D.
- Make it a full Bash shell by typing "shell" at the command prompt.
- Change to your home directory by typing "cd" (and hit Enter).
- Change to the Downloads directory by typing "cd Downloads" (and hit Enter).
- Run the Crouton script by typing "sudo sh crouton -t xfce" (and hit Enter).
This script will take a few minutes to run, depending on the speed of your Internet connection, as it downloads and installs all the needed Ubuntu Linux packages. Once it has completed, you can switch from Chrome OS to Ubuntu any time with these steps:
- Open a shell in Chrome by typing Ctrl-Alt-D.
- Make it a full Bash shell by typing "shell" at the command prompt.
- Start Ubuntu by typing "sudo startxfce4" (and hit Enter).
Some alternatives to consider: Crouton also supports Unity as a desktop environment; I just happen to prefer the lighter weight XFCE. Going a step further, a full fledged alternative to Crouton is Chrubuntu, which runs Ubuntu Linux in a more traditional dual boot mode. If you go this route, you'll probably want more than the 16 GB SSD that the Asus Chromebox ships with. There's an excellent guide to replacing the drive and installing Chrubuntu on Roger Stringer's blog.
Once you have Ubuntu running on your Chromebook, you can install packages in the normal manner, and you should expect peripheral devices to be supported as normal. I discovered a couple of Crouton-specific subtleties to be aware of.
I have an older HP all-in-one printer / scanner that's well supported under Linux. The standard HP tools
worked well for configuration and setup. However, I did have to take the extra step of adding myself to the
printer group to get the right permissions. The requisite command is "sudo adduser
Also, remember that with Crouton you still have Chrome OS running in the background. This affects networking, because Crouton is using Chrome OS, in effect, as a firewall between it and the external network. This has no visible effect on client network operations, but if you want to use any server features of Linux then you'll need to take some extra steps (this is most likely to matter if you want to be able to ssh into your Chromebox). The Crouton Github site has a detailed description of the network changes you'll need to make.
Overall right now Chrome devices are offering unprecedented value in terms of price / performance ratio. Further, these devices are guaranteed to be hardware-compatible with the Linux kernel since Chrome OS is built on top of Linux. The conclusion I've reached is that all my future Linux laptops will start from Chromebooks, and all my future Linux desktops will start from Chromeboxes. At this point I see no need for a Microsoft or Apple operating system in our household.