Blog Posts

17 Aug 2014 » Arch Linux on the Acer C720 Chromebook: Part 2

With Arch Linux installed, it took very little time to get my configuration to the way that I had it on my old Asus eeePC. That said, I didn't have a fairly complicated setup to begin with.

Configuration

One of the biggest reasons I chose the Acer C720, over possibly one of Acer or Asus' budget laptops with similar specs, was the touted battery life of the machine, that usually clocks in around 7-8 hours on a full charge. Fortunately, this can easily be achieved in Arch Linux with a Power Management service. I usually use TLP for it's focus on laptops, and sane defaults. For the C720 I didn't even have to make any changes to TLP's default configuration, and I can easily get the advertised run time, unless I'm running an unusally large workload.

One of the other differences Chromebooks have from their Laptop/Ultrabook brethren, are their non-standard keyboards. For starters, the top row has only 10 function keys, meant for browser functions and volume/brightness adjustments. The C720 in particular also lacks dedicated Pg Up/Down, Delete, Insert, Home, and End buttons, in order to save space on it's already small keyboard, something not unusal for laptops of it's size, but it also does not include Fn hardcoded key combos to make up for this, unlike most machines that lack these buttons. Fortunately, the last difference is more of a positive change; that change being the complete removal of the Caps Lock button, and replacing it with a dedicated "search" key. In Chrome OS this would pull up a search box, but on Arch Linux, it's recognized as the Super/Windows key.

keyboard

(Image provided by Ars Technica)

This atypical keyboard setup means that most users, including me, prefer to make some modifications to the default configuration. In Arch Linux, the "media keys" act as normal function keys (in Chrome OS they are technically function keys too, just remapped to perform the media functions), but I wanted to have some of them perform their media key functions instead. Since I don't use a DE that would automatically map these, I had to do a bit of extra configuration. Fortunately, Simple x hotkey daemon (sxhkd) makes this very simple to do. The setup I wanted only needed a slight modification from the one shown in the Acer C720 Arch Wiki page for it to work with my i3 configuration.

~/.config/sxhkd/sxhkdrc

# toggle fullscreen in i3
@F4
  xte 'keydown Alt_L' 'key f' 'keyup Alt_L'

#toggle container layout in i3
@F5
  xte 'keydown Alt_L' 'key x' 'keyup Alt_L'

{F6,F7}
  xbacklight -{dec,inc} 10

F8
  amixer set Master toggle

{F9,F10}
  amixer set Master 5{-,+} unmute

Adding in the missing Page Up/Down, Delete, etc., functionality however has been much trickier than I expected, and I currently don't have it working. When using sxhkd to execute an xte command for Page Up/Down, X doesn't seem to register the action, and nothing happens. This is most likely due to how xte works, since xkvbd is able to properly emulate a Page Up/Down event at least in graphical apps (it does not work in my terminal). If or when I figure out a workaround, I will write about it.

Since I only have 32GB of space on the SSD, I settled on a 32GB Sandisk Cruzer Fit USB flash drive, mainly for it's very small form factor. Since it protrudes only a cm or so, I can keep it in the machine at all times. To make it more easily accessible from within Arch, I installed Lightweight Device Mounter (ldm) to automount it at boot. My main reason for choosing ldm was the fact that it can use user specified mount points, since I wanted this drive to be directly accessible from my /home directory. I could have also used systemd's automount capabilities, but with ldm I could instead have any arbitrary flash drive or external HDD I use also be accessible from my /home directory, which I found to be a more attractive prospect.

The only real downside of keeping the flash drive plugged in in at all times is that SeaBIOS automatically tries to boot usb drives before the SSD, so if I have it in, in addition to having to do Ctrl + l to start SeaBIOS, I also need to press Esc and select the SSD instead of the USB drive. From what I have read, this is something that has to be configured in SeaBIOS at compile time, and then reflashed, an not an option that I can toggle. A minor annoyance, but still an annoyance none the less.

As I mentioned earlier, I do not use a Desktop Environment, or a display manager for my GUI needs. I currently use i3, started from a TTY, more out of preference than necessity, since other have reported GNOME and KDE running happily on this machine. Since most of the time my workflow consists of Firefox, and a terminal window with tmux running, I so rarely ever run into an issue with only having 2GB of RAM, that I don't even have any sort of swap enabled.

i3wm

In the 2 months I've owned this machine, I have had a largely positive experience running Arch Linux on it. Despite the inial hurdles of getting everything up and running, the Acer C720 makes a fantastic Linux machine, all things considered.

permalink

15 Aug 2014 » Comments

What's that sound? That's the sound of backpedaling! I've decided to add a commenting system for any lost souls who find this place and for some reason want to leave a comment. The section can be found in the permalink at the bottom of a post, or by navigating to a post from the archive.

