Difference between revisions of "Frankenchroot"

From Funtoo
Jump to navigation Jump to search
Line 1: Line 1:
{{Subpages|Required Packages,Binary Format Setup,Simple Frankenchroot,Live NFS Frankenchroot, Manual Binary Format Setup}}
{{Subpages|Required Packages,Binary Format Setup,Simple Frankenchroot,Live NFS Frankenchroot, Manual Binary Format Setup}}
A "frankenchroot" is the process of chrooting into a directory on a host system (typically x86-64bit) which contains a foreign architecture (such as arm-32bit or arm-64bit) and having it all magically work thanks to the power of QEMU. While this may seem like it should not work at all (thus the name "frankenchroot", like the Frankenstein monster,) it actually happens to work -- and work well. This page will guide you through the process of setting up a frakenchroot on your own system.
=== Benefits of Frankenchroot ===
There are several benefits to setting up a frankenchroot. The primary benefit is that it is a compelling alternative to the two other options one has available for building stuff on embedded CPUs, which until now was only compiling the software on the embedded CPU itself, or setting up a cross-compile environment.
Building on the embedded CPU can be slow, and it's common to run into limitations related to available CPU power and RAM, as well as IO speed on embedded storage. By using a frankenchroot, these limitations can be completely eliminated.
==== Live Frankenchroot ===
There is another cool thing you can do with a frankenchroot, and that is to set up a ''live'' frankenchoot. In this configuration, you would use something like a Raspberry Pi 3 and export its filesystems using NFS. These filesystems would then get mounted on a host x86 system via NFS. The host x86 system would still be able to chroot into this NFS-based filesystem -- even though the Raspberry Pi 3 is booted and running! In fact, it is quite possible -- and safe -- to run an emerge command on your x86 live frankenchroot while your Raspberry Pi does other things.


[[Category:HOWTO]]
[[Category:HOWTO]]
[[Category:Official Documentation]]
[[Category:Official Documentation]]

Revision as of 22:01, February 24, 2019

A "frankenchroot" is the process of chrooting into a directory on a host system (typically x86-64bit) which contains a foreign architecture (such as arm-32bit or arm-64bit) and having it all magically work thanks to the power of QEMU. While this may seem like it should not work at all (thus the name "frankenchroot", like the Frankenstein monster,) it actually happens to work -- and work well. This page will guide you through the process of setting up a frakenchroot on your own system.

Benefits of Frankenchroot

There are several benefits to setting up a frankenchroot. The primary benefit is that it is a compelling alternative to the two other options one has available for building stuff on embedded CPUs, which until now was only compiling the software on the embedded CPU itself, or setting up a cross-compile environment.

Building on the embedded CPU can be slow, and it's common to run into limitations related to available CPU power and RAM, as well as IO speed on embedded storage. By using a frankenchroot, these limitations can be completely eliminated.

= Live Frankenchroot

There is another cool thing you can do with a frankenchroot, and that is to set up a live frankenchoot. In this configuration, you would use something like a Raspberry Pi 3 and export its filesystems using NFS. These filesystems would then get mounted on a host x86 system via NFS. The host x86 system would still be able to chroot into this NFS-based filesystem -- even though the Raspberry Pi 3 is booted and running! In fact, it is quite possible -- and safe -- to run an emerge command on your x86 live frankenchroot while your Raspberry Pi does other things.