[yocto] First attempt at x32 system: kernel panic

Paul D. DeRocco pderocco at ix.netcom.com
Sat Jun 10 02:50:12 PDT 2017

I'm still struggling with getting a system running with the x32 tune. I
won't bother quoting my previous message, which didn't prompt any
suggestions anyway, since I have a clearer scenario to describe. I built
four systems (all with Morty):

1) I built core-image-minimal on a genericx86-64 machine, and it booted

2) I built a core-image-minimal with an x32 tune, and it spewed out a ton
of nonfatal bit size errors in grub-efi do_package_qa, but it booted fine.

3) I built a core-image-minimal with a realtime kernel (4.8), and got a
bunch of warning messages about inapplicable kernel config items that were
left out (all related to other architectures). When I booted it, the boot
process hung fairly early on, following "clocksource: Switched to
clocksource tsc", although I rather doubt there's anything wrong with the
TSC. There's also a "Waiting for removable media..." message a bit
earlier, which could be a clue.

4) I built a core-image-minimal with an x32 tune and a realtime kernel,
and got the grub errors plus the config warnings. When I booted it, I got
an immedate kernel panic, because it was unable to run init. The problem
is that the kernel compilation ignored the x32 tune, and builds a regular
64-bit rt kernel, while everything else (executables, shared libraries,
and loadable kernel modules) are 64-x32.

So the big question is this: is the x32 tune not supported on
yocto-kernel-rt 4.8? Or is this just some bug in the recipe, and I'm just
the first person to try running this combination?

The second smaller question is: am I selecting the rt kernel properly? I
put the following in my local.conf:

    PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto-rt"
    PREFERRED_VERSION_linux-yocto-rt ?= "4.8%"

Then, I created a layer (included in bblayers.conf) that contained nothing
but a linux-yocto-rt_4.8.bbappend file containing

    COMPATIBLE_MACHINE = "genericx86-64"

Is this the right way to select an rt kernel for a machine that isn't
listed in the actual recipe (it only lists qemu* machines), or is there a
way to do this entirely from local.conf?

The third possibly unimportant question is: what can I do to get rid of
the grub errors and the config warnings?


Ciao,               Paul D. DeRocco
Paul                mailto:pderocco at ix.netcom.com

More information about the yocto mailing list