Bug #2372

[linux-libre-chromebook] not booting on C201

bill-auger - 4 months ago - . Updated 28 days ago.

in progress
% Done:



heard it through the grapevine - the original feature request ticket is marked 'fixed'; and it was working at that time - so this should have a new ticket to try getting it working again

i leave this unconfirmed for now - because i can not confirm it; but ive added danielp3344, CBotulinum, and oaken-source as watchers because they are their only ones i know who have one of these computers


.config (124 KB) .config (<= v5.1) danielp3344, 2019-09-12 05:34 PM
log.txt (34.9 KB) log.txt CBotulinum, 2019-10-15 06:26 AM



Updated by Megver83 4 months ago

  • Subject changed from {linux-libre-chromebook]: not booting on C201 to [linux-libre-chromebook] not booting on C201

OK, I'll be pending


Updated by mai 3 months ago

Hi, I started messing with this since i got tired of waiting for
somebody else to do it. the flashable kernel (vmlinux.kpart) that comes
from the current linux-libre-chromebook package provided by parabola
doesnt boot. when i try to boot it, after the libreboot screen, the lcd
turns off and the pc hangs or something, and i am forced to pull the
power cord. also full disclaimer: i have my battery disconnected. i have
tried rebuilding the package without any alterations and the same thing
happens. on the next try i made it so i did not use the config.armv7h
provided with the linux-libre package source files and instead edited
the PKGBUILD in the prepare() section as follows:

168   cp ../config.$CARCH .config
169   make olddefconfig

changes to

168   rm .config
169   make defconfig

and then run makepkg like normal. native build takes around 2 hours (on
a usb hdd).

then i install the build packages with

pacman -U --assume-installed linux-libre=5.2.5 linux-libre-*.pkg.tar.xz

also another hint i want to share is how to partition a sd card or usb
drive to use with the c201.

this is to wipe the drive and create a new gpt partition table

# DISK=/dev/sdX
# sgdisk --zap-all $DISK
# sgdisk -o $DISK

this is to make the kernel partition with a size of 32MB

# sgdisk --new=1:8192:73727 --typecode=1:7f00 --change-name=1:Kernel $DISK
# sgdisk --attributes=1:=:015A000000000000 $DISK

this is to use the rest of the space as the rootfs partition

# TOTAL_SECTORS=$(cat /sys/block/$(echo $DISK | awk -F'/' '{print $NF}')/size)
# FINAL_SECTOR=$(echo "((($TOTAL_SECTORS - 1 - 32 - 1) / 2048) * 2048) - 1"| bc)
# sgdisk --new=2:75776:$FINAL_SECTOR --typecode=2:7f01 --change-name=2:Root $DISK

then just continue install like normal. i can give my process if anybody
wants it, i intend on writing a wiki article for the c201 eventually

anyway, the kernel i built will boot SOMETIMES, maybe 50% of the time,
when it doesnt, it does the black lcd screen that doesnt power on
thing, just like the stock linux-libre-chromebook kernel.

when it does boot successfully, the screen should go black after
libreboot passes things off, stay off for 3 - 5 seconds, then the
screen powers on and booting continues. one thing i have noticed is when
the lcd turns off during early boot, there is a high pitch noise coming
from the screen and you can hear the pitch change a few times if its
going to boot properly, otherwise i will just powercycle the machine and
try again.

