I had in the past followed the instructions in
https://www.berrange.com/posts/2013/03/31/automated-install-of-fedora-18-arm...
But I wanted to try to install fedora 20 and have a a simpler partition layout. In the process I found out a bit on how the system works.
I first upgraded chrome os to get a new kernel (3.8.11) and copied the kernel partition, /lib/modules and /lib/firmware.
I then got a f19 ssd image and booted from that.
The usb boot being enable flag is stored in the internal flash. The flags listed in vboot_reference/firmware/lib/vboot_nvstorage.c are storred in the first 16 bytes of the disk. To clear chromeos and keep the machine booting from USB I did
$ dd if=/dev/zero of=/dev/mmcblk0
Create a nvram.txt file with
7000000001000000000000000000003f
The 1 in the middle is the usb boot flag.
$ xxd -r -p nvram.txt nvram $ dd if=nvram of=/dev/mmcblk0
I then created 2 partitions, one for the kernel and one for the root. To get the kernel to boot, I checked
firmware/lib/cgptlib/include/cgptlib_internal.h
and noticed that what was needed was:
Correct type: sgdisk -t1:7f00 /dev/mmcblk0 Setting attribute bits 48 and 56: sgdisk -A1:set:48 /dev/mmcblk0; sgdisk -A1:set:56 /dev/mmcblk0
Repack the kernel with vbutil_kernel and point it to the new root partition. I then got the fedora20 root image, extracted the files for / and replaced /lib/modules and /lib/firmware.
I tried to get X running with both the armsoc and fbdev drivers, but so far no success, which is fine for me since I use the machine as an arm devboard.
Cheers, Rafael