tmlind / droid4-kexecboot

10 stars 4 forks source link

Where does kexecboot mount external SD card? #2

Open druimalban opened 6 years ago

druimalban commented 6 years ago

I've got an external SD card.

It has two partitions - mmcblk0p1 is a vfat partition, with a kernel zImage on it, and a DTB omap4-droid4-xt894.dtb on it; mmcblk0p2 is an ext4 partition, with my root filesystem. I was able to boot this with a little bit of magic in safestrap, so I know this kernel and DTB work.

Now, I've got the following configuration in the kexecboot image:

LABEL=Linux on /dev/mmcblk0 PRIORITY=8 DTB=/mnt/omap4-droid4-xt894.dtb KERNEL=/mnt/zImage CMDLINE="rootfstype=ext4 root=/dev/mmcblk0p2" TIMEOUT=3

In the debug info, I see something like "Found kernel image /mnt/zImage". I have tried varying combinations of /boot/, /, etc instead of /mnt/ in the KERNEL and DTB lines above. I've also tried without the CMDLINE there too.

Regardless, I can't boot. Is there anything you might be able to add?

druimalban commented 6 years ago

I decided to investigate by opening a shell over UART.

This message crops up when running kexecboot from the command line (it also appears after it jumps to getty after kexecboot stops).

insmod: can't insert '/lib/modules/3.0.8-g448a95f/kernel//uart.ko': File exists insmod: can't insert '/lib/modules/3.0.8-g448a95f/kernel//arm_kexec.ko': File exists insmod: can't insert '/lib/modules/3.0.8-g448a95f/kernel//kexec.ko': File exists kexec failed: Operation not permitted

tmlind commented 6 years ago

Sorry for the delay, I just now saw this one. Kexecboot tries to mount all usable partitions and look for boot directory there with boot.cfg. I wonder if your partition is ext4 with 64-bit option enabled? It's possible that the stock v3.18 kernel is unable to read that. In that case, maybe test with a partition formatted with mkfs.ext4 -O ^64bit option.