Tuesday, February 26, 2013

A Beginning

Prior to the introduction of the Pixel, running Linux on a Chromebook has required using the Chrome OS [CrOS] kernel with another distro's root file system. As I understand it, Jay Lee, the developer of ChrUbuntu, recently switched from 32-bit (<=11.10) to 64-bit (>=12.04) Ubuntu which required him to substitute the Open Source Chromium OS kernel for the CrOS kernel distributed by Google. Numerous issues with ChrUbuntu and a general lack of support led me to wish that I could switch back to Google's official (and constantly evolving) 32-bit kernel for CrOS.

Based primarily on the belief that Chromebook users would be better off sticking with Google's current CrOS kernel, I began testing 32-bit x86 Linux distros on my Acer C7. So far, the results of my experiments have been encouraging - not only does 32 bit Ubuntu 12.04.1 run without issues but it seems that most distros with Debian and/or Ubuntu lineage do as well. Results with other distros have been mixed. One key factor seems to be the use of initrd, which the CrOS kernel apparently does not support. Keep in mind that I'm only reporting that these distros install and boot using my method because I did not test them extensively.

Here, I'll attempt to document my method so that others can benefit. IMHO, the distros I've highlighted represent the best match for the C7's hardware and resources.

In the meantime, I highly recommend checking out the Crouton script method developed by David Schneider. It essentially enables you to run Ubuntu as an application on CrOS. Credit for this find goes to Craig Errington.

I'm trying to cover mostly the mainline distros with notable exceptions for my personal "small & light" fetish. However, I'm working on an image for usb bootable media that should make it MUCH easier to do so yourself.

Given the fact that Kali is based on Debian, there's probably an 85% chance that it will work.

That would be great if you got something like that working; I have been trying to get it to work for over 2 weeks, to no avail. I guess I was hoping someone else had tried it, but I can't seem to find anyone who has it working. Of course, they have a Kali image for the Samsung ARM Chromebook -- but who cares about that?

Really? I missed the ARM image, that actually bumps the probability to maybe 92%.

I have a working image, the tricky part is manipulating it so it will work with various size media, allow you to expand the partition to fill the media yet remain bootable, etc. I'm working with a 2GB image so it should work with all media 4GB or larger. That seemed like a reasonable minimum to install a modern distro, but you'll probably need at least 8GB for Kali.

I'd agree with Kali needing that much. I had been doing it on a 16gb USB, so 8gb doesn't seem unreasonable. I'm now working on getting Jay Lee's newest Chrubuntu script to accept an image of Kali, or at least let me build one. The issue I keep having is with the kernel headers. I'm going to work on that to relieve my frustration.

I believe it uses 32 bit. I tested it with a standard install of Ubuntu, and it was certainly 32 bit. I know it's incompatible with what you are working on, but I thought I'd try it my own way for my own sanity. I had to make some modifications to his script, but I got a basic install of Ubuntu with 3.4 Linux. From there it was just adding gnome-session-fallback and some Kali.org repositories. I have almost all of the tools working (minus 7 or 8 that I don't use anyway), and it's basically kali+tor.

I think you should take a look at his latest update to that script. Finally, it's a usable script. I remember a while ago it used 64 bit only, without any other choice. Now, the standard is 32 bit. I think ChromeOS shifted everything in that direction recently.

You're right, he has rewritten it and the changes look ... interesting. I'm glad you were able to get what you needed working but frankly amazed that such a radical approach worked. You've created Kali based on ChrUbuntu - I wouldn't have given you a 50% chance of that working. Kudos!