1 2How to install and configure a QEMU mips64-linux installation. 3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 5Last updated 04 May 2015 6 7This gives an apparently stable, but extremely slow, mips64-linux 8install. It has the advantage that the idle loop works right and so 9when the guest becomes idle, qemu uses only very little host cpu, so 10you can leave the guest idling for long periods without bad 11performance effects on the host. 12 13More or less following 14https://gmplib.org/~tege/qemu.html section 8 (for mips64) 15 16Build qemu-2.2.1 with --target-list including mips64-softmmu 17 18mkdir Mips64-1 19cd Mips64-1 20 21wget ftp://ftp.sunet.se/pub/Linux/distributions/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/vmlinux-3.2.0-4-4kc-malta 22 23wget ftp://ftp.sunet.se/pub/Linux/distributions/debian/dists/wheezy/main/installer-mips/current/images/malta/netboot/initrd.gz 24 25md5sum initrd.gz vmlinux-3.2.0-4-4kc-malta 26 71f05a4aaf24671fa72e903abd76a448 initrd.gz 27 307fc61d36cb370ea2b697d587af45a6 vmlinux-3.2.0-4-4kc-malta 28 29# Note. 4G is easily enough to install debian and do a build of Valgrind. 30# If you envisage needing more space, now is the time to choose a larger 31# number. 32 33/path/to/Qemu221/bin/qemu-img create disk4G.img 4G 34 35/path/to/Qemu221/bin/qemu-system-mips64 \ 36 -M malta -cpu 5Kc -m 256 -hda disk4G.img \ 37 -net nic,macaddr=52:54:00:fa:ce:08 -net user,hostfwd=tcp::5555-:22 \ 38 -kernel vmlinux-3.2.0-4-4kc-malta -initrd initrd.img-3.2.0-4-4kc-malta \ 39 -append "root=/dev/sda1 console=ttyS0 --" -nographic 40 41Do an install, be as vanilla as possible, allow it to create a user 42"username", and do not ask it to install any extra software. But, 43when you get to here 44 45 ┌───────────────────┤ [!!] Finish the installation ├────────────────────┐ 46 │ │ 47 ┌│ Installation complete │ 48 ││ Installation is complete, so it is time to boot into your new system. │ 49 ││ Make sure to remove the installation media (CD-ROM, floppies), so │ 50 ││ that you boot into the new system rather than restarting the │ 51 ││ installation. │ 52 ││ │ 53 └│ <Go Back> <Continue> │ 54 │ │ 55 └───────────────────────────────────────────────────────────────────────┘ 56 57do "Go Back" 58then in the next menu "Execute a shell", "Continue" 59 60This gives you a root shell in the new VM. In that shell: 61 62 mount -t proc proc /target/proc 63 mount --rbind /sys /target/sys 64 mount --rbind /dev /target/dev 65 chroot /target bash 66 /etc/init.d/ssh start 67 ls /boot 68 System.map-3.2.0-4-5kc-malta initrd.img-3.2.0-4-5kc-malta 69 config-3.2.0-4-5kc-malta vmlinux-3.2.0-4-5kc-malta 70 71Then on the host, copy out the vmlinux and initrd: 72 73ssh -p 5555 username@localhost \ 74 "tar -c -f - --exclude=lost+found /boot" | tar xf - 75 76 exit 77 exit 78 Select "Finish the installation" 79 Continue 80 81When it reboots, kill qemu from another shell, else it will try to reinstall. 82 83Now start the installation: 84 85/path/to/Qemu221/bin/qemu-system-mips64 \ 86 -M malta -cpu 5Kc -m 256 -hda disk4G.img -net nic,macaddr=52:54:00:fa:ce:08 \ 87 -net user,hostfwd=tcp::5555-:22 -kernel boot/vmlinux-3.2.0-4-5kc-malta \ 88 -initrd boot/initrd.img-3.2.0-4-5kc-malta \ 89 -append "root=/dev/sda1 console=ttyS0" -nographic 90 91System seems to have 256MB memory no matter how much you request. 92 93This is basically a 32 bit system at this point. To get something 94that can build 64 bit executables, it is necessary to install 95gcc-multilib and g++-multilib. 96 97Now you can ssh into the VM and install stuff as usual: 98 99ssh -XC -p 5555 username@localhost 100 101 (on the guest) 102 become root 103 104 apt-get install make g++ gcc subversion emacs gdb automake autoconf 105 apt-get gcc-multilib g++-multilib 106 107Configuring V on the guest: 108 109 ./autogen.sh 110 CFLAGS="-mips64 -mabi=64" CXXFLAGS="-mips64 -mabi=64" \ 111 ./configure --prefix=`pwd`/Inst 112