Line 5: | Line 5: | ||
* Fedora 25 includes the dtb for this model: rk3288-veyron-speedy.dtb | * Fedora 25 includes the dtb for this model: rk3288-veyron-speedy.dtb | ||
* As best I can tell from my research, the boot system on this chrome book is called "Depthcharge". | * As best I can tell from my research, the boot system on this chrome book is called "Depthcharge". | ||
* Holding down the power button resets the chromebook after a boot attempt hangs. | |||
Holding down the power button resets the chromebook after a boot attempt hangs. | |||
Apparently, it reads the kernel packed by vbutil_kernel --pack, verifies the signature, and transfers control to the kernel. The bootloader doesn't seem to be used - it seems to be all zero on the factory boot partitions. I don't know what the fedora kernel is missing - there is no output at all. | Apparently, it reads the kernel packed by vbutil_kernel --pack, verifies the signature, and transfers control to the kernel. The bootloader doesn't seem to be used - it seems to be all zero on the factory boot partitions. I don't know what the fedora kernel is missing - there is no output at all. | ||
Examining the ChromeOS kernel reveals a FIT image, so I created rk3288.its: | Examining the ChromeOS kernel reveals a FIT image, so I created rk3288.its: | ||
/dts-v1/; | /dts-v1/; | ||
/ { | / { | ||
description = "Fedora 25 kernel-4.8.6-300 for ASUS C201PA Chromebook"; | description = "Fedora 25 kernel-4.8.6-300 for ASUS C201PA Chromebook"; | ||
Line 53: | Line 44: | ||
}; | }; | ||
}; | }; | ||
and compiled (in the distro /boot directory) with: | |||
mkimage -vf rk3288.its rk3288.itb | |||
I wrapped the FIT image with: | |||
vbutil_kernel --pack fedora.blob \ | |||
--keyblock fedora.keyblock \ | |||
--signprivate fedora.vbprivk \ | |||
--config kcmdline \ | |||
--vmlinuz rk3288.itb \ | |||
--bootloader dummy.boot \ | |||
--arch arm --version 1 | |||
Where dummy.boot is 4k of zeros to match google kernel. This is a similar size | |||
to factory ChromeOS kernel image. Now to see if it gets any farther. I still | |||
don't see how initrd gets loaded. | |||
== Wrapping uboot as "kernel" == | == Wrapping uboot as "kernel" == | ||
This page mentions wrapping uboot as a kernel so that the chrome book will boot like a raspberry pi. Where does one get uboot to wrap? | This page mentions wrapping uboot as a kernel so that the chrome book will boot like a raspberry pi. Where does one get uboot to wrap? |
Revision as of 23:58, 1 March 2017
ASUS C201PA ARM Chromebook
I have mostly questions and only a few answers.
- Fedora 25 includes the dtb for this model: rk3288-veyron-speedy.dtb
- As best I can tell from my research, the boot system on this chrome book is called "Depthcharge".
- Holding down the power button resets the chromebook after a boot attempt hangs.
Apparently, it reads the kernel packed by vbutil_kernel --pack, verifies the signature, and transfers control to the kernel. The bootloader doesn't seem to be used - it seems to be all zero on the factory boot partitions. I don't know what the fedora kernel is missing - there is no output at all.
Examining the ChromeOS kernel reveals a FIT image, so I created rk3288.its:
/dts-v1/; / { description = "Fedora 25 kernel-4.8.6-300 for ASUS C201PA Chromebook"; #address-cells = <1>; images { kernel@1{ description = "vmlinuz-4.8.6"; data = /incbin/("vmlinuz-4.8.6-300.fc25.armv7hl"); type = "kernel_noload"; arch = "arm"; os = "linux"; compression = "none"; load = <0>; entry = <0>; }; fdt@1{ description = "rk3288-veyron-speedy"; data = /incbin/("dtb-4.8.6-300.fc25.armv7hl/rk3288-veyron-speedy.dtb"); type = "flat_dt"; arch = "arm"; compression = "none"; }; }; configurations { default = "conf@1"; conf@1{ description = "rk3288-veyron-speedy (ASUS C201PA Chromebook)"; kernel = "kernel@1"; fdt = "fdt@1"; }; }; };
and compiled (in the distro /boot directory) with:
mkimage -vf rk3288.its rk3288.itb
I wrapped the FIT image with:
vbutil_kernel --pack fedora.blob \ --keyblock fedora.keyblock \ --signprivate fedora.vbprivk \ --config kcmdline \ --vmlinuz rk3288.itb \ --bootloader dummy.boot \ --arch arm --version 1
Where dummy.boot is 4k of zeros to match google kernel. This is a similar size to factory ChromeOS kernel image. Now to see if it gets any farther. I still don't see how initrd gets loaded.
Wrapping uboot as "kernel"
This page mentions wrapping uboot as a kernel so that the chrome book will boot like a raspberry pi. Where does one get uboot to wrap?