Shared publicly  - 
Booting stock LinuxMint (including kernel) on the Chromebook Pixel.
Selden Deemer's profile photoLydia de Jongh's profile photoBrian Howell's profile photoBill Richardson's profile photo
Ah, since you're using the stock kernel, you don't have the input devices (touchscreen and touchpad) right? The changes for atmel_mxt_ts and chromeos_laptop should be ready by 3.9.
What's new in Pixel's BIOS:

Previous Chrome devices have had limited support for booting alternate OSes. While it has always been possible to install your own customized version of Chromium OS, the unconventional nature of the Chrome OS BIOS (fast, simple, secure) is radically different from the legacy BIOS environment that off-the-shelf PC OSes expect or require. Still, as with the rest of Chrome OS, we try to continually improve to meet our users needs. Since part of the Chrome OS BIOS is read-only, we generally only get to make major improvements in the BIOS by releasing a new Chrome device.

The Chromebook Pixel is no different in that regard.  As usual there are a number of changes that are (hopefully) invisible to the user, but one change that is not invisible is the support for a user-provided custom bootloader. Chrome OS firmware normally consists of three distinct BIOS images. First, there is the read-only BIOS, which is (duh) read-only. It can’t be modified without disassembly. Then there are two read-write BIOS images, called RW A and RW B. The read-only BIOS is what runs when the machine is first powered on. It checks the two read-write BIOSes (A, then B), looking for one that is correctly signed by Google. If it finds one, it jumps to that image, which then looks for a valid kernel, and so forth. If there is no valid RW firmware (or some other fault has occurred), the execution stays in the RO BIOS and enters Recovery mode.

With the Pixel, we’d added an extra (unverified) BIOS slot. It only works in developer mode, and you have to explicitly enable it, but we’ve put a copy of Seabios in the Pixel firmware. Here’s how I booted Linux Mint on it:

1. Enter developer mode (hold Esc+Refresh, poke the Power button). When you see the recovery screen, press Ctrl-D, then Enter.

   Remember that in dev-mode, you'll see the scary boot screen at every boot. Just wait 30 seconds or press Ctrl-D to boot from the SSD. The first boot in dev-mode will take 5 minutes (so someone doesn’t flip it while you’re up getting your coffee).

2. Log in, download the latest 64-bit USB image from

3. Get a root shell: Press Ctrl+Alt+T, then run "shell", then "sudo bash".

4. Use 'dd' to copy the image onto a USB stick or SD card. For example

     cd /home/chronos/user/Downloads
     dd if=linuxmint-14.1-cinnamon-dvd-64bit.iso of=/dev/sdb bs=1M

   The standard cautions about picking the correct /dev/??? apply!

5. Run

     crossystem dev_boot_usb=1 dev_boot_legacy=1

6. Power off, then on again.

7. This time, when you see the scary boot screen, press Ctrl-L instead of Ctrl-D

8. When you see the SeaBIOS screen, press ESC

9. Pick the drive to boot from

10. When you see the "Automatic boot in 10 seconds...", press ESC

11. Highlight "Start Linux Mint", press TAB

12. Replace "--" with "mem=4G"

13. Press ENTER

The keyboard and WiFi works (for open access ports at least), but the trackpad doesn't. You'll have to connect a USB mouse.

Installing it on the SSD is left as an exercise for the reader. :-)

No, there's no way to set the legacy boot as the default option.

If you want to tweak your own SeaBIOS, you'll have to ask +Stefan Reinauer. He's the one who made it work.
Doug H
Very cool.
This is the info I've been looking for! So I'll be able to install linux in developer mode and then setup my Android development environment as usual?
One step closer to convincing me to get a pixel.. 
Shazam for that new boot option, nice!  

Re tweaking your own SeaBIOS... I'm confused.  Why would I want to do that?  Sounds like you're saying out-of-the-box, there's a SeaBIOS that sets the machine running like an old normal bios, so it just works (you can go into dev mode and have access to it).  Is that correct? "We’ve put a copy of Seabios in the Pixel firmware."  It comes that way, or Stefan Reinauer hacked up a SeaBIOS?

I wonder if there is a hacked up SeaBIOS that takes care of the video issues, such that the hacked up SeaBIOS could now be wrapped (vbutil_kernel) and used to boot (say) FreeBSD on Stumpy?
and coreboot upstream just got pushed. I'd like to put in a plug here for crouton,, a very nice way to get an ubuntu development environment on vt2, leaving the chromeos on vt1 up there and working. It's terrific. And it leaves you with all the goodness of the chromeos kernel still there; and, as of today, the touchscreen works quite nicely in crouton. Give it a look. (disclaimer: I'm a user of crouton, not a contributor :)
This is an incredibly open high end laptop. 

+Trever Nightingale It comes that way, but the section of flash memory that it lives in is writable. We tried chain booting into SeaBIOS through a kernel partition on Stumpy as you suggest, but there was something really subtle that kept it from working and we just didn't have the time to figure it out. We had more room in the flash on Link, so Stefan just shoved it in. Some clever person with more time can no doubt figure out what we're overlooking. Hint, hint.

There's a 2M RW_LEGACY section of the flash that is run when you press Ctrl-L. By default it has SeaBIOS in it.;a=commit;h=a2326ee152ab5b8aee924ccf794cee38d54909bd
Doug H
I'm not knowledgeable about the following at all, but has anyone who's been on the inside for awhile considered dual booting Android on this? Or is that just totally out of the realm of possibility?
Okay thanks for the clarification.  

It struck me immediately that this is a nice piece of hardware that there's no way I'd buy myself, in part because I have more Chrome OS devices than I know what to do with.  But the out-of-the-box adaptability (very few of us have the time! out-of-the-box matters...), now you're giving me a reason to buy one.  This isn't fair.  


Anyways great work.  Thanks.
Eh. Putting Linux on a Linux (kernel) machine doesn't strike me as terribly dual-booty. Put Windows on there and then you're talking. There's too much Win-specific software out there for the Chromebooks to be much more useful than a tablet+Bluetooth keyboard without having dual boot.

To clarify, my point is this is a very niche product as it is. Adding Linux doesn't really expand that niche.
+Brendan Dillon Here's something you can't do on your Android tablet... Chromebook Pixel + Crouton + Ubuntu + Wine. Boom. Your x86 Windows apps run.
It quite expands the niche if (like me) you're a developer, so I don't agree.
+Bill Richardson is the SSD and RAM upgradable?  Lots of people had issues using a bigger SSD with samsung chromebox.
Sorry, no. In order to make it at thin as possible, we had to give up on socketed components. But the WiFi version has 32GB and the LTE version has 64GB, and the size of the OS hasn't changed. So you have at least 21GB for the stateful partition.

And an SD card plugs in almost flush. Looks like about a sixteenth of an inch or less sticking out.
+Benson Leung It won't run Adobe worth half a dam, won't run any Auto desk products at all or really anything that doesn't already have an equivalent on Linux. And seeing as how I've already run Ubuntu on my smartphone previously... Meh.
So RAM is not upgradable? Too bad. Any chance for a production run with 8 or 16 GB of RAM? :)

