Skip to content
Marat Radchenko edited this page Jan 11, 2014 · 8 revisions

Running in QEMU

If you have powerfull desktop/server box, you can run n8x0 stage on it. Main reasons to do so are CPU speed (and quantity) and RAM amount (several packages cannot be built on N8x0 due to insufficient RAM). We'll use QEMU user emulation + binfmt_misc. Due to the need to pass additional args to QEMU (cpu model), we'll create wrapper script that'll call QEMU with it.

You can also emerge qemu, but make sure you have USE=static. If you emerge qemu system-wide, skip directly to step 5.

  1. Download and unpack stage to /usr/armv6j-unknown-linux-gnueabi/
  2. Download latest qemu release
  3. Unpack and cd into it
  4. Compile QEMU: ./configure --target-list=arm-linux-user --static && make
  5. Copy compiled arm-linux-user/qemu-arm to /usr/armv6j-unknown-linux-gnueabi/
  6. Download qemu-wrapper.c and compile it with gcc -static qemu-wrapper.c -o qemu-wrapper
  7. Copy compiled qemu-wrapper to /usr/armv6j-unknown-linux-gnueabi/
  8. Download chroot prepare script. Run it (its effect doesn't persist across reboot).
  9. With everything set up, chroot into arm system with chroot /usr/armv6j-unknown-linux-gnueabi

Same approach can be used for any QEMU-supported machine. For binfmt ELF magic see from QEMU tarball.

Clone this wiki locally