
How to install and configure a QEMU mips64-linux installation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Last updated 04 May 2015

This gives an apparently stable, but extremely slow, mips64-linux
install.  It has the advantage that the idle loop works right and so
when the guest becomes idle, qemu uses only very little host cpu, so
you can leave the guest idling for long periods without bad
performance effects on the host.

More or less following
https://gmplib.org/~tege/qemu.html section 8 (for mips64)

Build qemu-2.2.1 with --target-list including mips64-softmmu

mkdir Mips64-1
cd Mips64-1

wget ftp://ftp.sunet.se/pub/Linux/distributions/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/vmlinux-3.2.0-4-4kc-malta

wget ftp://ftp.sunet.se/pub/Linux/distributions/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/initrd.gz

md5sum initrd.gz vmlinux-3.2.0-4-4kc-malta
  71f05a4aaf24671fa72e903abd76a448  initrd.gz
  307fc61d36cb370ea2b697d587af45a6  vmlinux-3.2.0-4-4kc-malta

# Note.  4G is easily enough to install debian and do a build of Valgrind.
# If you envisage needing more space, now is the time to choose a larger
# number.

/path/to/Qemu221/bin/qemu-img create disk4G.img 4G

/path/to/Qemu221/bin/qemu-system-mips64 \
  -M malta -cpu 5Kc -m 256 -hda disk4G.img \
  -net nic,macaddr=52:54:00:fa:ce:08 -net user,hostfwd=tcp::5555-:22 \
  -kernel vmlinux-3.2.0-4-4kc-malta -initrd initrd.img-3.2.0-4-4kc-malta \
  -append "root=/dev/sda1 console=ttyS0 --" -nographic

Do an install, be as vanilla as possible, allow it to create a user
"username", and do not ask it to install any extra software.  But,
when you get to here

  ┌───────────────────┤ [!!] Finish the installation ├────────────────────┐
  │                                                                       │
 ┌│                         Installation complete                         │
 ││ Installation is complete, so it is time to boot into your new system. │
 ││ Make sure to remove the installation media (CD-ROM, floppies), so     │
 ││ that you boot into the new system rather than restarting the          │
 ││ installation.                                                         │
 ││                                                                       │
 └│     <Go Back>                                          <Continue>     │
  │                                                                       │
  └───────────────────────────────────────────────────────────────────────┘

do "Go Back"
then in the next menu "Execute a shell", "Continue"

This gives you a root shell in the new VM.  In that shell:

  mount -t proc proc /target/proc
  mount --rbind /sys /target/sys
  mount --rbind /dev /target/dev
  chroot /target bash
  /etc/init.d/ssh start
  ls /boot
    System.map-3.2.0-4-5kc-malta  initrd.img-3.2.0-4-5kc-malta
    config-3.2.0-4-5kc-malta      vmlinux-3.2.0-4-5kc-malta

Then on the host, copy out the vmlinux and initrd:

ssh -p 5555 username@localhost \
  "tar -c -f - --exclude=lost+found /boot" | tar xf -

  exit
  exit
  Select "Finish the installation"
  Continue

When it reboots, kill qemu from another shell, else it will try to reinstall.

Now start the installation:

/path/to/Qemu221/bin/qemu-system-mips64 \
  -M malta -cpu 5Kc -m 256 -hda disk4G.img -net nic,macaddr=52:54:00:fa:ce:08 \
  -net user,hostfwd=tcp::5555-:22 -kernel boot/vmlinux-3.2.0-4-5kc-malta \
  -initrd boot/initrd.img-3.2.0-4-5kc-malta \
  -append "root=/dev/sda1 console=ttyS0" -nographic

System seems to have 256MB memory no matter how much you request.

This is basically a 32 bit system at this point.  To get something
that can build 64 bit executables, it is necessary to install
gcc-multilib and g++-multilib.

Now you can ssh into the VM and install stuff as usual:

ssh -XC -p 5555 username@localhost

  (on the guest)
  become root

  apt-get install make g++ gcc subversion emacs gdb automake autoconf
  apt-get gcc-multilib g++-multilib

Configuring V on the guest:

  ./autogen.sh
  CFLAGS="-mips64 -mabi=64" CXXFLAGS="-mips64 -mabi=64" \
    ./configure --prefix=`pwd`/Inst
