All is started from this link where a good boy shared some images in order to start to put hands on esotic architectures.
The bad thing in my opinion is that he doesn't explain how they have been generated,
just in case someone need to customize something; in this post I want to show how to create root filesystems for all
the necessary architectures using
multistrap. If you want instead to use something more serious,
here another post about buildroot,
that allows you to do something similar.
Multistrap is a Debian tool used to create root filesystem: from the Debian's wiki
It was designed primarily for making root filesystems for foreign architecture embedded systems, but in fact can be used for many tasks where one might also use debootstrap.
Its main limitation compared to debootstrap is that it uses apt and dpkg directly so can only work on a debian system - debootstrap depends on nothing but shell, wget, binutils and thus can run pretty-much anywhere.
This is not a complete replacement for the images linked above since at the end
of the procedure won't have a linux kernel to use to start
QEMU but I think
it's useful for someone with already a running instance.
Create the filesystem
The dependencies on a Debian system are
$ sudo apt-get install qemu multistrap qemu-user-static
since I am corageous I choose to create one root filesystem for the PowerPC architecture:
save the content below as
[General] directory=target-rootfs cleanup=true noauth=true unpack=true debootstrap=Grip Net Utils aptsources=Grip #tarballname=rootfs.tar # [Grip] noauth=true packages=apt kmod lsof source=http://emdebian.bytesatwork.ch/mirror/grip keyring=emdebian-archive-keyring suite=stable-grip [Net] #Basic packages to enable the networking packages=netbase net-tools udev iproute iputils-ping ifupdown isc-dhcp-client ssh [Utils] #General purpose utilities packages=locales adduser nano less wget dialog usbutils
Then we can create a root fs using
-a flag is what
sets the architecture)
$ sudo multistrap -a powerpc -f multistrap.conf -d /tmp/rootfs-ppc $ sudo mount -o bind /dev/ /tmp/rootfs-ppc/dev $ sudo cp /usr/bin/qemu-ppc-static /tmp/rootfs-ppc/usr/bin/ $ sudo LC_ALL=C LANGUAGE=C LANG=C chroot /tmp/rootfs-ppc/ dpkg --configure -a
NO when asked to use
dash as default shell. Now we can enter
inside the system and how can see now you have a PowerPC architecture
$ sudo chroot /tmp/rootfs-ppc/ /bin/bash root@host:/# uname -a Linux antani 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) ppc GNU/Linux
If you want an internet connection remember to
mount --bind the
resolv.conf file inside the
If you want to create a real root filesystem for QEMU (or whatever) you can use the
following command after installing the
$ sudo virt-make-fs --format=qcow2 --size=+200M /tmp/rootfs-ppc/ /tmp/rootfs.img
man page for more informations).
The following signatures couldn't be verified error
Depending on the system you are in,
multistrap can fail with this error,
the advise is to add above the line in
/usr/sbin/multistrap that contains
$config_str .= " -o Apt::Get::AllowUnauthenticated=true"
$config_str .= " -o Acquire::AllowInsecureRepositories=true";