— UPDATED 08/14/2016 — Workaround for Ubuntu 16.04 installation! See the end of the post
In this article, we learn how to set up a Chromebook Pixel (samus) with Ubuntu natively, NOT using Crouton and some sort of chroot trick, transforming it into a mobile powerhouse.
First, download an Ubuntu ISO of choice. My favorite flavor is Xubuntu Core, a lightweight essentials-only version with XFCE. It’s a great foundation for anyone wanting to customize a system perfectly suited to their style. ATTENTION: Ubuntu 16.04 users must use a minimal ISO. See below!
ALSO, a USB mouse will be required temporarily. The touchpad and touchscreen will not work until some additional drivers are loaded.
That Ubuntu image needs to be on a bootable USB key if an external optical drive is not available. There are already plenty of guides for doing this depending on the host system, so it will not be covered here. Google has the answer. I recommend mkusb for anyone already using Ubuntu. Many of the other tools are out of date and will not work correctly with newer versions of Ubuntu due to changes in the structure of the image.
Put the Samus into Developer Mode. This will wipe out all user data, so it would be ideal to do this immediately after unboxing a new Pixel.
Hold down Esc and Refresh while turning on the power. Then, Ctrl-D and Enter. This is when the data wipe occurs. ChromeOS will still be available at this point, but not for long.
Boot into ChromeOS by pressing Ctrl-D. To enable booting USB Linux images with SeaBIOS, bring up a terminal by pressing Ctrl-Alt-T. Enter the commands:
crossystem dev_boot_usb=1 dev_boot_legacy=1
Shutdown the system. Plug in the USB key (or optical drive) containing the Ubuntu image.
Power on and immediately press Ctrl-L and then Esc. Select the USB device and proceed with the installation. Wipe out everything and install Ubuntu by itself. I recommend setting up partitions manually (swap etc) if possible, but it isn’t necessary.
Once installation finishes, reboot. Press Ctrl-L and Enter. Ubuntu should boot in the the blink of an eye – seriously fast thanks to the SSD and 5th gen. Intel Core series processor.
The touchpad, touchscreen, and sound don’t work yet. Until drivers get mainlined into the kernel, the amazing Tom Sowell has released a modified package. He’s awesome. Bring up a Terminal and enter the following commands:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install curl
curl -LO https://github.com/tsowell/linux-samus/releases/download/v0.2.2/linux-samus-ubuntu-0.2.2.tar
tar xvf linux-samus-ubuntu-0.2.2.tar
sudo dpkg -i *.deb
I ran into issues with Tom’s instructions at this point, perhaps due to the Xubuntu Core image I was using. Not totally sure. GRUB needs to be updated, which I had to do by hand. In the terminal:
sudo nano /etc/default/grub
In that file, find the line GRUB_DEFAULT=0 and change it to:
Press Ctrl-O to Save and Ctrl-X to exit. This changes the default boot option to the Samus modified kernel. Finally in the terminal:
This will generate the new GRUB config file. Reboot and behold, a working touchpad and touchscreen. To enable sound, bring up a terminal and enter the following two commands:
ALSA_CONFIG_UCM=ucm/ alsaucm -c bdw-rt5677 set _verb HiFi
Initially the volume was a bit low, but after another reboot everything was nice and loud at max. Also, go into the main Ubuntu Settings > Additional Drivers to enable Intel-specific proprietary microcode. Check out my other blog posts for additional optimizations and configurations.
Enjoy the new Samus powered by Ubuntu!
If a system upgrade occurs and functionality spontaneously disappears, the Linux kernel probably updated and regenerated GRUB. Clean out the old one(s) to get back to normal. In a terminal:
dpkg -l | grep linux-image-
Look at the list carefully. Notice the digits following “linux-image-“. Use the following command, replacing the “XX” with the version number of the unneeded kernel.
sudo apt-get autoremove linux-image-3.19.0-XX-generic
Be sure to leave the modified “samus” kernel and the newest stock kernel (in case something… “undesirable”… happens).
Again, once drivers for the Pixel receive mainline support, all this will become unnecessary. Until then, a little bit of Linux-fu isn’t too much to ask.
August 14, 2016 Update – For Ubuntu 16.04 and other editions experiencing installation issues, here is a workaround!
First, download the Ubuntu Minimal ISO. You will also need a USB to Ethernet adapter, as wireless drivers are not included and all installation packages must be downloaded on the fly.
The installer needs to run in basic low graphics mode. I can’t recall off the top (I only wanted to do this once) but I believe I selected option 7.. It will boot successfully. Then run through normal installation, choosing the desired DE during package selection. In my case it was the full Xubuntu system. Finish up, and reboot.
The mainline kernel has added a lot of support, but some things still aren’t 100%. Update to raphael’s kernel with his included directions, basically a recent version of tsowell’s work.
Hey thank you for the great resource. I’ve installed mint on my 2015 Pixel, and patched the kernel using tsowell’s package. I was able to get the touchpad, touchscreen, and sound back, but I still can’t seem to get the mic and webcam to work. Do you have any advice on the matter?
The mic is a known issue on tsowell’s github.
It’s rumored mainstream driver support is coming to the Linux kernel soon, so hopefully these workarounds wont be necessary after a few months.
Hey dude, thanks for the little guide. I managed to get everything apart from the microphone working but now I’m having problems with audio.
I’ve tried starting pulseaudio manually and whatnot but nothing worked. I keep getting this error when I click on pavucontrol:
“Connection to PulseAudio falied.
In this case this is likely because PULSE_SERVER in Environment/X11 Root Window Properties or default-server in client.conf is misconfigured.”
Do you happen to have any idea how to fix it ? I really enjoy my Pixel with a native Xubuntu install rather than through Crouton..
Thanks for the kind words!
Did you be sure to perform the last step after rebooting into the new samus kernel for the first time? (ALSA_CONFIG_UCM… etc)
I’m familiar with pavucontrol from some of my other projects, but I didn’t mention it in this article. Tom’s workaround uses ALSA
If you need PulseAudio for a special package or personal requirement, that might take a bit of figuring out. Otherwise, audio should work just fine.
As I mentioned, I had to restart a second time to “fully” take effect because initially it sounded a bit muffled. No issues whatsoever after that.
Followed your instructions to the letter and Ubuntu no longer boots up at all. No pre-load screen or anything.
Any ideas on what’s broken and if I can recover my installation?
I need a little bit more info. What flavor / version of Ubuntu are you using?
Troubleshooting GRUB on the Pixel is a little tough because it does not (in my experience) respond to the classic “Hold Shift” and get a GRUB menu bypass trick.
GRUB is probably accidentally pointed in the wrong direction. I’m not sure why this would happen to a fresh install, there should only be the two kernels (samus and the original) installed unless you’ve got a specialized environment.
I would boot into a live Ubuntu USB / CD, and repair GRUB with either Boot Repair or the chroot method linked here.
Once you’ve got a working desktop again, the troubleshooting begins. You’re going to need to edit /etc/default/grub and change:
Don’t forget sudo update-grub after that, so that GRUB is forced to display itself and present you with boot options.
That way you can figure out where the holdup is occurring and manually boot into the samus kernel. If you ran apt-get update/upgrade in between one of the restarts it may have accidentally installed a 3rd kernel that is messing with things.
Ultimately, if you can’t fix the old installation, I’d reinstall Ubuntu, install the Samus kernel, but when it comes to updating GRUB, skip the “1>3” line and try my above recommendation of the HIDDEN lines. When you restart, examine precisely what boot options GRUB presents and go from there.
Thanks, Resetting grub did the trick! Shame no one has made a package that contains drivers for trackpad/touchpad and soundcard. I cant get any of them working yet when I boot the USB on another laptop they all work so its clearly a driver issue 🙂
Hi there, thanks for the guide. Do the USB type-c ports work well? how about video output from them?
Yep, video output works fine.
Tested and confirmed 4K @ 30hz.
I wonder if I’m the only Pixel 2 LS owner who’s not able to install ubuntu on the chromebook 🙁
Every time I try to boot any *buntu image, i get this error:
graphics initialization failed
Error setting up gfxboot
I guess because ubuntu takes a wrong guess about the display in use. And indeed if I use an Arch ISO image, or a Debian one, they will prompt me to scan again for the video resolution and manually choose the best one: from that point on, i can run the text/graphical installer.
Are your instruction referring perhaps to the old Pixel Chromebook, or am I doing something wrong?
These instructions are for the 2015 Chromebook Pixel 2.
It appears that the latest 15.10 *ubuntu ISOs are all experiencing that issue.
Have you tried 15.04? Or maybe a 16.04 Alpha? I’m sure there’s a correct kernel boot argument to pass somewhere, let me look into it a bit more.
So far I’ve managed to run the Live ISO of Mint 17.3 (which is based on 15.04), and now I’m using that distro, but i really would like to install a more recent *buntu version… not an Alpha though :p
Sadly I’m not good at these kind of tweaks so, if you find a way to tweak Ubuntu’s Live ISO in order to make it show up on the Pixel2, I will really appreciate it.
All you have to do is type ‘help’, then press enter and let it do it’s thing
I’m having the same issue. Anyone found a workaround for newer images of Ubuntu? I did get Fedora to run and install, but would like to try Ubuntu.
I recently discovered the workaround!
Download the Ubuntu Minimal ISO.
You will need a USB to Ethernet adapter, as wifi drivers are not included and all installation packages must be downloaded since minimal ISO is minimal. It will boot successfully in the basic low graphics mode installer. I can’t recall off the top, I believe I selected option 7.. Then run the normal minimal installation, choosing the desired DE during package selection. In my case it was the full Xubuntu system. Finish up, and reboot.
The mainline kernel has added a lot of support, but some things still aren’t 100%. I updated to raphael’s kernel, basically a more recent version of tsowell’s work. Will update OP with the info soon!
I have not had any like getting any version of Ubuntu to load. I’ve tried AMD64 Desktop 15.04 and 15.10. Both result in a boot error saying “Error setting up gfxboot”. For 15.04, I had to type “help” when the error appeared and everything booted fine after that.
I’ve been able to get 15.10 running. First I installed 10.04 then ran do-release-upgrade.
Followed instructions and installed Lubuntu 15.04 from USB stick. It all worked pretty well, including the touch screen, track pad, camera and sound without needing the extra driver installation instructions. (Not tried using the microphone). Thanks.
Thanks for the instructions. I have one question, is it possible to go back to ChromeOS after doing this kind of install?
You can recover your chromebook using the chromebook recovery utility: https://chrome.google.com/webstore/detail/chromebook-recovery-utili/jndclpdbaamdhonoechobihbbiimdgai
I totally wedged my Chromebook Pixel so that it wouldn’t boot at all (and had no ChromeOS to boot to). I started over and fixed it.
Unfortunately your workaround for 16.04.1 didn’t work for me. I tried a USB to ethernet dongle (plugged into one of the USB Type-A slots), but the minimal install didn’t recognize any network interfaces. Any ideas? Anyone?
Ive just updated my crhomebook pixel with the latest version of Ubuntu and added the latest kernel mentioned. When I reboot, the wifi has been disabled and the display is very small.
Am I doing something wrong?