Instead of Disqus, I found a different service called muut, that provides a similar service of embeddable comment sections, via javascript. While Disqus is much more ubiquitous, muut looks and feels much cleaner on my pages, and doesn't crowd up my code as much as Disqus does. Muut also has other neat (but unnecessary) features like real time commenting and a universal comment feed for moderation, but as a plus they do seem fairly commited to user privacy.

Feel free to leave a comment, so that I know everything works! Or that anyone actually reads any of these posts.

permalink

14 Aug 2014 » Arch Linux on the Acer C720 Chromebook: Part 1

Back in June, I wrote about my experiences with my then new Acer C720 Chromebook meant to replace my aging Asus eeePC. While Chrome OS turned out to be much more robust that initially expected thanks to the Crouton project, I still needed more functionality and control over my machine. Naturally, I wanted to use Arch Linux on it, as I had been doing on my other machines since I started using it a few years ago. Fortunately, due to the low cost nature of Chromebooks, most ship with fairly standard hardware on the inside, making them largely comaptible with most Linux distros. Arch Linux was no exception to this, but unfortunately, not everything works out of the box, and it requires patience and proactivity on the user's part.

Installation

I've mentioned the unbelievably helpful Arch Linux Wiki in the past, and once again, it was a life saver in helping get Arch up and running on my C720. Right off the bat one of the biggest differences from using a Chromebook is that they use Coreboot instead of a traditional BIOS to boot the system. As far as I know, nobody as successfully reported getting a standard Linux disto to boot from a Chromebook's Coreboot, but fortunately Google was nice enough to include SeaBIOS to use, instead. To use it, one needs to have the Chromebook in Developer Mode, and press Ctrl + l at the "Scary Warning Screen". This key combo needs to be done every time one boots up the machine, unless the machine's write-protect screw is removed and SeaBIOS is set as the default boot option. This alone is the biggest reason I would not recommend that most people attempt to run Linux on this machine, unless they're willing to deal with this admittedly minor annoyance.

While the actual installation procedure for Arch Linux itself didn't require any special modifications, other than needing to use Grub instead of syslinux[1], getting the 64-bit version of the installed working required a bit more work than the 32-bit version. But hey, this is Arch Linux, and ideally I should never have to reinstall it again after this. Due to a bug in recent 64-bit Arch Linux install mediums the C720, and other Chromebooks, fail to boot after selecting 64-bit mode. Pending an actual fix there are two workarounds for this, only one of which existed when I did my install. I had to use an older version of the install medium that was confirmed to work with 64-bit mode, and just refresh the developer keys so that pacman would fetch everything properly. The other method is to create a custom install medium that uses Grub instead of syslinux. I personally haven't tried this method, but others have reported it working, so until the installer is fixed, this is a much better method than using an outdated install medium.

Post-Installation

Installing Arch Linux was a breeze since all of the hardware needed during the installation works out of the box. Unfortunately, this leads to two more parts of the machine that still don't work out of the box yet; the touchpad and suspend/resume. For what it's worth, the C720 is not alone in the touchpad issue, since the recent Toshiba, HP, and Dell chromebooks also needed the same fix to get their touchpads working. The issue was that the Chromebook drivers in the Kernel needed to be modified to recognize these devices, and while it appeared to be a relatively small change, the patch only just landed in the Kernel and is on track to be in the 3.17 release. Until then, I have been using parched's linux-mainline-chromebook package in the AUR, which among other things, provides this touchpad patch.

The last true issue with the C720 was, and still is, getting suspend/resume to work properly. On the 3.15 kernel and below, this did not seem to work at all without a number of hacks, but in 3.16, all I needed to do was pass tpm_tis.force=1 as a kernel parameter in Grub. However, thanks to scot14's patch this is no longer needed, and this patch is now included in parched's linux-mainline-chromebook. So far there's no word on the state of suspend/resume in the 3.17 kernel

Much thanks goes to parched and scot14 for their work in helping get these post installation issues worked out.

There are still a couple of other outstanding, most likely not C720 exclusive, issues such as occasional GPU hangs that currently have no real fix yet. However at this point, none of these issues hinder me from using this machine as a daily driver. While I wouldn't recommend it, even to most other Arch Linux users, I would recommend it to anyone looking for an inexpensive and surprisingly powerful Linux netbook, as long as they don't mind getting their hands a bit dirty to get it up and running.

permalink

13 Aug 2014 » I'm Baaa-aaack

As per usual with this blog, real life and school got in the way of maintaining it, and once again it was down for an extended period of time. This time, due to moving to a new house, and not having room to properly set up my Raspberry Pi in an already overcrowded meadia center setup. So with that I've, somewhat sadly, decided to ditch the Raspberry Pi altogether, since it was starting to cause more annoyance than benefit.

