How do I install Elementary OS on the Toshiba Chromebook 2 (Bay Trail)?

Elementary OS is a pretty cool Linux operating system and when paired with the Toshiba Chromebook 2, you could say you have an alternative to a Macbook.

Update: There are now 2 versions of the Toshiba Chromebook 2: the Baytrail and the Broadwell models. This install of elementary OS was on the Baytrail version, for the Broadwell version see this post.

This guide uses information from some of my other posts. If you are not sure about some of the steps, having a quick look at those should get you up to speed.


Whether you’re using a Baytrail Chromebook or newer Chromebook, John has created RW_LEGACY BIOS mods that means you don’t need to open up your Chromebook any more. This is a safer option that doesn’t invalidate your warranty and can’t brick your Chromebook. See my full guide on how to dual boot Linux and Chrome OS.


Follow steps 1 – 4 from my original post to make the BIOS writeable and install the modified BIOS.

Create a bootable elementary OS USB thumb drive plug it into your chromebook. I have also plugged in my USB 3.0 hub/ethernet adapter to make the install quicker. A wired connection is faster to download updates than a wireless connection.

Install elementary OS

  • Power on, press ESC and choose the drive to boot from.
  • Wait for elementary OS to load and choose the option to Try elementary OS without installing
  • Once elementary OS loads choose the option to install elementary OS and follow the onscreen prompts.
  • There is likely to be an input/output error warning, it’s safe to ignore it.
  • Unless you have a specific way you want to partition the internal hard drive (it’s actually a eMMC card), I recommend you use the default option to wipe the whole drive.
  • Once the install finishes, reboot. The start up time is not that fast but still acceptable.

Post installation fixes

UPDATE: In an effort to automate these fixes, I have written a script to automatically apply sound fixes and keyboard tweaks for you. See my post on automating Chromebook fixes.


  • The below instructions are now not needed (particularly upgrading the Linux kernel). Please use my script to fix sound issues automatically.
  • Out of the box, sound does not work. To fix this download the latest firmware updates from Ubuntu.
  • Install the .deb file (if you double click on it, it will open in the software installer) and reboot.
  • Now we need to update our sound config file. Download the modified sound config file (asound.state) from here.
  • Open up a terminal window and type sudo alsa force-unload to stop the audio services.
  • Replace the system’s sound config file with the downloaded version (extract the file from the zip archive and move it to the Downloads folder):
    Type sudo cp ~/Downloads/asound.state /var/lib/alsa
  • After rebooting the sound and mic works as well as the HDMI sound output.


  • Some touchpad gestures may not work, choose the tap to click option in the system settings to fix this.


  • The battery icon can be a bit misleading and so I would suggest that you display the usage in time as well. Right click on the battery icon and choose the option Show time in menu bar.