Incidentally, does the i5 CPU, chipset, and BIOS support VT-d (and VT-x)? Also, is TPM hardware still present (and if so, can a user installed OS take ownership of it/can user clear it with physical presence key-combo)?

The Pixel is a gorgeous piece of hardware, and I'd love to be able to transition away from Lenovo Thinkpads, but my TPM and VT-d requirements are rarely satisfied elsewhere.
The chromebooks/boxes released after last May all support VT-d (IIRC is that the right name -- I always call it vmx). Further, the Pixel does not have vmx disabled and locked out in firmware, as the earlier ones did, so one can have it be enabled by adding a kernel command line argument. No firmware reflash required.

I've booted Windows 8, 7, and Linux on these systems with a kvm kernel module. If you're seriously interested in doing this, let me know, I can show you the steps: you need to build and install a kernel so you can get the kvm kernel modules. One can do the following:
- install a kernel with kvm enabled 
- boot and install windows
- install Red Hat's virtio drivers into windows
- restart windows and, this time around, tell qemu to present the guest with virto disk and net drivers

and things run really well. These are very fast, and one interesting observation is that ChromeOS itself presents very little load to the system, as compared to many "full up" OS installs: a VM with linux on Chromebooks runs (measured) much faster than a VM with linux on OSX for tasks such as building kernels, running qemu (yes, I do that :) and so on. That's one part of the picture people don't always realize when they look at the DRAM size. OSX does a lot of nice things, but that is not without cost.

Anyway, I think there's a rough factor of 10 improvement in disk IO with virtio as opposed to emulated ata disks. The network with virtio is also much faster.  I've run Office in the Windows installs, as well as other Windows apps as a test.
Thanks for the info, +Bill Richardson and +ron minnich. I have a couple followup questions.

The Chromium TPM document covered most of my questions on that topic. It appears that I shouldn't attempt to disrupt the two TPM NVRAM allocations used for rollback prevention, and I will need to capture the random owner password on first-boot in dev-mode, but otherwise I don't need to do anything special. I see also that PCR0 is extended with normal/developer device mode. While it's reasonable to assume, I'll still ask: the read-only firmware->read-write firmware->kernel values are used to extend PCRs in the boot sequence, so a static-root-of-trust-for-measurement can be computed at each stage, correct?

Regarding virtualization terminology, there's a couple distinct technologies for which Intel uses confusingly similar abbreviations. VT-x is what they call their Vanderpool hardware assisted virtualization instructions (which provides root-mode and non-root mode, as a "ring - 1" for hypervisor operations) -- it's widely available on CPUs going back to the Core 2 era. VT-d is what they call I/O directed virtualization, or virtualized IOMMU, and it is not as widely supported (many, but not all i5/i7). With VT-d capable hardware, it's possible to assign a PCI device to a non-root virtual machine without enabling arbitrary DMA by that VM which could compromise the hypervisor or other virtual machines.

It probably sounds odd that anyone would even care about this sort of feature on a desktop/laptop, but the feature is useful/necessary to implement some unconventional hardware isolation security strategies. It's also odd that Intel would enable/disable support for it in such a scattershot manner across their various SKUs.

The i5-2450M in the Google I/O 2012 Chromebox, for example, supports VT-x, but does not support VT-d. The Pixel tech specs on the Play Store only specifies a 1.8 Ghz i5, which is why I asked about VT-d specifically.

I'm also using Xen as a hypervisor (with Linux dom0), rather than Linux KVM, but with this legacy BIOS option, I don't imagine that would make much of a practical difference.
Oh silly me, I just realized you can download photos from Google+ in high resolution, and you have a /proc/cpuinfo output that's legible as an i5-3427U. Intel's spec sheet ( shows VT-d is supported (and TXT also, which requires VT-d).

Thanks again for helping me get answers to my crazy questions. :)
+Daniel Selifonov FWIW, no other PCRs are extended.  Normally, Chromebooks do not use a traditional trusted boot mechanism for implementing secure boot-- instead it is through proactive signature checking. 

As to the two NVRAM spaces, they probably won't be easy to accidentally trip over/corrupt. One is locked by the bGlobalLock in dev and verified modes and the other by PP_LOCK.  
Can I put os x on this?
+Will Drewry: Good to know, so SRTM is out. However, since the CPU supports TXT, doing DRTM against a kernel/initrd with SINIT, and sealing on PCRs 17 to 22 should still be sufficient to achieve my objectives.

Thanks for your insight.

I'll have some more reading on TXT to do. :)
> And an SD card plugs in almost flush. 

If someone gets time, would be awesome to see an I/O benchmark comparing a fast (UHS-I) SD card to the internal SSD, to get a feel for how plausible it is to run with a large SD card permanently inserted.
I was wondering about that, but speed depends on how fast the card slot communicates with the rest of the system. If the built-in card reader transfers data at USB2 speeds (~20mb/sec), a fast card does little good, other than having a faster access time.
+Selden Deemer Yes, that's why I'd like to see a benchmark.  I'd hope that it's a PCI SD reader, not a USB mass storage one.
Name a benchmark and I'll try it out.

Since I have crouton I can run whatever you like.
+ron minnich Even just this would be good:

dd if=/dev/zero of=outfile bs=128k count=1000
dd if=outfile of=/dev/null 

