Computer/Asus Chromebook C201

From ParabolaWiki
Jump to: navigation, search
This article is a stub.
This typically means the article is a placeholder for more content to come. Knowledgeable users are encouraged to help expand the article.

1 Status

See This news for more details

Since then we need to check how to get WiFi working on it (Bug 2261), and we need to check if it still works as it used some kernel patches.

2 Asus Chromebook C201 partitioning requirements

  • the emmc / micro sd / usb drive must be GPT
  • make the first partition large enough to fit the kernel. 32M is ok.
  • set the typecode for this partition to 66 (ChromeOS kernel) (type code 7f00 in gdisk)
  • some attribute bits for this partition must be set for it to boot. you can do this with fdisk, gdisk, parted, sfdisk, or sgdisk. here is one way:
# sgdisk -A 1:set:48 -A 1:set:56 /dev/sdX

you can read more about these bits on the chromium-os wiki

3 Bootloader

Bootloader functionality is provided by depthcharge, which is included with libreboot (and the stock bios).

the kernel must be flashed to the first partition. if you installed linux-libre-chromebook with pacstrap, you can manually reflash it:

# dd if=/boot/vmlinux.kpart of=/dev/<KERNEL_PARTITION>

if you want to change the kernel command line parameters you can use futility which is provided by vboot-utils

to see information about how the kernel is packed (including the parameters):

# futility show vmlinux.kpart

to change the parameters, you will need to unpack and repack the kernel. the following example shows how to add serial console output during boot

# cd /boot
# mkdir tmp_unpack
# cd tmp_unpack
# futility --debug vbutil_kernel --get-vmlinuz ../vmlinux.kpart --vmlinuz-out vmlinuz
# echo "console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootwait rw noinitrd" > cmdline
# dd if=/dev/zero of=bootloader.bin bs=512 count=1
# wget https://git.parabola.nu/abslibre.git/plain/libre/linux-libre/kernel.keyblock
# wget https://git.parabola.nu/abslibre.git/plain/libre/linux-libre/kernel_data_key.vbprivk
# futility --debug vbutil_kernel \
           --pack vmlinux.kpart \
           --version 1 \
           --vmlinuz vmlinuz \
           --arch arm \
           --keyblock kernel.keyblock \
           --signprivate kernel_data_key.vbprivk \
           --config cmdline \
           --bootloader bootloader.bin