diff options
author | David S. Miller <davem@davemloft.net> | 2013-03-01 04:50:27 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-01 04:50:27 -0500 |
commit | ef96cdc82a71931ce7af14514ea802fef3749127 (patch) | |
tree | 1149c976a3dbd77d3b404dc06e53f9765d2c05a6 | |
parent | f757c523d3f87725afc7cadbad48cb3f5311c11e (diff) | |
download | chromebook_pixel-ef96cdc82a71931ce7af14514ea802fef3749127.tar.gz |
chromebook_pixel: Add install HOWTO document.
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | chromebook_pixel_linux.txt | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/chromebook_pixel_linux.txt b/chromebook_pixel_linux.txt new file mode 100644 index 0000000..a705eb8 --- /dev/null +++ b/chromebook_pixel_linux.txt @@ -0,0 +1,165 @@ + Installing Linux on the Chromebook Pixel. + +These directions are provided AS-IS, if you lose all of your data or +brick your machine, it's not my problem. + +Quick pre-requisites: + +A) You should (optionally) have a USB mouse you can plug into the + Pixel for when you first boot into Linux as the touchpad and + touchscreen won't work at the beginning. + + You can forego this bit and work from the VC console instead + while performing the steps to get the touchpap/touchscreen + operational but you'll need to get wireless up so you can + install some packages over the network so keep that in mind. + +B) You need to have a USB device (or Android phone, see below) + to boot from, and a way to get a Debian ISO image onto it. + +C) REALIZE that this will blow away Chrome OS from your drive. + It's easy to restore the machine with Chroms OS again using + one of the restore images found at: + + http://support.google.com/chromeos/bin/answer.py?hl=en&answer=1080595 + +With that out of the way, here is what you do: + +1) Put your Pixel into developer mode, you should really do this + as the first thing when you use the laptop for the first time. + + Hold down "ESC" and "Refresh" at the same time while powering + on the machine. BTW, those keys on the top row after ESC are + just F1, F2, F3, etc. The F3 one is the "Refresh" key I + mentioned. + + Hit Ctrl-D then Enter. It's going to take 5 minutes now + as it's going to wipe the entire stateful (ie. user data) + partition. + + From this point forward, every time you boot, it's going to say + that Chrome OS can't be found or something similarly alarming like + that, just ignore and hit Ctr-D or wait 30 seconds to boot into + Chrome OS. But that won't be relevant for long as we're going + to wipe it off the machine below :-) + +2) Boot into Chrome OS and configure it enough so that you can + login. Start a shell: + + a) Hit Ctrl-Alt-T, this brings up the chrosh window, from crosh + you can do things like spawn a shell, use SSH, etc. type "help" + if you're interested in more. + b) Give it the "shell" command. + c) Get root, "sudo bash" + +3) Configure it so that we can boot into Linux images via SeaBIOS + and boot from USB devices. + + crossystem dev_boot_usb=1 dev_boot_legacy=1 + + and then power off the machine. + +4) Get yourself a Debian 7 image, I used: + + http://cdimage.debian.org/cdimage/wheezy_di_rc1/amd64/iso-cd/debian-wheezy-DI-rc1-amd64-netinst.iso + +5) Put that image onto something you can USB boot. You can use a USB + stick, but I've been using the DroidDrive app on my Galaxy Nexus + and Nexus 7. + +6) Plug the USB image in, and power on the Pixel. When the boot + screen appears hit Ctrl-L, SeaBIOS will come up and say "Hit ESC to + choose boot device" so hit ESC and choose the USB device you + plugged in. + +7) Highlight the "Install" choice and hit TAB, add "mem=4G" to the + kernel command line. + +8) Do an install, tell the partitioner to use the entire SSD drive and + do things automatically. I'd recommend enabling the installation + of the desktop packages so that it's easier to configure wireless. + + Tell the installer to use the MBR of the entire disk for the boot + loader. + +9) After the install finishes the reboot will bring you to the + boot screen again, hit Ctrl-L to get into SeaBIOS and then ESC + but this time select the interal SSD drive. It should boot up + just fine. + +10) Outside of the touchpad/touchscreen everything should work fine. + You do have a USB mouse to use for this part right? Plug it in, + your life will be simplified. Alternatively "Ctrl-Alt-F1" to get + into a VC and just do all of your work from there. You have to + bring the wireless up somehow so you can install packages, and + it's just so much easier to do that from the graphical desktop. + + Anyways, let's get the input devices working. Install 'git' with: + + apt-get install git + + as root. You'll also need the kernel headers package installed + in order to build kernel modules, for this install this package + should be "linux-headers-3.2.0-4-amd64" + + apt-get install linux-headers-3.2.0-4-amd64 + + You'll also have to make sure you have the necessary tools to + compile things. A safe way to ensure this is to install the + tools necessary to build the debian kernel package, like this: + + apt-get build-dep linux + + And you should be good to go. + +11) Clone my chomebook Pixel driver repo: + + git clone http://git.kernel.org/pub/scm/linux/kernel/git/davem/chromebook_pixel.git + + You might even have the repo already and be reading this text file + from it. :-) + + Now build: + + cd chromebook_pixel + make + + this will leave you with "chromebook_laptop.ko" and "atmel_mxt_ts.ko" + + The chomebook_laptop.ko driver will instantiate the I2C devices hanging + off of the i915 graphics device, these will then be seen by drivers like + atmel_mxt_ts.ko which will talk over I2C to drive your touchpad and + touchscreen. + + The chromebook_laptop.ko doesn't exist in any form in the debian + kernel package you have installed on this machine, but the + atmel_mxt_ts.ko does exist there but we need this newer version of it. + So just keep that in mind. + +12) Right now you can load these modules to see your input devices working. + + insmod atmel_mxt_ts.ko + insmod chromebook_laptop.ko + + But you're going to want this to happen automatically when you boot up. + I was super lazy and just copied the modules down under: + + /lib/modules/3.2.0-4-amd64/kernel/ + + specifically to: + + /lib/modules/3.2.0-4-amd64/kernel/drivers/input/touchscreen/atmel_mxt_ts.ko + /lib/modules/3.2.0-4-amd64/kernel/drivers/platform/x86/chromeos_laptop.ko + + and then I added one line saying: + + chromeos_laptop + + to /etc/modules + +13) So you should have a fully functioning Chromebook Pixel running + Linux at this point. Enjoy. + + Every time you boot up you'll need to do that Ctrl-L song and + dance, since unfortunately you can't make SeaBIOS the default + 30-sec timeout selection. Just deal with it. |