I am trying to build a nerves system for the Logic Supply CL210G-10.
The technical constraints are:
- boots only from a UEFI partition
- x86 architecture
- internal eMMC
So far I can only boot my nerves firmware from a USB drive. When I burn the firmware via fwup to the eMMC the firmware hangs on trying to find the root device.
This is the output from the failed boot attempt:
My nerves system is forked from the official nerves_system_x86_64 and these are the changes I have made so far.
My current assumption is that my kernel is missing the driver for the MMC controller. Does someone have a hunch what my issue could be?
Do you have a kernel defconfig that is known to boot off of your emmc?
I saw that you changed the disk signature from 0x04030201 to 0x01234567 in the diff. You also need to change it in the
grub.cfg to match. I’m actually not sure how the USB drive boot worked for you, so I’m ignoring that piece of information for now.
The key line in your picture is “Waiting for root device PARTUUID=04030201-03”. The system is stalled in the boot process waiting for the drive with that ID to be found by Linux. The “-03” is the partition on that drive to use for the rootfs. Linux gets the ID from the kernel commandline parameters that are specified in grub.cfg.
An alternative is to tell Linux to use
/dev/sda3 for the rootfs. However, if you have a USB drive plugged in at the same time, there’s a chance that Linux will call it
/dev/sda and try using it instead. However, if the PARTUUID way still doesn’t work for you, I’d give this way a try.
I tried updating the PARTUUID in the
grub.cfg without any success and reverted the change at all. Is was a desperate try anyway.
Unfortunately the approach with using
/dev/sda3 as the root partition did not work either.
I installed a xubuntu on the eMMC which boots fine. Here is the kernel config
It is finally booting, I was missing the driver for the mmc controller after all.
Thanks for your help