Testing KVM images for fast models

Preparations

Use Process/Flexlm to get yourself FM000-KT-00026-r7p0-04rel0.tgz (FM 7.0 Cortex-A15 VE RTSM (Linux) ) Fast Model image.

Set up nfs on your host machine. on Debian this means: no_root_squash,no_subtree_check,insecure)

apt-get install nfs-kernel-server
echo '/srv/nfs 192.168.2.14(rw,insecure,no_root_squash,async,no_subtree_check)' >> /etc/exports
/etc/init.d/nfs-kernel-server restart

Where 192.168.2.14 is the ip of your machine and /srv/nfs the directory you want to export

Downloading hwpacks

Nightly hwpack builds are available at:

http://snapshots.linaro.org/precise/hwpacks/vexpressdt-kvm/latest/

Creating hwpacks

If you don't want to use prebuilt i

Clone hwpacks and l-m-c with patch to make axf files optional:

bzr branch lp:~linaro-maintainers/kvm/hwpack.precise.linaro-kvm-fastmodels 
bzr branch lp:~riku-voipio/linaro-image-tools/linaro-image-tools 
wget http://snapshots.linaro.org/precise/images/nano/111/linaro-precise-nano-20120427-111.tar.gz

Create hwpacks for Fast Model and KVM:

./linaro/linaro-image-tools/linaro-hwpack-create hwpack.precise.linaro-kvm-fastmodels/hwpacks/linaro-vexpressdt-kvm 1
./linaro/linaro-image-tools/linaro-hwpack-create hwpack.precise.linaro-kvm-fastmodels/hwpacks/linaro-vexpressdt-kvm-host 1

Creating images

Create Image for fast model:

./linaro/linaro-image-tools/linaro-media-create --dev fastmodel --output-directory fastmodel --image_size 2000M --hwpack hwpack_linaro-vexpressdt-rtsm-kvm-host_1_armhf_unsupported.tar.gz --binary linaro-precise-nano-20120427-111.tar.gz

Create Qemu/KVM image:

./linaro/linaro-image-tools/linaro-media-create --dev fastmodel --output-directory kvm-image --image_size 1000M --hwpack hwpack_linaro-vexpressdt-rtsm-kvm_1_armhf_unsupported.tar.gz --binary linaro-precise-nano-20120427-111.tar.gz 

Booting it all

Copy the kvm image and kernel to your nfs shared directory

mv kvm-image/* /srv/nfs/

Boot the fast model (img.axf is the semihosting kvm bootwrapper)

cd fastmodel
~/ARM/RTSM_A15x124_VE/bin/RTSM_VE_Cortex-A15x2 img.axf -C motherboard.smsc_91c111.enabled=1 -C motherboard.hostbridge.userNetworking=1 -C motherboard.mmc.p_mmc_file=`ls *.img` -C cluster.cpu0.semihosting-cmd_line="--kernel `ls vmlinuz*`--dtb rtsm_ve-cortex_a15x2.dtb  -- mem=2046M console=ttyAMA0,115200 earlyprintk migration_cost=500  cachepolicy=writealloc root=/dev/mmcblk0p2"

In the fast model, mount the nfs directory

mkdir -p /srv/nfs
mount -t nfs -o nfsvers=3 192.168.2.14:/srv/nfs /srv/nfs

And start the qemu with kvm flags:

cd /srv/nfs
qemu-system-arm -enable-kvm -M vexpress-a15 -drive file=sd.img,if=sd,cache=writeback -nographic -append 'root=/dev/mmcblk0p2 rw console=ttyAMA0 rootwait' -dtb ./rtsm_ve-cortex_a15x2.dtb -kernel ./vmlinuz-3*

Todo: at the moment bombs with: error: kvm run failed Bad address

Where it comes from

Qemu source package is created with Qemu-linaro recipe whenever qemu-linaro git head is updated. The result is build in the Staging overlay PPA.

Kernel is packaged manually, and also built by Staging-overlay PPA.

kvm boot wrapper is built with an automatic Launchpad recipe.

hwpacks of all above is generated wth precise-armhf-vexpressdt-kvm recipe twice a day with latest components together.

RikuVoipio/KVMImages (last modified 2012-05-23 13:23:08)