mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-13 06:33:56 +00:00
Add a new howto for running mips64-linux on QEMU.
Rename the aarch64-linux howto accordingly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15178
This commit is contained in:
@@ -30,7 +30,6 @@ EXTRA_DIST = \
|
||||
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 @@ EXTRA_DIST = \
|
||||
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 \
|
||||
|
||||
@@ -63,7 +63,7 @@ This gives you a root shell in the new VM. In that shell:
|
||||
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
|
||||
|
||||
111
docs/internals/qemu-mips64-linux-HOWTO.txt
Normal file
111
docs/internals/qemu-mips64-linux-HOWTO.txt
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user