with outfile on the SD, and the SSD.  Also "dmesg | grep sdhci" would be great.  Thanks!
I was slightly surprised by a comment in one of the reviews: "The system packs an Intel Core i5 processor, which Google says packs enough oomph to permit smooth scrolling using the glass touchpad."

Does scrolling still involve the CPU? I would think it would be a task that could be offloaded to the GPU, but evidently I'm missing something. Maybe they just mean the onboard graphics of the i5.
SeaBIOS is the "old-school" 16bit BIOS, any chance we can cram the UEFI bios into that space to make the Linux boot process easier?
+Chris Ball I don't think that benchmark will tell you much that's useful. SSDs have widely differing perf characteristics for small reads and writes - just a large single streaming read and write won't tell you much about how well it'd work for something real.
localhost local # dd if=/dev/zero of=outfile bs=128k count=10000
10000+0 records in
10000+0 records out
1310720000 bytes (1.3 GB) copied, 5.18578 s, 253 MB/s
localhost local #  dd if=outfile of=/dev/null 
2560000+0 records in
2560000+0 records out
1310720000 bytes (1.3 GB) copied, 1.40434 s, 933 MB/s
localhost local # 

I'll get sd later. Maybe should not have done this in the middle of git clone of coreboot but there it is.
+ron minnich Thanks!  For the SD test, please add this after the first dd:

echo 3 > /proc/sys/vm/drop_caches

(Please let us know what kind of SD card you're using, too.)
ok, but you did not tell me yet if you like the number :-)
The SSD number looks great, but I expected that -- what I'm trying to find out is how well the bandwidth provided by the SD controller to UHS-I SD cards compares (which is why a streaming test is a fine comparison).  Indirectly, I'm trying to find out whether it's an SD 3.0 controller with 1.8V support for the UHS high clock rates.
+Greg Kroah-Hartman Regarding UEFI: maybe. You have 2M to play with, so it might fit. I don't think Tianocore includes a USB stack, though. Start a conversation on if you feel like investigating. I suspect it'll be more trouble than it's worth, though.
Oh, great. Then you're way ahead of the game. I look forward to seeing it!
+Brendan Dillon If you need something like Autocad on linux, try Draftsight. It works great and opens all autocad files with absolutely great reliability. For the Adobe software, I have found a combination of Krita, Gimp, Inkscape and Digikam really work very well for me.

You can even try Draftsight on Windows and Mac if you want to be sure that it is up to par, before running on Linux.

Best of luck.
You run Steam and TF2 on it yet? What's the performance like? :P
+Brendan Dillon I can't think of any windows specific software I use day to day.  Even OS-specific.  If you're talking about autocad or similar, then sure I suppose.
+Cj Holder I've never even run Steam on Windows.
+Chris James Should be able to boot any 64-bit Linux, AFAIK. 32-bit will probably work too. I don't know anything about LTE plans, and couldn't say if I did. I believe the major obstacles are regulatory, though - different frequencies, power, testing requirements, certifications, licenses, etc. Every country has its own rules. It can take months to get approval in the US, so it's probably the same elsewhere too.
I continue to be in awe at the relative "openness" and community participation we get from Google, on all fronts, compared to the other big players in these markets.  
+Bill Richardson Is it possible to use this to dual boot into another Linux distribution, while still being able to dual boot back into the stock ChromeOS (one that will continue to receive updates from Google)?
 simply, just install Gentoo and use it.
Jeff Li
+Kane Blueriver 我觉得装个Linux还差不多,个人认为Chrome OS还是稍微差一点,而且Google哪些服务在中国基本都用不了啊
+Bill Richardson Are there still plans to offer the C7 an implementation of SeaBIOS? Would help in getting some of the more... robotic... forms of Linux up and running ;)
I would love to use Ubuntu on Chromebook :)
Thanks for keeping it open
Very disappointing that the device's parts cannot be upgraded.  Not sure why the marketing team chose to use the term solid state "drive' when if soldered onto the PCB is simply flash storage.

I was looking forward to purchasing one and adding a 256GB mSATA drive and more RAM, akin to the process I used with my CR-48.  This is the perfect multibooting developer device - guess I'm sticking with my rMBP until either the specs or price point change dramatically.  I want Google to succeed as a hardware platform, and CrOS to also have larger adoption.  Unfortunately, I feel that power users are left out in the cold.  Here's to hoping for a unified CrOS/Android ecosystem in the near future.
+Chris James - As +Benson Leung mentioned earlier in this thread, the drivers are being upstreamed to the official kernel, so the Chrome OS hardware will be supported Real Soon Now. As of today, they aren't.

+Andrew Kachaniwsky, +Fawad Hassan - Thanks! That's been our goal since the Cr-48, and it says a lot for the Google culture that we've gotten full support for it, even though it's been a lot of extra work. At, the first thing is "Focus on the user and all else will follow." From my experience, Google really believes in those thing.

+Dalton Marks Understood. Sometimes we have to make tradeoffs. We just couldn't use sockets without making the case thicker, and our primary goal is to build Chromebooks, not Linux PCs. Personally, I've found that I'm happier just using the secure shell app and screen to connect to my 16-core Z620. Tag the secure shell app to open as a window, and the Emacs bindings work fine.

+Christopher Price The C7 BIOS flash chip is only 4M, not 8M, so it doesn't have room for a third BIOS. Plus, as I mentioned way up above, most of the significant BIOS changes can only be made when we launch a new device. However, if someone can figure out why chain booting into SeaBIOS doesn't quite work, you could install SeaBIOS as a third kernel partition. A little awkward, but it would accomplish the same thing.
"Tag the secure shell app to open as a window, and the Emacs bindings work fine." -- which is to say, open the Apps window (little grid-like thing at bottom), find the ssh app, right click it, you'll see how to make it come up as a window.
One step closer to convincing me to get a pixel..

When running Linux, what is the actual native screen resolution of the Pixel? There seems to be a lot of screen real estate in the sample image, but I'm just curious how high it will go. It's one of the deciding factors before ordering a Pixel.

