Monday, February 24, 2014

Installing Bodhi on Lenovo Thinkpad X131e Chromebook

Introduction


In a previous post I explained my decision to choose a Lenovo Thinkpad X131e Chromebook for use as my regular laptop running Bodhi Linux. In this post I will describe the steps I took to install Bodhi on the Thinkpad Chromebook.  In previous posts I discussed using a Samsung Series 3 Chromebook, initially to run the installed Chrome OS, and then to run Bodhi Linux.  Because of my experience installing, and in fact building install tools and images of Bodhi Linux for the Samsung Chromebook I assumed installing Bodhi Linux on the Thinkpad Chromebook would be fairly simple.  Although my previous experience provided me the basic steps, I did run into some issues and surprises.

Existing Documentation


When I wanted to install Linux on the Samsung Chromebook, there were quite a few posts describing how to do so for Bodhi, Ubuntu, Kali, Debian, and other Linux distributions.  I was initially surprised that I could find little or no similar documentation for the Thinkpad Chromebook.  Upon reflection, I realized that this was probably largely due to the fact that Lenovo has targeted the Thinkpad Chromebook at the education market. They in fact offer non-Chromebook versions of the Thinkpad X131e for the mainstream market.  Because the Lenovo Chromebook was not more generally available is a major reason I opted for the Samsung Chromebook in the spring of 2013.

So in looking for alternate OS installation documentation on the Thinkpad X131e Chromebook, not much was available. I did of course find the instructions for entering Developer Mode on the Chromebook, which of course is a prerequisite for attempting any alternative installation. Additionally, I saw references to the fact that the firmware was coreboot. Additionally, there were a few more details on the specific version for the various Chromebooks here.

On newer Chromebooks, like the Acer C720, which have seabios firmware, it is possible to use Ctrl-L (once in developer mode) to boot alternate OS (for example a Bodhi ISO image).  This is called a legacy boot. Alas, the Thinkpad X131e Chromebook apparently does not have that level of firmware.  In fact I was not able to find detailed information on the capabilities of alternate booting using the coreboot stout firmware on the Thinkpad Chromebook. I did not entertain the idea of changing the firmware. I don't know if it is even possible. I did notice on the Lenovo Chromebook that partition 12 on the main disk (SSD) appeared to be boot configuration. Partition 12 (hexadecimal 0xC) was similarly boot configuration on the Samsung Series 3 Chromebook, although the two configurations look markedly different. The partition has the label "EFI-SYSTEM" and has the type "EFI System Partition".

Examining the EFI Partition


The Thinkpad Chromebook partition 12 has two directories: efi and syslinux. Under the efi directory, there is a single directory, boot. It contains 3 files bootia32.efi, bootx64.efi, and grub.cfg. The two efi files appear to be UEFI applications. The grub.cfg file appears to be a GNU grub configuration file. I think it may be a particular type used with EFI.  The grub.cfg file has 5 menu entries, two for local images ("local image A" and "local image B"), two for verified images ("verified image A" and "verified image B") and one labelled "Alternate USB Boot". This last menu entry contains:

linux (hd0,3)/boot/vmlinuz quiet console=tty2 init=/sbin/init boot=local rootwait ro noresume noswap loglevel=1 noinitrd root=/dev/sdb3 i915.modeset=1 cros_efi

According to documentation I have read, this implies that it is booting off of /dev/hda4 (note that the first is 0, not 1).  I believe /dev/hda is mapped to /dev/sda which means we are talking here about booting from /dev/sda4. When I use the cgpt command to examine the partitions on /dev/sda, I see that /dev/sda4 is the Chrome OS kernel with the highest priority. So it appears what is happening here is that it boots the kernel at /dev/sda4 and uses the root filesystem at /dev/sdb3. /dev/sdb is the first USB disk recognized by the system.  The implication is then that it partition 3 on a USB drive recognized as /dev/sdb was a root filesystem and that grub menu entry were chosen, that system would be booted. The grub.cfg file has the default set at 2.  Since grub entries apparently start at 0, that means the third entry ("verified image A") is booting by default. Perhaps if I modified the grub.cfg file to have the default at 4, I could boot off the first USB disk if the root filesystem partition was partition 3. I have not tried making this change.  I don't know if this would work, given that I do not see a grub boot menu even if I hold down the shift key, which I believe would normally show you the boot menu.  Note that when I tried the shift key when booting I was already in developer mode.