Instead I've moved my entire website to GitHub's Pages hosting. The obvious benefits of this are the consistent uptime along with Jekyll integration, allowing me to keep my blog exactly the way it was before. In fact nobody would even know that I had switched hosting if I hadn't said anything. The transition was more or less pretty smooth, barring a couple of DNS related configuration issues. Since all of my webiste files were already on GitHub, all I had to do to change it to a GitHub Pages website was to rename the repository to misterpokeylope.github.io and GitHub's servers did all of the magic. From there, replacing my old A records with a CNAME entry on FreeDNS was all I needed to do to get my domain name to point to the new host, and from there everything was golden.

Now that I have this website up and running for good, I'll probably write some new posts, specifically about using Arch Linux on the Acer C720 Chromebook.

permalink

18 Jun 2014 » Experiences with a Chromebook

For the past few years my main mobile workhorse has been a circa 2010 Asus eeePC netbook, running Arch Linux. I purchased it used a few years back after a increasing need to bring my computer with me to school, and the genuine discomfort of toting around 17-inch Lenovo laptop I use at home. While it's a wonderful machine, it wasn't the most forward thinking of purchases.

Forward to this summer, where I am currently taking Summer Semester classes, and where two of which involve developing Android applications. In the loosest of terms, Eclipse does run on this netbook, but its single core Intel Atom processor, and 1GB of RAM make it a less pleasant experience that I would prefer to have. Unlike most people, I actually don't mind the smaller size of netbooks, but in a "post-netbook" market of Ultrabooks and Tablets, it's not incredibly easy to find a light, cheap, and small laptop.

So, what kind of laptops are light, cheap, and small? Searching would usually always lead me to the same conclusion; Chromebooks. Since their introduction I had usually passed them off as worthless, due to their cloud-based nature, and inability to run anything other than web-related software. However in my search I discovered that most Chromebooks can run full-blown Linux installs with relative ease, a fact that completely reversed my impressions of them.

Among the current crop of Chromebooks, the ones that seemed to consistently stand out were the Acer C720 and the HP Chromebook 11. Despite the praise the HP Chromebook 11 has recieved, the fact that it uses an ARM based processor means it's incompatible with my class workload. So what about the Acer C720?

For around $200-$250 (less than what I paid for my netbook), one gets a Haswell-based dual-core Celeron processor, 2GB of RAM, 16GB/32GB SSD, and a 11.6-inch 1366x786 matte(!!) display. While even 32 GB is a little tight on space, the rest of those specs are more than enough for the kind of work I need to do while I'm not at home.

I ended up going with the 32GB model since I need all the storage I can get. The Android SDK alone takes up more than 5GB on my current Arch Linux install, but the rest of the storage can be supplemented with a SanDisk Cruzer Fit flash drive. While it means I can't take all 200+ GB of the classic Doctor Who episodes I have with me on the go, I don't expect storage space to be much of an issue.

As of writing this I don't have Arch Linux installed yet, due to a busy week of summer classes, but it's given me time to see what it's like to use Chrome OS for my daily computing needs.

Chrome OS Desktop

Since it's release Chrome OS has come a long way, from just being a Chrome browser window, to having the hardware accelerated window manager it uses today. The only applications it has are the Google Chrome browser, a file manager, and a video player, which can be a boon, and a curse. As a result, it's incredibly fast and light, but new functionality only comes from installing web apps from Google's Chrome Web Store.

Fortunately, Chrome OS is really just a Linux distro with a stripped down userland and fancy GUI. It even includes it's own homegrown terminal called crosh, which can be opened with the Ctrl+Alt+t keybinding. From there one can SSH into other machines, and do other basic network diagnostics. But upon enabling Developer mode, one can access a standard Bash shell, by entering in 'shell' in crosh.

This Linux underpinning has lead to some interesting projects, one of the most notable being the crouton project. Without regurgitating what the link already says, crouton installs a full blown Linux distro of your choice into a chroot environment, effectively allowing the user to run Chrome OS and Linux side by side, sharing the system's resources.

Chrome OS Chroot

As a stopgap until I have more time to install Arch, I've installed a Debian Sid chroot with e17 (for any graphical tasks I might need to do). Thanks to this I can be using Chrome for internet browsing, open up a crosh window, chroot into Debain Sid, and then work on my Python programming lab for class in a much more complete command-line environment than what's possible in Chrome OS' Developer mode. Then if I need to, I can even install Eclipse and the Android SDK into the chroot, and pop into e17!

Debian Sid

While I would vastly prefer a full Arch install I have found that this a very comfortable medium between Chrome OS and a full Linux install. The benefit of using a chroot is that it gets access to the Chrome OS Kernel and drivers, meaning that the hardware will always work. That is contrasted to the standard Linux Kernel, where the C720's touchpad driver still has to be pathed in at each new major release of the kernel.

Once I get around to installing Arch in the next few weeks or so, I will probably make another post chronicling those adventures, but in the meantime, my initial impressions of Chromebooks and Chrome OS have been much more positive than I expected. If I didn't need to any programming, I would probably not even need to replace Chrome OS. It's a somewhat grim reminder of how much I rely on web browers as a part of my workflow.

permalink
Page: 1 of 4