Here's why I like mine. I run it in normal mode with an Ubuntu or Arch chroot (still prefer Arch, but the crouton chroot is more integrated with Pixel). On vt1, I have chromeos sitting there, managing all the ugly bits that drive me crazy -- wireless, power, all that stuff. On VT2, I have a development environment where I do coreboot, NxM, and other things. All that code is sourced from,,, whatever. But here's the fun part. On, I've got stuff I'm writing, presentations, mail, all the stuff I really don't want to lose. "Spotlight", for me, is the search box in Drive.
So my stuff's in the cloud, it's cached on my machine, and I can work offilne as needed doing writing and developing. This is not at all how I used to use a Mac, and it's why the comparison of a Mac -- essentially a standalone PC -- and a chromebook doesn't make much sense. At least to me.
+ron minnich What do you mean by "normal mode".  As in opposed to "developer mode"?   I didn't think it would be possible to run a chroot without going into developer mode.
+Bill Richardson Chainloading SeaBIOS from a partition on-disk is no problem... the not-working part is what I was fearing. I have a build of Android ready to go (tested on Acer's Windows variant of the C7), just need SeaBIOS to make it work. Unfortunately, adapting (public) codebases of Android to coreboot is non-trivial, we're just abstracting from BIOS to EFI... coreboot is a bridge too far I'm afraid.

Getting Android running on Pixel seems to be a mere $1,299 bridge away. ;)
Wow, if they sold it with Linux Mint by default they'd have a real Apple killer.  Provided the touchpad worked....
So is it possible to remove chrome OS and just make this a linux computer? I'd like to install arch linux or fedora as the sole operating system on this. Is that possible? Hope google made this thing open otherwise I doubt it has a large enough market on it's own with the consumers(without the hackers/tinkerers).
This is great and all but for a system that is designed to boot up fast why cant the unverified OS warning be disabled? It adds another unnecessary step.... Is the whole idea to make booting another OS not as attractive as booting ChromeOS? Please don't say it's for security. Waiting 30 additional seconds to boot or having to enter an extra key combination at boot doesn't make me feel secure... It makes me feel annoyed...
+amos sud that's the way all of the chrome boxes are, if you don't like that, don't buy one, it's your choice.
+Greg Kroah-Hartman All chrome boxes are useless other than for web browsing then. Simple. Fact. 
Unless this laptop can replace a full fledged computer (since it's priced in that price category), it is simply bound to fail, using simple economic logic (very elastic demand for it).
Not even a niche market will make it a success. Google either open it up so people can install whatever the hell they want on it or just prepare for introducing lemons into the world which aren't good for anything associated with a full fledged computer.
+ankit pasi Calm down. How many times do you reboot a system, anyhow? If you've got suspend/resume working properly, then you don't even need to go through the dev mode screen more than once every few days.

The vast minority of our actual users will even consider putting the system into dev mode, and a small minority of those will try to boot a different OS and never use Chrome OS again. You're probably talking about a fraction of 1% of users. If anything, the niche is users trying to buy Chromebook hardware and replace it with a different OS.

And even for that fraction of 1%, we're not talking about a dealbreaker. The thing will still boot your other operating system in dev mode.
+ankit pasi wait till you see one of these boxes and use it for a bit, I think you will possibly reconsider your opinion once you do.  I saw one and was very impressed, and I see a lot of hardware.

As for just using chromeos, it's probably not for you, that's fine, it wasn't designed for you either :)
+ankit pasi oh, and yes, I have used chrome os, it's not for me either, with my workload, but one member of my household flat out loves it, and for their workload, it is perfect for getting their needed work done.
I'm not particularly knowledgable when it comes to this sort of thing, so I was wondering, would the same technique work for any distro? I adore the laptop but need to run linux. 
This is a SAN disk extreme pro 8 GB SD card, 8 GB. (are there enough adjectives on this thing? What 
comes after 'extreme pro'?). Given the performance I think I'd like a bigger card to leave in there all the time.

localhost SD Card # sh -x /tmp/test 
+ dd if=/dev/zero of=outfile bs=128k count=10000
10000+0 records in
10000+0 records out
1310720000 bytes (1.3 GB) copied, 13.0103 s, 101 MB/s
+ echo 3
+ dd if=outfile of=/dev/null
2560000+0 records in
2560000+0 records out
1310720000 bytes (1.3 GB) copied, 13.4762 s, 97.3 MB/s
localhost SD Card # 
So, as is the pattern with me and SD cards, I decided to time a full go build and ...
[ 2838.981414] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129537: comm bash: reading directory lblock 0
[ 2838.981440] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129541: comm bash: reading directory lblock 0
[ 2838.981459] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129558: comm bash: reading directory lblock 0
[ 2838.981473] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129558: comm bash: reading directory lblock 0
[ 2838.981489] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129552: comm bash: reading directory lblock 0
[ 2838.981504] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #140624: comm bash: reading directory lblock 0
[ 2838.981908] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129558: comm bash: reading directory lblock 0
[ 2838.982354] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129537: comm bash: reading directory lblock 0
[ 2864.911583] EXT4-fs error (device sdb1): __ext4_get_inode_loc:3542: inode #129541: block 524320: comm bash: unable to read itable block
[ 2864.911597] EXT4-fs error (device sdb1) in ext4_reserve_inode_write:4356: IO failure
[ 2866.849531] EXT4-fs error (device sdb1): ext4_find_entry:935: inode #129552: comm bash: reading directory lblock 0
[ 2866.849565] EXT4-fs error (device sdb1): ext4_read_inode_bitmap:171: comm bash: Cannot read inode bitmap - block_group = 18, inode_bitmap = 524306
[ 2866.849578] EXT4-fs error (device sdb1) in ext4_new_inode:895: IO failure
[ 2869.930272] Aborting journal on device sdb1-8.
[ 2869.930285] Buffer I/O error on device sdb1, logical block 557056
[ 2869.930295] lost page write due to I/O error on sdb1
[ 2869.930304] JBD2: Error -5 detected when updating journal superblock for sdb1-8.
+ron minnich Those are very acceptable speeds, definately acceptable enough to put a home folder on.
Would it be safe to assume the card reader supports SDXC?
+Gabriel Miller I haven't been able to get EXFAT formatted cards to work on my Cr-48 or my Samsung Chromebook. I'm not sure about the new Chromebook Pixel, but it's just a software change. Under Debian, EXFAT works once I install exfat-fuse and exfat-utils.
+Matt Pandina I meant hardware support--is the card reader capable of SDXC?

Also If I'm not mistaken you should be able to just format the SDXC with ext3 or 4 and avoid the exfat business entirely, no?
+Gabriel Miller There actually isn't much difference between SD, SDHC, and SDXC. It should all be done in the drivers/software. (I wrote a library for AVR microcontrollers from scratch that lets it read from SD, SDHC, and SDXC cards.)

The problem with EXFAT is that it's newly patented by Microsoft, and it is written into the SDXC standards. I think you should be able to format it as FAT32 and still have a DSLR and a Chromebook read it, but I haven't tried.
+Matt Pandina I see. Thanks for the information.

Also I was just imagining using it for storage, not bouncing it between a camera and the laptop--I understand your dilemma now.
Shame for the non-upgradeable SSD, I woud have bought one if it wasn't for this. +Bill Richardson I understand the compromises for the sake of a slim waist, but many ultrabooks are about the same size, and still use upgradeable mSata parts.. Too bad, I'll pass for this time, 32/64 just isn't enough if you're not around a fiber connection..
+Brendan Dillon you can use MS WOS virtualized too, as i understand even in a slow mode with a Virtual box or QEMU installed at ubuntu, or perhaps even with Xen VGA passthrough - i do not know if it is possible -
A suggestion for Chrome OS: an easy to use QEMU - KVM based web app - or HTML interface - 
+Miguel Mayol - For the best performance, and least memory usage, it would seem like the best option is to use Linux in a chroot.
+ron minnich Huh -- that's fast, yet I found out in another thread that it's a USB2 card reader, not a PCI one.  I wonder if that's the real write speed onto the SD media.
+Ron Minnich (In fact, I think your transfer rate is faster than the USB2 max transfer rate of 60MB/s, so something weird is happening?)
+ron minnich: You just measured the speed of in-memory caching of filesystem contents, not the write out to disk. It'd be much more interesting to see a "dd if=/dev/sdb of=/dev/null bs=1M count=100".
Hey, I'm just running whatever people ask me to run ... that would not have been my first choice either :-)
It is cool .. please I need try with Fedora ...
So in the Pixel case, SeaBIOS in the third slot is a coreboot payload, whereas in a Stumpy case, as a wrapped "kernel", Seabios would be loaded and executed by uboot? Do I have that correct?
+Daniel Yucra Go for it. The only reason I picked Mint was that creating a bootable USB or SD is as easy as "dd". Ubuntu requires you to run some sort of conversion program, which is an unnecessary pain.
where it is sold Chromebook Pixel ?
Thanks i go try !!
Saludos desde Lima Perú !! 
So I was able to install a distribution straight into a resized ROOT C partition, but where do I tell the installer to install the bootloader so that SeaBIOS can properly see it?  Do I tell the ubuntu installer to use the MBR of /dev/sda?  That will leave Chrome OS alone right?  I guess I can just try it and reflash if I muck it up :-)
+ron minnich In response to your earlier post, I am seriously interested in doing some KVM virtualization on one of these Pixel machines. Clarity and more details on how to build and install a kernel as well as install the KVM modules would be very much appreciated. :) The interest spawns from a desire to contribute to the Chromium OS project. Their developers guide recommends running builds of Chromium OS in KVM / QEMU.

