I managed to get slackware installed on my C7 chromebook... so, I'm writing this post to brag about that. (go figure!)
My new geek friend Barry S. Schultz posted The Method; which was based on a chromeOS developer Olof Johansson post on google chrome.
Requirements:
- The Chromebook in "Developer Mode."
- Same Chromebook with USB Boot enabled.
- USB bootable media (thumb drive). I used a kingston data traveler 2.0.1 with 16 gb of space.
- A secondary computer, preferably running slackware.
anyways,
Hands down.
Barry emulate/copy the partition scheme of the C7 hard drive...
Following Barry's post and Olof, I understood that the chromebook won't boot from any media but a chromeOS kernel thumbdrive because it's hardwired to the BIOS.. .that seems uefi AFAIK... so you must create a GPT chromeOS bootable usb key as follows:
On your slack box or your chromebook:
# parted /dev/sdXX
(parted) mktable gpt
(parted) quit
As a side note, the C7 will mount the first usb drive as /dev/sdb.
Now that the GPT table is created, you should create 2 partitions on the thumbdrive. Happens that it is easy to do with cgdisk. Anyways, proceed as you like. You need 2 partitions, one about 3.5 MB and the other the rest.. just make sure you label the 3.5 MB one as number 6 and the other as number 7 (very important if you pretend to copy and paste)
partition 6 must be ChromeOS kernel type (code 7F00). Below is the cgdisk output of my drive...
cgdisk 0.8.5
Disk Drive: /dev/sdb
Size: 30489408, 14.5 GiB
ver
Part. # Size Partition Type Partition Name
----------------------------------------------------------------
1007.0 KiB free space
6 35.0 MiB ChromeOS kernel ChromeOS kernel
7 14.5 GiB Linux filesystem slackware
Once you have partition 6 and 7 done,create a filesystem on your partition 7... I did ext4.
now, on your slack box, proceed to install whatever you want from the slackware tree. I install about everything but kdei packages. The installpkg --root /dev/sdXX */*.t?z command did the trick for me; but be my guest. Barry sugest using the CD installer and point the target partition to partition 7 on the thumb drive.... anyways, here you shall help your wife cleaning or something, minding that installing on a USB key takes time....
On the chromebook
Ctrl+Alt+t will bring an odd looking console inside the chrome browser ofcourse. Typing shell will bring bash functionality to it... then sudo su to make you root.
As root, create a debugging-enabled kernel from the current kernel, copy it to partition #6.
# rootdev -s
/dev/sda5
# dd if=/dev/sda4 of=kernel_2.blob
# dump_kernel_config kernel_2.blob > kernel_2.cfg
# cp kernel_2.cfg kernel_debug.cfg
Now, replace the contents of kernel_debug.cfg as follows following:
# echo "" > kernel_debug.cfg
# echo "add_efi_memmap boot=local console=tty1 disablevmx=off i915.modeset=1 init=/sbin/init kern_guid=%U loglevel=7 lsm.module_locking=0 ro root=PARTUUID=%U/PARTNROFF=1 rootwait tpm_tis.force=1 tpm_tis.interrupts=0" > kernel_debug.cfg
Now, wrap the new kernel with the verified block and the new config:
vbutil_kernel --repack kernel_debug.blob \
--keyblock /usr/share/vboot/devkeys/kernel.keyblock \
--version 1 \
--signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
--config=kernel_debug.cfg \
--oldblob kernel_2.blob
finally, copy it to partition #6; prioritize it and mark it as "successfully booted"
vbutil_kernel --verify kernel_debug.blob
dd if=kernel_debug.blob of=/dev/sdb6
cgpt add /dev/sdb -i 6 -P 1 -T 1 -S 1
As you are using the chromebook kernel, copy necessary stuff from the current Chrome OS rootfs to partition #7. Include the following complete folders:
/lib/firmware
/lib/modules
/usr/share/vboot
And these files as well:
/usr/bin/cgpt
/usr/bin/dump_kernel_config
/usr/bin/vbutil_*
Note:
I was booting successfully to slackware on the acer C7, but as the system I used to "install" everything on partition 7 mounted the thumbdrive as /dev/sdc, I ended with slackware on single user mode. Make sure your /etc/fstab file is corre:
UPDATE: sept 15
This machine simply kick ass.
I have upgrade everything to -current (except for the kernel of course) and everything just works.
well.. the kernel packages are there; but i'm just not able to load 3.10 as the chromebook firmware will look for a chromeOS kernel...
Anyways, I get a little more than 4 hours of battery usage out of the machine with slackware... more than 30 mins more than using chromeOS; and I'm running kde 4.10.5 with full eye candy desktop effects.
:D
I guess
ReplyDelete#cat /etc/fstab
is top secret? Just kidding.
well..
ReplyDeletei didn't saw that coming :D
once I pass the whole thing to the hdd on dual boot i'll let you guys know.