Keyboard media keys



  • On swanky CB2, (cb35-b3340) I followed your instructions, ran your script, volume keys working and show the volume changing, but no device is listed in the sound settings and I don’t actually get any sound. I ran your script and rebooted when prompted. Any advice? I also tried GalliumOS and the sound is working there, version 2.1.

    I am loving ElementaryOS Loki, but it would be great to figure this out. This is my first time installing linux directly to this chromebook without using crouton. The sound worked while I was using crouton. Thanks either way if this thread is dead.

    1. Hi Andrew, unfortunately the drivers for Baytrail CBs was removed for newer Linux kernels so the fix in the video will not work. You have 2 options: stick with Gallium OS or try installing the older version of elementary OS (Freya).

      1. There’s also a PPA with driver-enabled kernels (for the Swanky) at:

        If you’d rather be insane, you can also build your own kernel (since the byt-max98090 source is still present, but conflicts with other drivers so distros don’t include it in their default kernel builds/configs).

        You can even run the build on e.g. a Swanky if you set it to run on a big SD card, USB drive, or external hard drive rather than the HD (which runs out of space p. quickly).

        1. I might have to try this. I tried Freya 3.1 & 3.0 and still couldn’t get sound going…

        2. I’m a bit of a noob, I added this ppa & updated apt, but what am I supposed to do then? Thanks for all your help.

        3. Okay, I added the PPA Nate suggested, updated apt, upgraded apt, tried Captain’s fix and still nothing. I don’t even get the ‘dummy output’ in the sound settings. I have a little USB sound card which works so I can use headphones at least. Gallium OS works fine however, and I guess I’ll keep using that on my swanky chromebook for now. I really like elementary though. Maybe I can try a different window manager in Gallium to make it more like elementary.

      2. Thanks captain! I really like Elementary OS, so I’ll try the Freya build. Gallium OS is really nice too though & I’ll use that if Freya falls short. I already have my 64GB USB stick going-thanks for sharing your Linux knowledge!

  • I like eOS, but it’s sluggish on my 2014 TCB2 (the Baytrail model) — animations are choppy, and I get screen tearing. The “disable-clipped-redraws:disable-culling” workaround that people use for Gnome 3 improves things a bit, but eOS is still unusably slow (as is Gnome 3).

    I’ve also tried disabling Clutter’s vsync and using Intel’s tearfree, which ends in about the same — no tearing, but even with animations turned off things that should be instant take a few seconds (workspace switching, window overview, and so on).

    Has anyone else figured out how to deal with this? I suspect that the Baytrail just can’t push enough pixels for Clutter to work well on a full-HD display, but I thought I’d ask before I gave up.

    1. I found Unity, Gnome 3, and Pantheon all a bit too sluggish on a Swanky.

      Might want to try Budgie-Remix. The 16.10 version is running swimmingly on my TCB2. Budgie is apparently significantly lighter than the aforementioned desktops.

      1. I actually found a fix. Three steps:

        1) For graphics: add “export CLUTTER_VBLANK=none” to /etc/environment, and add “Tearfree” to your xorg.conf (you should make a new file in xorg.conf.d for that).
        2) Add the “noatime” option to your non-swap partitions in /etc/fstab
        3) Set swappiness and cache pressure in /etc/sysctl.conf with these lines:


        You can install preload, too — I don’t know if this helps much.

        (2) and (3) solve the problem I was having: any disk i/o killed made everything else run like it was misfiring on three cylinders. So decreasing the amount of writes really upped performance.

        Also, I went with Pantheon (eOS) over Budgie, but holy cow does Budgie have potential. I had a couple crashes when I used it on the live USB, so I figured I was better off going with something more stable. But Budgie is _fast_.

        1. Ah, I will look into that.

          I’m not normally one for the really super light desktops. Seems like Swanky ought to be able to handle something fatter than LXDE.

          Hey, you can now drag icons around on the budgie-panel. Woohoo! 🙂 Budgie has potential; has some visual appeal and doesn’t feel so impoverished, but is dang zippy. There’s a niche there, I think.

  • Hi Captain,

    I followed your instructions for the ALSA file to make the sound work. Sound is able to come out of my speakers ,and also when I plug in my headphones. But when I plug in my headphones, I can hear a little volume coming out of my speakers. How can I fix that?

    Thanks a lot!

    1. Hi E.J,
      Hhhm, I haven’t heard of this before. I know you have to manually change between headphone and speakers, I wonder if anyone else has had this problem?

      1. I was doing some research online and I found editing this file: “/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf” – Information courtesy of James Fu from his post on Google +

        He said to change “Element Speaker” from “switch=off, volume=off” to “switch=mute, volume=zero”

        Unfortunately, that didn’t work at all. It actually make my speakers louder than before when my headphones were connected.

        I put Element=speaker back to where it was and I started messing around a little bit to see some result. Luckily after so many trials and errors, I found something! In that same file I changed “Element=Headphone” from “volume=merge” to “volume=zero”.

        Now there is no sound at all from speakers when I plug in my headphones on the TB2! Hope this helps someone out there 🙂

  • How much free disk space did you have on your CB2? I have the 16gb CB2, installed eOS today as the sole operating system, but only have 3-4gb free disk space left. Seems a bit low to me since it should be a lightweight OS…

      1. Ah yes, after a clean install i have 6.2gb free as well, but I did install Chrome and Libreoffice directly which cut into my free space.

        Upon further investigation, I noticed 4gb allocated swap space, which was not addressed correctly so was not in use. You can check this with command ‘top’ (which said 0 0 0 in the row swap) and command ‘free -m’, which showed no swap space allocated.

        Since it was not used and there was still enough free RAM available, I decided to ditch the swap partition all the way (by reinstalling and creating own partitions). This left me with 10.9GB free space. I can always start using a swap FILE instead of PARTITION in the future should there be need.

        If you’d like to use the swap for which it makes a partition on default, you should do so by taking these steps (perhaps something to add to your great tutorial):
        – sudo fdisk -l
        your swap partition will probably be /dev/mmcblk0p5. now do this:
        – sudo nano /etc/fstab
        the bottom rule defines the swap partition and is wrong here, make it like this:
        /dev/mmcblk0p5 none swap sw,noauto 0 0
        (ctrl+x to exit and save, press enter)

        then do this:
        – sudo nano /etc/rc.local
        and add this above the last rule with exit 0:
        sleep 5
        swapon /dev/mmcblk0p5

        If you reboot now, every time the swap will be addressed and used correctly. Up until now, I have no need for the swap partition and I guess you don’t either. Check with command ‘top’ if you are using it.

        Have a good one!

      2. to add to my own post: now I have added 1gb swap space, and a little of it gets used. So I presume it is best to at least have some swap space.

        1. That makes sense, it’s usually a good idea to have at least some swap.

          For most people messing around with the default partitioning probably isn’t a good idea though.

  • My dear Captain, I cannot thank you enough for this guide. I’ve been struggling to get the sound working until I came here. I had used ubuntu before but I think I like the look of eOS. Performance seems good. Thank you once again!

  • In case someone else have the same issue, just restart the live USB, and/or try to use a 2.0 USB port. I got my Ubuntu 16.04 working. Even my bluetooth mouse is now working amazing. 😀

  • Hey Cap! I’m just trying the Ubuntu 16.04 but something weird. I don’t have WiFi on the LiveUsb, but from 15.10 Usb everything is fine. How can i downgrade if i’m offline? Did someone had this issue? I’m gonna try eOS and see if i get the same issue…

    I had 14.04 perfectly working thanks to you. And now i’m looking to upgrade again! 😀 😀 😀

  • Cap,
    Thanks for your efforts. I couldn’t wait to try it out. Install went great on my Toshiba Leon Chromebook. Only issues I am having is doing a soft reboot doesn’t always work. End up stuck at the e screen. Doing a hard reboot works fine using the power key. The other more annoying is the webcam won’t work. I’m sure it’s related to the same problem with the MIC but thought I would ask anyhow. Thanks again.

    1. This sounds like it’s OS related. I’m currently running Ubuntu 16.04 without the system updates. I just checked the camera and it is working. At some point I will be testing different distros but might I suggest trying Gallium OS?

      1. Well Turns out it was just my webcam. But I am running GalliumOS. I love it. Thanks for the suggestion

  • Hi Captain, Thanks for the great tutorial!
    I have a question; The touchpad stopped working right after I did software update!
    Is there any fix for this?

      1. I’m having the same problem – and can’t find anything in these comments about it….. am I blind?

        1. Hi Mitch,

          No not blind, just right. I assume you are talking about the touchpad not working after a system update. The answer was in the comments in the main post for installing linux on this chromebook. You need to update the Linux kernel as follows:

          Go to and download 3 files linux-image-4.4.5-040405-generic_4.4.5-040405.201603091931_amd64.deb, linux-headers-4.4.5-040405_4.4.5-040405.201603091931_all.deb and linux-headers-4.4.5-040405-generic_4.4.5-040405.201603091931_amd64.deb. Install them in that order and reboot.

  • Hey cap! I have installed elementary os on my swanky device for a while now. I liked it at first be figured chrome OS is more efficient for my studying & school work. I tried to revert to chrome os but do not know how to restore my original bios and reinstall google’s chrome os back on the drive… any help coming your way would be more than appreciated :^)

    1. You’ll need the make a Chrome OS recovery USB (you’ll find details on Google’s support pages). In eOS, open a terminal window and run John’s script again then choose the option to run Chrome. After a reboot you should see the Chrome OS recovery screen where you’ll need the USB you created earlier.

  • I’m interested in dual-booting on my 2014 “Swanky” Baytrail Toshiba, with a full installation of eOS on a USB 3.0 flash drive — any advice?

  • First of all thanks a lot for your helpful guides Captain, it’s great to be able to put linux on this chromebook!

    Having put Gentoo Linux on mine, the only thing I can’t get to work is the microphone.

    I am wondering if you could post your kernel config somewhere, as well as dmesg output? That might help me fix it.

    1. Cool, good to hear you’re up and running. That mic problem is something that others have asked about but I have not been able to find a solution. If you can solve it, it would be great. Here’s all of dmesg and here’s the kernel config

      1. Ah OK, I was hoping you’d already got it working. 🙂

        I just looked into it for a bit; unfortunately I don’t know anything about the linux kernel, except how to compile it…

        Regarding sound, our dmesgs are the same.

        I thought this alsa log seemed interesting:

        Apparently it was produced on a swanky chromebook, and the dmesg parts that it contains differs from ours in several ways. In particular it has

        byt-max98090 byt-max98090: HiFi Front-cpu-dai mapping ok

        where we have

        byt-max98090 byt-max98090: HiFi baytrail-pcm-audio mapping ok

        this can be traced back to this alsa patch:

        which seems to affect the internal mic. Also we don’t have the

        max98090 1-0010: DMIC Mux: put_dmic_mux enable DMIC

        which seems to come from the Chromium-only patch here:!topic/chromium-os-reviews/GhDDAdVhITg

        I’ve tried to revert the first patch on my kernel sources, but that leads to the sound card not being recognised at all…

        So, not much of a success! But I hope these observations might be useful to someone who knows more about these things…

  • Do you have a screenshot for what’s supposed to happen after “sudo cp ~/Downloads/asound.state /var/lib/alsa” is typed in and you hit enter? Because nothing happens on my computer (3340) – everything else works correctly but nothing I do gets me sound. Help?

    1. Hi Anne,

      It’s in the video from 1:20. The command sudo cp ~/Downloads/asound.state /var/lib/alsa copies the file asound.state to the location /var/lib/alsa. With Linux you do not get a confirmation after pressing enter (as you’ll see in the video at 2:27).

      Use the wrtten instructions in the post (Post installation fixes – Sound section), along with the video. Apologies if the video speed is fast, I was trying to make the video length short but in hindsight I should have left it at normal speed.

  • I took a plunge and installed Elementary OS Freya to the 2015 model. No guide yet, but basically everything (except backlit keyboard) worked out of the box, including sound. I did have to poke the keyboard map to make the function keys act like the special keys, but that was easy. Only real issue I have left is that my xmodmap commands to map the right alt and ctrl keys to mouse buttons keep getting dropped… So far I am impressed. I had to do a few tweaks to the look/feel, but overall I am liking Elementary a lot. It really doesn’t seem right that I only paid $400 for this laptop plus the 256GB SSD. It’s just too awesome.

      1. It’s still a good idea to disable write-protect so that you won’t have to press CTRL + L on startup to boot from the modified BIOS.

    1. I’ve just added a link to another post I just posted, thanks for the suggestion. Oh and by the way thanks for being the first person to call me Cap, I feel like the first Avenger!

  • Looking forward to it.

    I have no specific requests. I guess it would be good to know how it runs as a daily driver. I’ve found that Linux distros are fine when you’re messing around with them. But when you make it the OS you use every day, all the little bugs and annoyances seem to make their appearance. However, eOS seems to be one of the few that is quite stable. Probably because there’s less to go wrong!

  • What a fabulous guide. Thanks, Captain!

    How are you finding the performance of eOS on the TCB2? I’ve wondered about battery life. I imagine it’s a little less than ChromeOS. But hopefully not by much. How does the Baytrail and 4GB memory hold up in general eOS use?

    1. Performance in my opinion is quite impressive, I’ve been using it for things like streaming videos, emailing, surfing, music and general computer work. elementary OS is faster than some other popular Linux distros and on chromebooks, that really helps. Sometimes apps might take a second or two longer to load but considering that the hardware was only designed to work with Chrome OS, I would definitely recommend this install.

      Battery life is a bit of an anomaly, it’s difficult to tell how long it’s lasted because the battery indicator fluctuates so wildly. Sometimes it reports there’s 5 hours left and 5 minutes later it says 3 hours. On average though, I get between 6-7 hours of battery life depending on what I’m doing. I think I need to find a more objective way to test the battery life…

      1. Thanks for your reply.

        Great to hear you’re impressed. I’m certainly impressed by eOS. It has all those little, non-deal-breaker things that ChromeOS lacks. Decent samba support and the ability to use all three mainstream VPN methods are two plus points that spring to mind. Sure, all the other Linux based distros have these as well – but eOS is one of the ‘slimmer’ ones. Therefore you’d like to think it’s less processor/memory intensive. A second or two lag in places is entirely bearable. By jingo, even in ChromeOS, the TCB2 is laggy when launching, say Google+.

        I’m new to Linux so excuse my ignorance…

        My only other concern is what might break the setup. With so many hacks to get everything working, I fear an update coming along and messing things up. Hopefully not.

        Think I’ll wait for the TCB2’s warranty to expire and then give it a whirl! Thanks again for the guide.

          1. 🙂

            Are you going to stick with eOS for a while? If so, I’d love to hear how you’re getting on occasionally.

          2. I’ll be keeping it for a little while longer while I work on a post-install write up. Hopefully the post I’m working on will give you an good idea of how well elementary OS performs on the chromebook. After that I’ll be testing other distros. If there’s any requests from anyone, I’ll try to accommodate.

  • Comments are closed.