Also, the VT1 / VT2 setup you've got going on sounds very cool. How ever did you assign your Chrome OS, chroot, and VMs to VTs? Please forgive me if that is a noob question, thus far I don't own a Chromebook or do KVM virtualization. For the one day that I got to use a friend's Chromebook in dev mode, I was able to open of a tab containing a crosh session. Is that the kind of VT you're talking about, or is it like a traditional VT that most linux distros would have?

ty in advance
I'm interested in doing some low level development with the pixel. I noticed that there is a JDEBUG port on the motherboard. Is there any possibility of getting a pinout of this?

To set up a pixel to run VMs you need to be able to build a kernel for it that has a kvm module. It might make sense for me to set up a pre-built kernel for those who want it. I'll try to figure that out this week.
Will the LTE work on South African networks?  Like Vodacom or 8ta?
看起来很酷啊。 It looks cool.
A Google dev hacking a Google device with a non-Google OS. That's freaking awesome. :D
+Michael Mead not on c7 but on almost all other x86 chrome books . I can try if you want .
If I were to (haven't bought one yet) load a full linux distro beside ChromeOS would the LTE network connectivity work under the Linux OS as well as ChromeOS?
Thanks for the response, I'll follow what he's been working on with the Pixel.
Has anyone tried to get the trackpad and the touchscreen working with the modules from dave miller? If worked for me with the debian image he mentioned, but wifi does not work there.

So I thougtht maybe they can be compiled for mint? Because wifi works fine in the image Bill Richardson used. I tried to build the git repository with the kernel modules found in this guide without luck: 

These are the commands I used as root:
apt-get install git
apt-get install linux-headers-3.5.0-17-generic
apt-get build-dep linux
git clone
cd chromebook_pixel/
insmod atmel_mxt_ts.ko
insmod chromeos_laptop.ko 
Broken record time: unless you're really certain you want to build and boot your own kernel, and do all the extra work that comes with it, you should really give Crouton a look. I use it all the time now for my coreboot, Go, and other work.
I tried crouton. Works well, but unfortunately a few things don't work as well there. VMWare Player for example.
Might be I found the reason why the approach from +Dave Miller doesn't work for me. There might be a bug in the Linux kernel 3.2.0.
The described issue matches the symptoms my pixel has...

And also might explain why the wireless works fine in the linux mint version (uses linux kernel 3.5).

Did some testing. Apparently some wireless networks work without a problem while others don't. I turned on an older router and hence solved the problem for me. I'm using the pixel with the solution from Dave Miller: 
No. What I have done, starting in march or so of 2012, is boot W8 under KVM on a variety of x86 chromebooks (under chromeos). I got to the point that I had w7/w8 guests that booted with virtio disk and network, and they were fast. I don't do it any more because it requires a different kernel with the KVM module, and that means I lose auto update. Now that we have chroots like Crouton, I've decided the added benefit of KVM is not worth losing the goodness of auto update, since I don't like to run Windows anyway -- it was a proof of concept, nothing more.
+ron minnich , /proc/cpuinfo does not show vt-x enabled (running under chromeos).  Is booting under seabios required support virtualization?
on later x86 chromebooks, change the command line to boot with

dev mode, of course.
Many people have complained about the Pixel not having a replaceable SSD given the included one is very small, but no super thin ultrabook can ever pull that off.

My wish is for USB 3 ports. Then, we can simply buy a fast portable external disk and use it with the fast USB 3 port and hard disk space is no longer an issue. 
Yes +Dorian Peters you are right.  I'm see Chromebook Pixel as being my "terminal" to other devices going forward- it'll do the visuals/the UI.  Wifi or usb2 is plenty good enough bandwidth for that, and the real crunching is elsewhere.  What's a good tiny linux box to carry around?  Maybe I'll strip a usb3 laptop- battery life should be improved if the display is never used.  It can stay in the bag.  Or not.  The touchpad issues and missing keys on the Pixel are starting to drive me crazy.
+Tony Godshall you are not alone, the missing keys are bothering me too. But all in all the pixel is still very nice. I switched to current GNOME ubuntu 13.04 would be nice to have the touchscreen and the trackpad working there. Couldn't work with the debian because the wireless was not working properly.

Has anyone a working touchscreen and trackpad with the current ubuntu?
+Reto Seiz : I'm running quantal in a chroot and I can click and drag fine.  Two-finger doesn't scroll.  Under the +Avery Pennarun version of ion1.  
+Tony Godshall : Thank you for the reply. I fiddled around with chroot myself, but was unhappy with the limitations due to the way the system was designed. A few things don't work. For example limitations with running daemons, or VMPlayer won't work.

Then I found the solution from Dave Miller with debian and had a fine working touchscreen and trackpad. Unfortunately Wireless was an on and off experience for me. First I thought it was because of the brand new router I used, but wireless was also not stable on other routers as well. Instead of going back to ChromeOS and chroot I went on looking.

Next step was Linux Mint and currently Gnome Ubuntu. Wireless works fine on both, but touchscreen and trackpad do not. Also plugging in a Headphone does not mute the speakers.

I'm not yet ready to go back to chromeos and chroot. Because most of the time I started the pixel I did not use chromeos, but switched directly to the chroot. And in the chroot I was a bit unhappy with the limitations. Might be I go there again, but not yet. ;-)
+Reto Seiz as +Bill Richardson said you have to explicitly enable virtualization support (assuming you mean that when you say vmplayer).  Running daemons has restrictions in a chroot?
ah, change for change sake.  what was wrong with /etc/init.d/ , hmmm?  still, daemons can be run just fine without upstart- just read the config file and the man page.
Does anyone on this thread know whether it's possible from userspace to disable the touchscreen, light-sensor, and their i2c-2 bus ? I'd like to keep running the stock chromeos kernel, but I'd rather not spend battery power on those useless devices.
+Adam Bliss does lsmod show i2c modules?  have you tried rmmod or modprobe -r on them?
I tried to do the trick on my Samsung Chromebook. Linuxmint is on the SD-card, but the rest of your instructions don't work. What do I have to do to get the SD-card booting?
+Reto Seiz I had the same issue with the wireless. I installed the .deb files from +Brock Tice  available here and then edited the /etc/modules as described here and now everthing works perfectly. Debian 7.0, wireless, touchpad and touchscreen. Much thanks to +Brock Tice  for writing it up and providing .deb files for those of us to whom installing a kernel is a step too far!
+Bart Kuijer This procedure only works on the Chromebook Pixel. For the Samsung Chromebook, check out the "Linux on ARM" Google+ community.
+Bill Richardson So it's mid may now and I am on kernel 3.10-rc1. All devices are looking great but the suspend / resume issue still continues (the 2nd time you resume the device, it reboots). According to +Duncan Laurie 's post (, it seems the issue is primarily with the SeaBIOS (and a firmware issue which needs to be fixed). He has listed a few options. Also, the special keys on the keyboard are non-functional including the brightness, volume and keyboard backlights. Any ideas when you guys would be sending patches for these things upstream to the mainline? I can live without the special keys functioning but the suspend/resume is a critical issue. 
+Joseph Smyth I want to install debian but if for some reason it doesn't work... how can I restore the chromeos? do you know where I can find this version?

Version 27.0.1453.83 beta
Platform 3912.63.0 (Official Build) beta-channel link
Firmware Google_Link.2695.1.133

Thanks +Dinesh Joshi , another question, is the sound working well in debian? I have installed gnome and I can't control the sound... any ideas?
Guys any of you has this problem? The sound can't be controlled...
Now it can be controlled but the headphones do not work...
+Dinesh Joshi The special keys on the keyboard do function. They system sees them as F-keys. So it goes ESC, F1, F2, F3, etc. Remap the keys using that, and you'll be all set. I did the volume keys in the ubuntu keyboard mapping, and the brightness keys I had to download a tool to do the custom map, but the name of it escapes me.
+Steve Gavrilles yes I realized they were Fn keys. Typically laptops have a "Fn" key that activates the special function on those keys. Since the pixel doesn't have that key I was wondering if there is a key combination that'll allow me to do it.

Do you have a small writeup that'll help remapping those keys also for the brightness if you can point me to the tool it'll be great.
+Marco Ordonez I'm on Ubuntu 13.04 so I don't know how well Debian would work. I haven't tried the headphones. You should try the alsamixer. 
No they're not fn keys. They're F keys. You're thinking of the button combination fn+'another key', this is just F1-F10 on a keyboard. If you go to keyboard settings, you can easily remap the volume buttons. The only thing left is the brightness buttons, and unfortunately, I can't for the life of me find where I got the info from :-/
What is the right recovery image for google pixel? 
Is there something to fix the volume in Ubuntu? it works well in Debian but Ubuntu is not working...
Has anybody gotten the sleep / wake issue resolved? I'm on the mainline 3.10-rc1 kernel and it has that issue...
I've tried 3.9 and 3.10 and the volume worked on both, so I'm not sure what the problem is there. Haven't had time to look into the sleep/wake issue. I just turn it off for now. 
For me on 3.9 the wake/ sleep is working, when I close the pixel then I opened again it works as expected, what is the problem you are talking about?
Oh, I havent tried more than 2 times I think, it's not fixed yet right?
Any of you has bind the brightness keywords sucessfully? if yes please let me know how, I am on Ubuntu.

I did. There's a tool you have to download to make it happen, but I've looked and I can't find it. Google 'map brightness button Ubuntu' or something...that's how I found it. 
THanks man, I did it using xbacklight and custom keys in keyboard, if someone needs more detailed information please let me know.
I install xbacklight using apt-get, then I create two custom shortcuts in keyboard and mapped to the brightness keys (Brightness Up, Brightness Down ).


- To increase 
xbacklight -inc 10

- To decrease
xbacklight -dec 10

And it worked like a charm :)
When I plugin the headphones the music is still going to the speakers, I have no way to listen with headphones, anyone has the same problem?
+Marco Ordonez +Steve Gavrilles ok i think i have just gotten pixel to work to near perfection. I will post the info and link it here.


Sleep issue: You need to modprobe tpm_tis force=1 interrupts=no This needs to be put in /etc/rc.local for whatever reason. It doesn't work if you put it in /etc/modprobe.d/modules Also first time you need to modprobe it yourself. Then sleep / wake the machine a few times. It doesn't work perfect - it's hit / miss sometimes.

Volume issue:

Backlight: use ACPI call . Note this wont build with 3.10 kernel because the procfs kernel api has changed.

To change the backlight on/off use these commands:

sudo bash -c ‘echo “\_SB.KBLT.KBCM 0×00″ > /proc/acpi/call’
sudo bash -c ‘echo “\_SB.KBLT.KBCM 0×64″ > /proc/acpi/call’

Credits go to the comment on +Brock Tice's blog (

Keyboard bindings:

You can bind keyboard keys to volume up/down/mute, brightness up/down (xbacklight -inc/dec 10) per +Marco Ordonez's post. And you can map any two keys to the acpi_call commands which allow you to turn on / off the backlight.

Turn on keyboard backlight when the machine resumes by adding the the acpi_call command to a script in /etc/pm/sleep.d
Guys I am still having problems when I plug the headphones, the sound is still on the speakers, anyone else has the same error?
+Marco Ordonez  I experienced that but when I go to the sound settings and explicitly select the 'speakers' or 'headphones', the sound gets routed to the right device. But yes it is an issue.
+ron minnich +Daniel Selifonov regarding your comments back in Feb regarding VT-d.  Were either of you able to run the pixel with VT-d/iommu turned on in the linux kernel?  VT-x works, however, I have been unsuccessful in getting Xen to recognize iommu, even with trying various kernel parameters regarding iommu (iommu=1, iommu=force, iommu=workaround_bios_bug).  In the end I always end up with I/O virtualization disabled.  The hope here being to pass the Intel HD 4000 graphics directly to the VM, for better performance.
+Marco Ordonez Thanks for the xbacklight tip. It works great and I added those commands to the Custom Shortcuts in the Keyboard application.
The only downside is that there is no visual progress bar showing you  the brightness scale as you are adjusting the brightness.
But that is just a small detail...
Yeah, I would like to have the visual too but meantime this works well. It's good to know it worked for you.
+Marco Ordonez if you plug in a apple keyboard which has the brightness controls, it works fine with the pixel. I just need to figure out the keyboard bindings for the right Ubuntu / Unity commands. Then we will be able to see the visual indicators.
Hey +Dinesh Joshi , if you use xdotool works with visual indicator, try this:

sudo apt-get install xdotool

Bind for up
xdotool key XF86MonBrightnessUp

Bind for down
xdotool key XF86MonBrightnessDown
Can I revert the changes done to a bootloader? After installing Ubuntu as a second OS I cannot enter Dev mode for the ChromeOS. Any ideas? Thanks
I have a quick question. Once you turn the Pixel in dev-mode, will it stay in dev-mode after a ChromeOS update or revert back?
Anyone has ubuntu working with full resolution with regular font size?
Anyone has full resolution working on Ubuntu?
I cannot get my pixel to boot into developer mode for some reason any help?
I figured it out, it just took a few tries for some reason.  Thanks anyways!
+Benson Leung But I'm never going to be a user, at this rate.  I'd buy the Pixel in a heartbeat if I was into the whole cloud paradigm, but internet access here is spotty at best and I've called about DSL outages four times in the last week.  And with the Google Reader shutdown, that's one fewer good cloud service (apparently, it was really good or so I'm told) to use with this.  That's not creating a lot of user trust at the moment.

Also, I'm still a little irritated about the G+ pseudonym policy.  As much as it's beautiful hardware and great software, there are some boring, simple things (like scanning and OCRing documents) you just cannot do, full stop.  And without a reliable home internet connection, there's no offline failover as far as I know since Google Gears went away.  

And - this is the real kicker - I'm pretty sure some of the special characters in my passwords can't be typed and I sure can't install 1password to manage the 100+ character passwords I use.  Secure?  Certainly.  Trouble?  Occasionally.  Am I ever going to be able to log into my Dropbox or Spotify account using nothing but a Chromebook?  Never.
+Ian Garris I'm not responsible for Google Reader (nor am I anyone in a position of decisionmaking on the matter), so I can't really comment on that.

Also, I'm not on the Google+ team, so I can't comment on real names policy.

If you need special characters, what kind of keyboard are you using? Chrome OS supports the US EXTD keyboard. It turns the right Alt key into an alt-gr and then i have access to these characters :

I understand that 1password doesn't work right now because it requires either the Mac or Windows app to be installed on the client, but Chrome does support its own password sync, so your 100+ character passwords would be synced if you are using that service.
+Ian Garris FWIW, Google Gears has been gone for a very long time.  HTML5 features have absorbed that functionality.  Search for "offline google drive" - you can set it up.  Also, check out the Chrome Webstore "Apps" section -- any app with a "lightning bolt" icon supports some form of offline behavior.  All the features and apps you need might not be there, but if you aren't trying to find out, you'll never know.

The same goes for security.  If you're worried about the security of your computer and not just your passwords, I'd encourage you to look at the details of how Chrome OS is designed.
Actually, I got a problem. the Google Pixel cannot boot from the device I chose. Otherwise, it always showed up as "Booting from Hard Disk....." and it died there... :)

After going through the steps to set up the SeaBIOS, I did see the device I plugged in , the "1. USB MSC Drive Kingston DataTraveler 108 PMAP" and the 2. SanDisk SSD 64GB Hard-Disk the Pixel had. 

so I did need to press Key 1, right . But after clicking 1, it displayed the "Booting from Hard Disk..."  then died there, except for pressing the power button to turn it off.

anyone meet the same problem? I tried the debian image, the ubuntu image, all turned out the same result.

So, can i completely remove chrome os, format entire ssd and install linux which booted from usb? right?
+Benson Leung I don't use a keyboard to make passwords.  I right click, hit the 1password button in the dropdown menu, and use the password generator.  Entropy spills out.  I rather like it.  I can log into these accounts with any piece of hardware I own, and anything I'm in the market for... except Chromebooks.  If there's any way you could talk them into writing an offline client for ChromeOS, that would be awesomesauce.  (Bribes of hardware?)
Jay Lee
I've found that I can dual boot stock Ubuntu and Chrome OS on my Pixel when using my Haswell/Pixel ChrUbuntu script but if I just do a normal Ubuntu 13.10 desktop install from USB to an already resized ROOT-C partition, Ubuntu boots but Chrome OS wants to recover.

The ChrUbuntu script simply formats the ROOT-C and then unzips a minimal root filesystem onto it. One of it's last steps is to install grub2 on the machine which seems to be sufficient enough to install grub onto the MBR in such a way that CTRL+L works to start grub2 and CTRL+D is happy to boot Chrome OS.

Not sure what a normal Ubuntu install is doing that Chrome OS boot doesn't like. But I suspect if I installed Ubuntu without installing Grub to the MBR and then later went back and configured grub2 manually, it might work.

Hope this helps someone else!
I'd find it easier to buy a second mSATA SSD of decent capacity, and copy a bootstrap image to that.

Makes reverting to stock ChromeOS much more reliable!  :)
+Min Soe Han Yes! I just did this tonight. Installed Lubuntu 13.10 and applied the touchpad fix and all is well. :)
+liang yu I had this same problem. What worked for me was making sure that the USB was >=2GB and that it was formatted as FAT32.
I've gotten my Pixel to a weird place where SeaBIOS ignores me hitting ESC. It did work for a while. A failed attempt to instal Debian seems to have broken it. Now I can't choose  boot device. Any advice?
Power down fully with a long press of the power button, then wake the machine up again, you should have a working keyboard now. Be careful when you press esc, sometimes if you start tapping it too early, you will get the keyboard stuck like this.
+Bill Richardson Sorry for the slightly off-topic, but is there any way of getting SeaBIOS running on the Chromebox's given out at IO2012?
+Rajesh Singh +Bill Richardson  I have the same question, mine has write mode enabled and it has been told that SeaBIOS works on Chromebox only when it's flashed as a Coreboot payload. I did change some flags in firmware already and flashed the modified one (so that it doesn't beep and wait 15 seconds on boot). Does it mean that I can build and flash my own copy of SeaBIOS with Coreboot? I guess it might work with some adaptation of the following guide from Lumpy to Stumpy: Though, there was a report recently that it didn't work for one of the users who tried:
Has anyone figured out a method for disabling the ACPI lid wakeup? My device wakes up in the laptop bag way too often and runs down the battery on its own. I'd actually even prefer to sleep/wake the laptop manually, as this is how I have always used my computers.
I have the new Haswell-based ASUS Chromebox -- I have been able to enable Developer Mode -- Install ChrUbuntu just fine and Crouton -- But I would really like to get Mint installed. After hitting <ctrl>+<L> and getting to SeaBios, it doesn't respond to the ESC key allowing me to boot to the USB. If I try <crt> + <U> instead of <crt> + <L> it beaps once and continues to boot Chrome. From everything I read, the correct method is to 1st do the <Crtl> + <L> and then ESC but ... it just loads Ubuntu (thanks to ChrUbuntu script) and will not recognize the USB key. Any suggestions?