The syslinux directory contains several configuration files and what appears to be two kernel files (vmlinuz.A and vmlinuz.B). There is a a README file that states:

Partition 12 contains the active bootloader configuration when booting from a non-Chrome OS BIOS.  EFI BIOSes use /efi/* and legacy BIOSes use this syslinux configuration.

I am not sure how to use this syslinux configuration, given that I believe the Chromebook has by default an EFI BIOS.  Perhaps if I tried rewriting the BIOS I could use this, but I am not considering doing that at this point, even if I could.

After all this investigation, I determine I would try the same approach I had used on the Samsung Chromebook. Perhaps more documentation on the Lenovo Thinkpad X131e BIOS will appear at some point and more options will become obvious.

Note added March 26, 2014: I discovered a discussion of kernel boot modes.  There are 3 boot modes for chromebooks: cros_secure, cros_efi, and cros_legacy. Partition 12 efi directory would be used with cros_efi mode, while the syslinux directory would be used with cros_legacy mode. You can view /proc/cmdline to see which mode is used (it should be at the front). I have seen cros_secure being used on my Thinkpad Chromebook. I don't know how to change the mode. It has been suggested that I would have to install updated firmware to have it change.

Using the Approach I Used on Samsung Chromebook


Given that I couldn't use the legacy boot approach used on newer Chromebooks like the Acer C720 and given that I couldn't figure out how to boot alternatives looking at partition 12 of my Thinkpad Chromebook, I decided to try the same approach I had used with the Samsung Chromebook.  Initially I attempted to boot from a USB drive, as this is easier than modifying the main SDD in the Chromebook. The steps I need can be summarized as follows:
  1. Use parted to create a GPT partition table
  2. Use cgpt create to create/reset the partition table
  3. Use cgpt to create the partition for the kernel (which will be Chrome OS)
  4. Use cgpt to create the partition for the root filesystem
  5. Copy the root filesystem to the second partition
  6. Remove /lib/modules and /lib/firmware in the copied partition and copy them from the Chrome OS filesystem being used. This is necessary because these modules and firmware match the Linux (Chrome OS) kernel to be used.
  7. Repack the running Chrome OS kernel into the first partition, using the needed boot parameters. Note that this step must be executed on the Chromebook being used.
While I had scripts to do things like this already for the Samsung Chromebook, there were differences. The Samsung Chromebook was ARM architecture, while the Lenovo was Intel. Therefore, I needed an x86 or x86_64 filesystem.  While there were Bodhi filesystem images available for ARM (for the Samsung Chromebook) I was not aware of them for Bodhi. Normally, one would boot from a CD or USB drive created from an ISO image.  Without the legacy boot support like the Acer C720 had, this was not an option for me.  Jeff Hoogland, who leads the Bodhi project, suggested that I boot a different Intel based computer from the C720 ISO image he had created (which had the latest packages), and install to a USB drive. Then I could use the filesystem that was generated for my Chromebook.

Dealing with Thinkpad-Specific Issues


Once I had an image to use and an approach, I created a new installation script based on the initial Samsung Chromebook version.  Right away, I had to investigate differences between the Samsung and Chromebook machines, other than the difference in architecture.

First I had to put the machine in Developer Mode.  Each Chromebook is different. On the earliest models there was an actual physical switch. On later models like the Samsung Series 3 Chromebook, there was a key sequence you needed to use when powering on the machine. For the Thinkpad, it was actually more complicated. There was a similar key sequence, but that sequence could only be used after first removing power (both AC and battery), and then use the proper key sequence within 20 seconds after reapplying power (e.g. reinstalling the battery).  The steps are described here. Note that I did not verify whether the 20 second limit is accurate. Secondly, although removing the battery sounds difficult, it is actually quite easy to do on Thinkpads.

Second, I needed to understand how the devices were mapped. On the Samsung the main drive (SDD) is called /dev/mmcblk0.  When I used the blkid command (with sudo) I found that the main drive (SDD) was instead /dev/sda. This meant that instead of making sure not to overwrite the wrong device when creating my boot USB, I had to understand that /dev/sda was the main drive. I also need to know this to locate and repack the running kernel.

The third part I could only learn by experimentation. For some reason, there are limitations as to which USB ports can be used for booting. On the Samsung Series 3 Chromebook there is a USB 2.0 port and a USB 3.0 port. Only the USB 2.0 port can be used for booting. The Lenovo Thinkpad X131e Chromebook has two USB 3.0 ports and one USB 2.0 port. My only successful attempt to boot from USB occurred when I used the USB 2.0 port.  Note that it seems USB 3.0 ports are marked in blue inside, while USB 2.0 ports are not.  On the Thinkpad Chromebook, the USB 2.0 port is on the right side and marked in yellow.

Using the USB drive (one that I had successfully used on the Samsung--some USB drives do not work for some reason), I was able to boot the machine. However, I immediately encountered issues. First the login screen appeared, but clicking on the default userid (I had a default userid and password in the image) did not seem to do anything. However, when I used Ctrl-Alt-F1 to change to virtual terminal 1, and then Ctrl-Alt-F7 to go back to the X display the screen was refreshed. Now I saw the password prompt. I entered the password. It did not appear that I was typing (I should have seen asterisks), but when I hit enter the screen changed. I had actually tried an older Bodhi x86 install image earlier and had seen the same problem. On the older Bodhi image at this point I saw the enlightenment desktop. On this newer image, created with newer graphics packages for the Acer C720, I saw a blank screen.

I saw the version of intel graphics package installed and went searching for a report of issues for this package and adapter. I didn't find a solution right away, but I did find this page about the driver and possible configuration. I decided to try using UXA instead of SNA acceleration. I did this by adding a 20-intel.conf file in /usr/share/X11/xorg.conf.d containing:

Section "Device"
           Identifier "Card0"
           Driver "intel"
           Option "accelMethod" "uxa"
EndSection

I did this by using Ctrl-Alt-F1 to change to virtual terminal 1 and using sudo and vi to add the file.  I rebooted. I again had the problem with the login screen, but once I used the Ctrl-Alt-F1/Ctrl-Alt-F7 sequence to get past that, I now had my enlightenment desktop. Note that with recent open-source video drivers, xorg configuration is typically not needed. Instead, they use kernel modesetting (KMS). Apparently, I needed to add the aforementioned xorg configuration entry to bypass a bug.

Solving the problem with the login screen took much longer. I tried other login managers (the default with the Bodhi install was LXDM), like LightDM, GDM, etc. All had similar problems.  Since the i915 Intel driver was being used, I started searching for issues with that.  I found this Debian bug report, which talked not about a blank screen but about screen corruption. I decided to try adding i915.i915_enable_fbc=0 to the boot parameters. Once I did this (by modifying my installation script to include this boot parameter when repacking the kernel), my login screen issues went away. Note that the setting I added turns off frame buffer compression.

At this point I had what appeared to be a properly working Bodhi Linux system.

One other issue I ran into was that occasionally I would lose my wireless connection. It would ask for the password for my wireless access point that I was previously connected to but re-entering did not help. I could only get it back by rebooting.   In looking around I found that some people using the ath9k driver solved issues by adding /etc/modprobe.d/ath9k.conf (using sudo) with contents:

options ath9k nohwcrypt=1

So far it seems to be working, but it will probably take a few days to know for sure.

Note added March 26, 2014: I continued to have occasional wireless issues even with the above settings.  I recently booted into Chrome OS and updated to the canary channel, which installed a new kernel (still 3.8.11, but dated 3/24/2014). Since then I haven't seen wireless issues, but only time will tell.

Note added March 26, 2014: I recently began experimenting with bodhi 3.0.0 alpha, which is based on Ubuntu 14.04. I ran into a boot issue where there was a long delay at boot time, seeming related to plymouth.  I saw the following error message:

plymouthd: ply-terminal.c: 611 ply_terminal_open: Assertion `terminal != ((void *)0)' failed.

After a long period of time (sometimes 2 minutes), the login screen would appear. To work around this issue, I added (as sudo) the file /etc/initramfs.conf/conf.d/splash and added the line:

FRAMEBUFFER=y

and then executed the command (as root):

update-initramfs -k 3.8.11 -u

and rebooted. I am still seeing the error message, but I no longer have the long delay. I found the above setting related to some plymouth bug reports. Only time will tell if it resolves the issue, as it did not happen every time.


Comparing Bodhi on Thinkpad Chromebook vs. Samsung


In my previous post, I explained reasons for moving to the Thinkpad Chromebook for Bodhi and away from the Samsung. The main reason was of course the ARM architecture.  I will list here a few of the advantages:
  • Audio worked immediately, without having to investigate special settings. The main speaker was muted when I used the headphone jack, something I never got working on the Samsung (using Linux).
  • The backlight control worked immediately, without having to investigate special settings.
  • The backlight turned off when the screen blanked (unlike the Samsung which didn't)
  • I was able to use Ctrl-Alt-F1 to switch to virtual terminal 1 and Ctrl-Alt-F7 to switch back to the graphical screen. On the Samsung I could never switch back.
  • Booting is faster. While the boot time (from the main SDD) on the Samsung was about 10 seconds, on the Thinkpad it is even faster.
  • On the Samsung sometimes when I would boot the cursor would be frozen. I would have to power off and start again. I haven't encountered this on the Thinkpad.
  • The filesystem for Bodhi on the Samsung (ARM) Chromebook is based on debian, while for x86 machines the filesystem is based on Ubuntu. Yes, Ubuntu is based on Debian, but the x86 filesystem uses Ubuntu packages and the Ubuntu repository.  This means things like the Bodhi Linux AppCenter work properly, since such things assume Ubuntu repositories and packages, not Debian.

Summary


In this post I have described my experience in determining how to get Bodhi Linux installed on a Lenovo Thinkpad X131e Chromebook. I can say at this point I much happier with the state of Bodhi on my Thinkpad Chromebook than the Samsung, despite the months of effort I spent on improving the experience on the Samsung. In a future post, I will describe how to access and use my installation script to install Bodhi Linux on the Thinkpad Chromebook.

Wednesday, February 19, 2014

Why I Switched from Samsung to a Lenovo Chromebook

Background

In earlier posts I described my decision to get a Samsung Series 3 Chromebook and my experience with using Chome OS. Initially, I installed crouton so that I could run various Linux programs and do more locally on the machine rather than always being connected. Subsequently, I decided to move away from using Chrome OS and install the Bodhi Linux distribution. I should point out that my decision was not based on any problems with Chome OS per se, but due to a feeling of discomfort I felt with being tied to the cloud, especially with reports of hacking and interception by criminal, government, and corporate entities. I explained my decision in some detail here.

While I was able to get Bodhi working on the Chromebook, it was not without considerable effort. About the time I decided to install Bodhi, the Bodhi project leader decided to drop official support for the ARM architecture packages for the Samsung Chromebook.  As I will explain later, I believe that decision was both understandable, and ultimately, reasonable.

Making Bodhi Work Well on the Samsung Chromebook


When I was told that official Bodhi support for ARM was being dropped, I volunteered to help build and maintain Bodhi (and enlightenment) packages for the Samsung Chromebook.  Thus began an interesting adventure.  While I had used Linux both personally and at work for well over 10 years, I had not done some of the tasks I undertook in trying to provide a first-class Bodhi experience on the Samsung Chromebook. Things I ended up doing included:
  • Building large numbers of debian packages using debian build tools like dh_make.
  • Building a new Chrome OS kernel following instructions I found here. While I was successful in building the kernel and getting Mali graphics working properly, the kernel itself proved unstable.
  • Creating chroot environments containing debian packages for building debian packages for ARM and also for creating a root filesystem for the Chromebook.
  • Writing scripts to install Bodhi on the Samsung Chromebook. These scripts, built from other existing scripts (written by others), handled various tasks, including:
    • Using cgpt to update and add Chromebook partitions.
    • Using vbutil_kernel to pack (or repack) Chrome OS kernels into a kernel partition.
    • Extracting and tweaking the Bodhi root filesystem.
While the experience was rewarding in that I learned new skills and tricks, it was also quite frustrating.  The main issue of course was the fact that the Samsung Chromebook used an ARM processor instead of Intel or AMD. While thousands of packages are widely available for Intel and AMD (32 and 64 bit architectures), less are available for ARM. Part of the reason for this is there are various flavors of ARM. Thus packages built for the Chromebook might not work on other things like a Raspberry Pi board.  Because of this, you might find packages built for ARM that don't work on your particular ARM-based computer.  

As I explained in previous blog posts, I often ended up building packages myself for ARM. However, in some cases the source was not available (that is, it was closed source) or I was unable to successfully build all the dependencies. In addition, even when I got things built and installed for the Samsung Chromebook (after months of effort), I still ran into various issues:
  • While I could get audio working, it was difficult. Additionally, while I was able to control the volume of the speakers and headphones separately, it did not seem possible to have the speakers automatically mute when plugging into the headphone jack.
  • While I was able to control the backlight brightness via scripts, when the screen blanked, the backlight stayed on.
  • The trackpad drove me crazy. To be clear, I used Thinkpads (first IBM and later Lenovo) for years with the trackpoint.  So using a trackpad was new to me. I don't know if the fact I learned touch typing was an issue, but on the Samsung Chromebook (which has a big trackpad) I constantly accidentally hit the trackpad.  This caused various unwanted results.  Additionally, I had trouble with the sensitivity. Double clicking using gestures was difficult while accidental single clicks were a common occurrence.  I used the syndaemon program to help as well as adding options to xorg configuration.  Nevertheless, I was never satisfied with the results. Additionally, I can handle the trackpoint easier and with none of these issues.
  • Any usable experience with browsing must support Flash.  Flash support is generally not available for ARM.  The only support is for the Google Chrome (Chromium) browser and Google's Pepper Flash support.  Initially I was able to find an early version (version 22) of Chromium which had been built for raspbian, which is an operating system for the Raspberry PI computer (also ARM based).   Eventually, I was able to build a Bodhi filesystem based on debian jessie (testing) and, with a lot of investigation, install a newer (version 31) of the Chromium browser from Ubuntu. So although Chromium is a good browser that one might choose anyway, the ARM architecture essentially limited me to only Chromium because it was the only way to get Flash support.  
  • I was never able to figure out how to get google hangouts to work, even though I was using the Chromium browser. I tried copying various libraries from Chrome OS but was never able to get it to work. Skype, which is proprietary, was not an option as there are no ARM packages available.
Despite the issues I was able to create a quite usable system and use it daily. It booted up in less than 10 seconds and I was able to do my daily tasks. Over time however, I was continually frustrated by the experience (especially with the trackpad) and the knowledge that I was continually going to encounter limitations because of the ARM architecture.  I had eventually come to the same conclusion as had Jeff Hoogland, the Bodhi Linux project leader. The issues with working with ARM architecture were not worth the effort. In Jeff's case, he was initially trying to support various ARM platforms, including the Raspberry Pi.  But even for the Samsung Chromebook, it turned out, to me anyway, just not worth the effort.
 
I should point out that there is quite a lot of support for ARM on Linux. Many Debian and Ubuntu packages are built for ARM.  Additionally, Linaro does excellent work in providing open source Linux support for ARM. You will also find tutorials on installing various types of Linux (Ubuntu, Debian, Arch, Kali, etc.) on ARM, especially Samsung Chromebooks.  And David Schneider at Google has done excellent working with crouton, providing an easy way to set up a chroot environment to run Linux under Chrome OS on Chromebooks, including the Samsung Chromebook. Despite this, there is just not near the level of support for Linux for such devices as there is for Intel and AMD based devices.


Lenovo Thinkpad X131e Versus Samsung Chromebook

In comparing the Lenovo Thinkpad Chromebook to the Samsung Chromebook, two things stand out as most important to me:
  1. The Thinkpad Chromebook is built on Intel architecture, not ARM
  2. The Thinkpad Chromebook has the trackpoint
However, if someone reading this is considering acquiring a Chromebook, it is important to understand the following:
  • The point about the trackpoint is  a personal preference. If you are familiar with and comfortable with trackpads, this may not be an issue for you at all. In fact, if you are not familiar with the trackpoint you may not even like it. Of course, the Lenovo Chromebook has a trackpad as well, but it is considerably smaller than the one on the Samsung Chromebook.
  • If you plan to use the Chromebook for its intended purpose many of the issues I have mentioned would have no impact on you. That is, if you use the Chromebook solely to run Chrome OS the Samsung Chromebook may be quite satisfactory.  Although I assume the Google team probably has more issues building and supporting Chrome OS on ARM as compared to Intel, that should be largely transparent to the user.  I would note however that while the version of the Chrome OS for Intel (x86) Chromebooks appears to be at 3.8.11 (at least mine upgraded to that), I believe the Samsung Chromebook version is still at 3.4.0.
In terms of using the Chromebook solely for Chrome OS (i.e. not running some Linux distribution in addition), the machines are comparable.  The main advantages of the Samsung Chromebook in my opinion would be:
  • The Samsung Chromebook is lighter by at least a pound
  • The Samsung Chromebook is thinner
  • The Samsung Chromebook looks better. It looks thin and sleek when compared to the Lenovo
  • The Samsung Chromebook has a bigger trackpad, if this is something you use and prefer
  • The Samsung Chromebook has no fan, making it quiet.
  • The Samsung Chromebook lists at only $249 and is readily available, while the Thinkpad Chromebook lists at $399 is supposedly available only to the education market. (You can find it on a secondary market however).
The main advantages I see of the Lenovo for use solely for Chrome OS are:
  • The Thinkpad Chromeobook has 4GB of memory instead of 2GB. Although this often is not important, in terms of having many tabs open in the browser and running graphics intensive applications, this can make a difference.
  • The Thinkpad Chromebook is more rugged. It has rubberized edges and corners, reinforced hinges, and a spill-proof keyboard.  It was designed for potentially rougher treatment in schools.
  • The Thinkpad Chromebook has a removable (and replaceable) battery.  If you are familiar with Thinkpads, this is a feature they have had for a long time.
  • The Thinkpad Chromebook has the trackpoint. This is an advantage if you like this as opposed to (or in addition to) a trackpad.
  • The Thinkpad Chromebook has an ethernet port. For the Samsung Chromebook you would need a separate adapter (fairly cheap) and driver support.  I don't think the 3.4.0 Chrome OS kernel has support for some of the USB ethernet adapters, but I am not sure. I actually had to build the driver for the Chrome OS 3.4.0 kernel (for the Samsung) myself to use the adapter I purchased.
  • The Thinkpad Chromebook has 2 USB 2.0 ports and 1 USB 3.0 port.   
  • The Thinkpad Chromebook has a VGA port.
 
You can see a video comparing the Samsung Series 3 and Lenovo Chromebooks here. You can see a video comparing the Samsung Series 5 and Lenovo Chromebooks here.
 
For use as a Linux computer, and not solely for Chrome OS, there is no comparison, at least in my opinion. An x86-based Chromebook is far preferable to one based on ARM for the reasons I discussed earlier. 
 
Although I have discussed the Lenovo Thinkpad Chromebook, of course it is not the only x86 Chromebook available. And there are new ones coming out frequently. One interesting option is the Acer C720.  The 16GB model lists at $199 and the battery life is outstanding (8.5 hours).  Additionally, unlike earlier Chromebooks like the Samsung and the Lenovo Thinkpad, you can boot a Linux on a USB drive directly, making it easier to run Linux as an alternative to Chrome OS.  Quite frankly, if you are not partial to Thinkpads (and the trackpoint), the new Acer model is a very attractive choice.

Why Choose a Chromebook at All?

A reader might wonder why, if I want to use Linux, would I buy a Chromebook? After all, you have to put the Chromebook in developer mode, bypassing the verified boot mode just to use Linux. This means every time you boot you encounter the scary "Chrome OS verification is turned off" screen and have to hit Ctrl-D or Ctrl-U to boot.  Well, there are a few reasons:
  • Chromebooks are cheaper. I assume this is partially due to the fact that you don't have to pay the Windows tax due to the bundling of Microsoft Windows.
  • The Chromebooks have an SSD instead of a hard drive. While you can buy other laptops with SSD, they are typically larger SSDs and more expensive.
  • They tend to have long battery life. I think a laptop needs good battery life or you are often worrying about having to plug back in.  I see many laptops advertised with 3 or 4 hour battery life. That doesn't seem to be enough to me.
  • I like the option of being able to boot Chrome OS. I don't dislike Chrome OS. It certainly makes sense for various environments, including education markets and for businesses who want a more locked-down desktop.  It also is a reasonable choice for someone who has almost constant network connectivity and is willing to work almost entirely in the cloud using a lot of Google services.
Clearly, a Chromebook is not for everyone, especially if you want to run an alternative operating system like Linux.  And the Chromebooks tend to have lower end processors. If you want a power machine, for intense graphics and/or gaming for instance, you probably want to look at something else. But for what I use my computer for, they offer the right balance of price, weight, battery life, and size for me.

Installing Bodhi Linux on the X131e Chromebook

Given the experience I had installing Bodhi Linux on the Samsung Chromebook, you would think it would be simple for me to do the same on the Thinkpad Chromebook. That did not turn out to be the case, but after some effort and investigation, I have successfully done so. I have also created a script so others can do the same if they wish to do so. I will discuss all this more in an upcoming post.