so now once im booted up, some modules might be missing (for example
fuse) and to get them i go back to the directory where i originally ran
makepkg and edit ./src/linux-5.2/.config to enable a module (find

then run

$ makepkg --noextract

# pacman -U linux-libre-5.2.5_gnu-1-armv7h.pkg.tar.xz

now where im stuck is installing parabola to the internal mmc. using the
sgdisk commands mentioned above, or even gdisk or cgdisk, the partition
files in /dev/ do not appear, unless i run partx -a /dev/mmcblk1

at this point i can format the mmcblk1p2 partition and use pacstrap to
install to it, and dd my kernel to mmcblk1p1, but when i try to boot it,
i just get that black (turned off) screen again...

ok so i know this was a lot but hopefully it helps somebody or we can
use this info to move forward with a proper fix. using the sd card is a
bit laggy so i would like to figure out how to get the internal mmc to

(sorry about edits, i am having issues with middle mouse button on thinkpad usb keyboard pasting when i try to scroll)


Updated by danielp3344 3 months ago

For what it's worth my functional config from linux 5.1.8 does not work on mainline.

(Tip for kernel work on the C201, pressing the refresh and power buttons at the same time does a hard reset, which is nice when stuff hangs)


Updated by bill-auger 2 months ago

megver -

the dragora folks just got 4.19.67-gnu booting on the C201 - maybe their config will work for parabola


Updated by bill-auger 2 months ago

as an update, they have all of the hardware working now, except for the radios


Updated by danielp3344 2 months ago

I have a config (attached) that works for 5.1.x, but I cannot get anything later to boot.


Updated by bill-auger 2 months ago

daniel -

have you tried the 4.19.6 kernel in [libre-testing]? - did it ever work? - does it still work? - maybe this bug report would not exist if the kernel for the C201 was LTS


Updated by danielp3344 2 months ago

I seem to recall it working fine, but there are some huge improvements in 5.2 and 5.3, such as working gpu drivers. I really want to run GNOME :P


Updated by bill-auger about 2 months ago

ok so daniel has determined that the current situation is that the existing parabola config work for kernels up to v5.1; but is broken for kernels v5.2 and above

kelsoo has started collecting information about the C201 that would be helpful to anyone trying to use it with linux-libre


Updated by bill-auger about 1 month ago

i should mention, as an update, that daniel claimed to have made a booting v5.2 kernal - im not sure if it was with the vanilla kernel or linux-libre though - i was hoping he would update this ticket eventually with some detail on how to, or (+100) a working PKGBUILD


Updated by bill-auger about 1 month ago

  • Assignee changed from Megver83 to oaken-source
  • Status changed from unconfirmed to in progress

Updated by bill-auger about 1 month ago

there is a new 'linux-libre-chromebook' 5.3.1 in [libre] now


Updated by oaken-source 30 days ago

it's in [libre-testing], not libre ;)

package is called linux-libre-veyron, after the linux-veyron from archarm. It's not terribly up to date, but in my experience it works pretty well.


Updated by bill-auger 30 days ago

ok i am totally confused then - it looks like megver upgraded it - that was on 2019-09-23, well after this issue was opened - has anyone tried that one?


Updated by oaken-source 30 days ago

briefly. It didn't boot for me.


Updated by bill-auger 30 days ago

i think we should pull it then, this is a confusing situation; if the broken kernel was simply replaced with another broken one - this problems reported in this BR were about kernels 5.2 and above - i think 5.3 is the next LTS, so i guess there is more to do


Updated by oaken-source 30 days ago

linux-libre-chromebook is a split package from linux-libre. What it does, as far as I can tell, is use our generic arm kernel and repackage and sign it in a way the C201 can load it at boot time. However, it does seem like we need a custom config for the C201 to boot. We need to have a discussion whether we need to tie all these together into a single PKGBUILD or whether it's ok to have certain kernels such as the veyron in a separate PKGBUILD.

Keeping them together might make it easier to apply common changes across the board, while keeping them apart would allow us to be more specific in the details, and have different kernel versions that work best for certain devices for example. I'd tend towards the latter.


Updated by CBotulinum 28 days ago

So, I've tried the kernels in libre-testing (referring to linux-libre-veyron) both before and after "config-disable-otg.patch" was applied, the result is the same:
Any USB device plugged in before boot gets power and sometimes even works (E.g.: A USB mouse works flawlessly, networking hardware shows up in lsusb but not in ip link), I've tried switching ports, same result, all testing done while also plugged into external power.
This is the log:
I've also attached it here.
Note that plugging a device in (after boot) might supply it power, but doesn't generate any event in dmesg (checked also with dmesg -w).

Also available in: Atom PDF