[yocto] x86_64 kernel with i586 userland plus SDK?

Richard Purdie richard.purdie at linuxfoundation.org
Wed Nov 28 00:42:15 PST 2018


Hi,

On Tue, 2018-11-27 at 22:46 +0100, Richard Weinberger wrote:
> I have a hard time understanding how to build a distro with x86_64
> kernel, i586 userland
> and an SDK for that.
> In the beginning I assumed and have been told on IRC that multilib is
> the way to go.
> 
> But it seems that building and SDK is currently broken/disabled:
> 
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e153efde9754a650e555f46cba09680baabd7d7e

I see a bug was opened for this but its not valid and this shouldn't be
an issue. Keep in mind that an SDK contains all multilibs so "bitbake
X-image -c populate_sdk" would be equivalent to "bitbake libXX-X-image
-c populate_sdk" and be the same thing. One didn't work so we remove
that.

> Another issue,if I try to add lib32 packages to my x86_64 image
> building the rootfs fails due
> to such odd apt errors:
> The following packages have unmet dependencies:
>  lib32-packagegroup-core-ssh-dropbear : Depends: lib32-dropbear but it
> is not installable
>  lib32-packagegroup-core-x11-base : Depends: lib32-dbus-1 but it is
> not installable
>                                     Depends: lib32-matchbox-terminal
> but it is not installable
>                                     Depends: lib32-matchbox-wm but it
> is not installable
>                                     Depends: lib32-mini-x-session but
> it is not installable
>                                     Depends:
> lib32-packagegroup-core-x11-utils but it is not going to be installed
>                                     Depends:
> lib32-packagegroup-core-x11-xserver but it is not installable

Unfortunately the debian backend is the least supported for multilibs
and I suspect you'd have better luck with ipk or rpm.

> Are there other possibilities?
> Userspace can be pure i586, so full multilib support is not needed.
> Having a x86_64 toolchain should be goof enough, it could build
> userspace with -m32 and the kernel as-is.

The system can definitely do it, its just not something we tend to do
very often so its not entirely clear the best way to do it.

What may work is selecting the i586 tune from an x64-64 target machine?

Copying qemux86-64.conf to qemux86-64-2.conf and changing it to have
DEFAULTTUNE ?= "i586" did appear to start to build at least in a quick
test here...

Cheers,

Richard





More information about the yocto mailing list