Author: sewardj
Date: Mon May 4 09:40:11 2015
New Revision: 15178
Log:
Add a new howto for running mips64-linux on QEMU.
Rename the aarch64-linux howto accordingly.
Added:
trunk/docs/internals/qemu-aarch64-linux-HOWTO.txt
- copied, changed from r15159, trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt
trunk/docs/internals/qemu-mips64-linux-HOWTO.txt
Removed:
trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt
Modified:
trunk/docs/Makefile.am
Modified: trunk/docs/Makefile.am
==============================================================================
--- trunk/docs/Makefile.am (original)
+++ trunk/docs/Makefile.am Mon May 4 09:40:11 2015
@@ -30,7 +30,6 @@
internals/3_9_BUGSTATUS.txt \
internals/3_10_BUGSTATUS.txt \
internals/MERGE_3_10_1.txt \
- internals/aarch64-linux-on-qemu-HOWTO.txt
internals/arm_thumb_notes_gdbserver.txt \
internals/avx-notes.txt \
internals/BIG_APP_NOTES.txt \
@@ -48,6 +47,8 @@
internals/porting-HOWTO.txt \
internals/mpi2entries.txt \
internals/porting-to-ARM.txt \
+ internals/qemu-aarch64-linux-HOWTO.txt \
+ internals/qemu-mips64-linux-HOWTO.txt \
internals/register-uses.txt \
internals/release-HOWTO.txt \
internals/segments-seginfos.txt \
Removed: trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt
==============================================================================
--- trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt (original)
+++ trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt (removed)
@@ -1,102 +0,0 @@
-
-How to install and configure a QEMU aarch64-linux installation.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Last updated 30 April 2015
-
-This gives a fairly usable, and not entirely slow, arm64-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 14 (for arm64)
-
-Build qemu-2.2.1 with --target-list including aarch64-softmmu
-
-mkdir Arm64-2
-cd Arm64-2
-
-wget http://d-i.debian.org/daily-images/arm64/daily/netboot/debian-installer/arm64/linux
-
-wget http://d-i.debian.org/daily-images/arm64/daily/netboot/debian-installer/arm64/initrd.gz
-
-# Note. 6G 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 disk6G.img 6G
-
-/path/to/Qemu221/bin/qemu-system-aarch64 \
- -M virt -cpu cortex-a57 -m 256 \
- -drive file=disk6G.img,if=none,id=blk -device virtio-blk-device,drive=blk \
- -net user,hostfwd=tcp::5555-:22 -device virtio-net-device,vlan=0 \
- -kernel linux \
- -initrd initrd.gz \
- -append "console=ttyAMA0 --" \
- -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
- mv /boot/initrd.img-3.16.0-4-arm64 /boot/initrd.img-3.16.0-4-arm64
- echo virtio-mmio >>/etc/initramfs-tools/modules
- /usr/sbin/update-initramfs -c -k 3.16.0-4-arm64
-
-Then on the host, copy out the files that the above created.
-
-cd Arm64-2
-ssh -p 5555 username@localhost \
- "tar -c -f - --exclude=lost+found /boot" | tar xf -
-
-Now back in the VM, we can finish the installation.
-
- 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-aarch64 -M virt \
- -cpu cortex-a57 -m 1024 -drive file=disk6G.img,if=none,id=blk \
- -device virtio-blk-device,drive=blk -net user,hostfwd=tcp::5555-:22 \
- -device virtio-net-device,vlan=0 -kernel boot/vmlinuz-3.16.0-4-arm64 \
- -initrd boot/initrd.img-3.16.0-4-arm64 \
- -append "root=/dev/vda2 rw console=ttyAMA0 --" -nographic
-
-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 gcc g++ automake autoconf emacs subversion gdb
-
-Hack on, etc.
Copied: trunk/docs/internals/qemu-aarch64-linux-HOWTO.txt (from r15159, trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt)
==============================================================================
--- trunk/docs/internals/aarch64-linux-on-qemu-HOWTO.txt (original)
+++ trunk/docs/internals/qemu-aarch64-linux-HOWTO.txt Mon May 4 09:40:11 2015
@@ -63,7 +63,7 @@
mount --rbind /dev /target/dev
chroot /target bash
/etc/init.d/ssh start
- mv /boot/initrd.img-3.16.0-4-arm64 /boot/initrd.img-3.16.0-4-arm64
+ mv /boot/initrd.img-3.16.0-4-arm64 /boot/initrd.img-3.16.0-4-arm64.old
echo virtio-mmio >>/etc/initramfs-tools/modules
/usr/sbin/update-initramfs -c -k 3.16.0-4-arm64
Added: trunk/docs/internals/qemu-mips64-linux-HOWTO.txt
==============================================================================
--- trunk/docs/internals/qemu-mips64-linux-HOWTO.txt (added)
+++ trunk/docs/internals/qemu-mips64-linux-HOWTO.txt Mon May 4 09:40:11 2015
@@ -0,0 +1,111 @@
+
+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
|