Cédric VINCENT | 27 Mar 16:54 2012

[Announce] Lightweight emulation environment for Slackware/ARM applications


I'm pleased to announce you PRoot (http://proot.me), a new tool that
requires no privilege nor setup to:

    * run Slackware/ARM applications on your Linux/PC thanks to a CPU
      emulator like QEMU user-mode ("binfmt_misc" equivalent);

    * isolate these ARM applications inside the Slackware/ARM root
      file-system ("chroot" equivalent); and

    * make some host files accessible inside this guest root
      file-system ("mount --bind" equivalent).

It's a kind of "lightweight emulation environment" since QEMU
user-mode emulates the guest CPU only: all requests to devices are
redirected to the host device drivers (file-system, network, ...).

Let's see an example: the command below runs on a Linux/PC the
Slackware/ARM program "/bin/sh" -- and all of its sub-programs --
through the specified QEMU:

    $ proot -Q qemu-arm /path/to/armedslack-rootfs/

Since there's no difference between this emulated environment and a
native ARM environment (beside devices), you can use PRoot+QEMU to
develop, debug, and test embedded applications seamlessly on our
Linux/PC.  Here is my favorite example: Perl is known not to be
cross-compilable, however there's no problem to build Perl for
Slackware/ARM on your Linux/PC with PRoot+QEMU (the prompts were
changed for readability purpose):

    <linux-x86>$ proot -Q qemu-arm /path/to/armedslack-rootfs/

    <armedslack>$ cd perl-5.14.2
    <armedslack>$ ./Configure -de
    <armedslack>$ make
    <armedslack>$ make check

There's a lot of things to say about PRoot and if you are curious I
invite you to have a look at the following "Examples" section:


If you have some questions and/or comments, I will be pleased to
answer you either in this thread if they are related to Slackware/ARM,
or in PRoot mailing-list/forum otherwise.

Note that PRoot works on any host Linux distro and with any guest
Linux distro, so you may wonder why I make an announce on this
mailing-list?  Actually PRoot was developed on Slackware64 and heavily
tested with Slackware/ARM; Also, I'm expecting some interesting
questions/comments from Slackware users/developers ;)

ARMedslack mailing list
ARMedslack <at> lists.armedslack.org