Many thanks in advance.
Thanks for the walkthrough. For the record, I did this today and the trackpad does work while installing Linux Mint. 
Many thanks!! Flawless, except at on the install I had to give it kernel option "mem=2G", 4G yielded "not enough memory". Once installed however, Mint is FLAWLESS. Trackpad works, 4GB mem, the screen res is ridiculous, even got Verizon LTE working within the GUI.. unheard of! Pixel+Mint=AWESOME!
+Joanne Mcbrien It should be. Not all Chromeboxes ship with seabios, but they're all very similar. Search around for other's success stories. A search for something like [hp chromebox linux install] should give you some pointers.
Crouton should just work, since it doesn't need anything special from the bios.
Hi, I hope this is not a dumb question. But i have this thing that i do not understand. The base of the chrome os is linux/gentoo. Why is it not possible to just extend this linux-distro to full linux. Without reinstalling etc. 

I have read and tried trubuntu, crouton, chromebrew etc etc. I like crouton best, since i also want chrome os running normally.

But gentoo is normal linux. It only has no C-compiler (could not install nano) and the /dev/root/ is too small. 
I am a beginner with linux, so i dare not change partitions, mounts etc yet and not sure if it would help. And how to get chrome to accept those changes. 

NB. seabios is not working out of the box on toshiba chromebook, but i did not dive into that yet. 

I hope you can explain why extending gentoo is not enough and i can it out of my head ;)
Bill, I know I'm a little behind the curve here, but how do these instructions work on a Pixel 2? Is the unverified BIOS still present? Has anything else changed? I'm thinking about buying a brand new Pixel 2 and installing Linux Mint 17.3 Cinnamon or KDE on it. Should I anticipate any problems not stated above, or any limitations? Will it recognize the trackpad now, or not recognize other hardware, that you know of?

Any input would be appreciated. BTW, where are you now? It looks like you've moved from S.C. I'm in Asheville, NC! Since we haven't met before, you can check me out if you'd like at

Thanks again in advance for your response. Stay warm!
+Brian Howell I think a few things have changed, but nothing major, and probably for the better in most cases. Personally I don't often need a portable Linux development system, but when I do I have a Lenovo Thinkpad with more CPU, RAM, and SSD. Although you can use them that way, Chromebooks aren't really designed to be laptop replacements. Also, as I mentioned somewhere above, for casual Linux use I think crouton is probably handier. 

But in any event, there are newer/better guides online:

I moved away from SC years ago, although I go back every now and then to visit family. The Blue Ridge foothills will always be "home".
Add a comment...