Skip to content

Support x86_64 and aarch64 emulation #62

@ericcurtin

Description

@ericcurtin

In the AI world there is a common usecase where people build and test their AI software on a macOS machine (because those aarch64 SoC's are decent for local AI development and not the size of the spaceship), but when they deploy to the cloud (lets say AWS) they need to build for x86_64 to use on some beefy powerful Nvidia/AMD GPU.

In the Automotive world there is the opposite use case, local developers hack away on an x86_64 machine, but when being deployed to the target it needs to be rebuilt for an aarch64 automotive board.

podman has a qemu-user-static solution, but it's not perfect, it doesn't perform exactly like the OS you are trying to emulate and hence osbuild doesn't work there today (amongst other things that don't work, using osbuild as the example here, simple applications work with qemu-user-static).

podman in recent times has at least 4 compatible runtimes (to my knowledge):

podman run --runtime runc
podman run --runtime crun
podman run --runtime krun
podman run --runtime crun-vm (qemu based)

It may be possible to extend crun-vm to use either (qemu-system-aarch64 or qemu-system-x86_64) as a fully emulated solution.

It would not be super fast (but this is no different to any of our existing solutions), but it would be correct as it would be a fully emulated solution, and people could iterate on x86/aarch64 using a plain-old:

podman run

and them when they want to do a test on an actual target device, they could do a slower emulated build via:

podman run --runtime crun-vm-x86_64

or

podman run --runtime crun-vm-aarch64

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions