QemuARMVexpress

Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2013-08-01 15:07:12
Size: 983
Editor: p-pisati
Comment:
Revision 10 as of 2013-08-04 11:28:38
Size: 2121
Editor: p-pisati
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
=== 1) setup the rootfs ===
Line 4: Line 6:
sudo apt-get install qemu-user-static sudo apt-get install qemu-user-static qemu-system-arm
Line 21: Line 23:
sed 's/tty1/ttyAMA0/g' /etc/init/tty1.conf > /etc/initttyAMA0.conf
echo "deb http://archive.ubuntu.com/ubuntu/ saucy main restricted multiverse universe" > /etc/apt/sources.list
sudo chroot qemu-img
sed 's/tty1/ttyAMA0/g' /etc/init/tty1.conf > /etc/init/ttyAMA0.conf
echo "deb  http://ports.ubuntu.com saucy main restricted multiverse universe" > /etc/apt/sources.list
Line 28: Line 31:
}}}
Line 29: Line 33:
# saucy/generic armhf multiplatform kernel === 2) pick and install a kernel ===
Line 31: Line 35:
open a web browser and navigate to this page:

https://launchpad.net/ubuntu/+source/linux

pick a kernel that suites your need (e.g. 3.10.0-6.17), download and install it:

{{{
apt-get install wget ca-certificates
wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-image-3.10.0-6-generic-lpae_3.10.0-6.17_armhf.deb
dpkg -i linux-image-3.10.0-6-generic-lpae_3.10.0-6.17_armhf.deb

# press CTRL+D to exit the chroot
^D
Line 32: Line 49:

=== 3) boot it up ===

{{{
# copy kernel, initrd and dtb files
cp qemu-img/boot/vmlinuz-3.10.0-6-generic-lpae .
cp qemu-img/boot/initrd.img-3.10.0-6-generic-lpae .
cp qemu-img/lib/firmware/3.10.0-6-generic-lpae/device-tree/vexpress-v2p-ca15-tc1.dtb .
# umount the rootfs img
sudo umount qemu-img
# and finally boot it up!
qemu-system-arm -kernel vmlinuz-3.10.0-6-generic-lpae -initrd initrd.img-3.10.0-6-generic-lpae -M vexpress-a15 -serial stdio -m 1024 -append 'root=/dev/mmcblk0 rw mem=1024M raid=noautodetect rootwait console=ttyAMA0,38400n8 devtmpfs.mount=0' -sd vexpress-4G.img -dtb ./vexpress-v2p-ca15-tc1.dtb
}}}

Instructions on how to successfully setup qemu to emulate an arm vexpress a9/a15 board (and possibly any other arm hw that qemu emulates):

1) setup the rootfs

sudo apt-get install qemu-user-static qemu-system-arm

mkdir vexpress
cd vexpress
mkdir qemu-img

# 4GBs should be enough
dd if=/dev/zero of=./vexpress-4G.img bs=4M count=1024
sudo losetup -f ./vexpress-4G.img
sudo mkfs.ext4 /dev/loop0
sudo mount /dev/loop0 qemu-img

# let's bootstrap a saucy armhf rootfs in the qemu-img directory
sudo qemu-debootstrap --arch=armhf saucy qemu-img
sudo cp `which qemu-arm-static` qemu-img/usr/bin/

# setup serial console, apt repositories and network
sudo chroot qemu-img
sed 's/tty1/ttyAMA0/g' /etc/init/tty1.conf > /etc/init/ttyAMA0.conf
echo "deb  http://ports.ubuntu.com saucy main restricted multiverse universe" > /etc/apt/sources.list
apt-get update
echo -e "\nauto eth0\niface eth0 inet dhcp" >> /etc/network/interfaces

# root password
passwd

2) pick and install a kernel

open a web browser and navigate to this page:

https://launchpad.net/ubuntu/+source/linux

pick a kernel that suites your need (e.g. 3.10.0-6.17), download and install it:

apt-get install wget ca-certificates
wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-image-3.10.0-6-generic-lpae_3.10.0-6.17_armhf.deb
dpkg -i linux-image-3.10.0-6-generic-lpae_3.10.0-6.17_armhf.deb

# press CTRL+D to exit the chroot
^D

3) boot it up

# copy kernel, initrd and dtb files
cp qemu-img/boot/vmlinuz-3.10.0-6-generic-lpae .
cp qemu-img/boot/initrd.img-3.10.0-6-generic-lpae .
cp qemu-img/lib/firmware/3.10.0-6-generic-lpae/device-tree/vexpress-v2p-ca15-tc1.dtb .
# umount the rootfs img
sudo umount qemu-img
# and finally boot it up!
qemu-system-arm -kernel vmlinuz-3.10.0-6-generic-lpae -initrd initrd.img-3.10.0-6-generic-lpae -M vexpress-a15 -serial stdio -m 1024 -append 'root=/dev/mmcblk0 rw mem=1024M raid=noautodetect rootwait console=ttyAMA0,38400n8 devtmpfs.mount=0' -sd vexpress-4G.img -dtb ./vexpress-v2p-ca15-tc1.dtb

Kernel/Dev/QemuARMVexpress (last edited 2013-08-04 11:28:38 by p-pisati)