Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

QEMU

4,390 bytes added, 10:06, 31 August 2012
Board Emulation
= '''QEMU on IGEP Boards''' =
== Build [http://wiki.qemu.org/Main_Page '''QEMU with IGEP support ==''']  is a generic and open source machine emulator and virtualizer.
Download When used as a machine emulator, QEMU sources from linaro git repository:can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance.
$ [http://git.linaro.org/gitweb?p=qemu/qemu-linaro.git;When used as a=summary git clone git://gitvirtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU.linaroQEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux.org/qemu/qemu-linaroWhen using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests.git]
Download IGEP support patch for QEMU from this documentation can be found [http://downloadswiki.igepqemu.esorg/qemu/0001-IGEP_QEMU_supportManual here].path link ]and after that apply the patch as:<br>
$ cd qemu-linaro== Build QEMU with IGEP support ==
$ patch -p1 &lt;&nbsp;0001-IGEP_QEMU_support.pathDownload QEMU sources from linaro git repository:
Configure the sources for build with this command$ [http://git.linaro.org/gitweb?p=qemu/qemu-linaro.git;a=summary git clone git://git.linaro.org/qemu/qemu-linaro.git]
$&nbsp;Download IGEP support patch for QEMU from this [http://www.isee.biz/configure component/zoo/item/qemu--target-list=arm-softmmu --prefix=emulator link]and after that apply the patch as: <span style="color: rgb(255, 0, 0); "pre>/opt/$ cd qemu-linaro</span>
$ patch -p1 &lt; 0001-IGEP_QEMU_support.path</pre> Configure the sources for build with this command: <pre>$ ./configure --target-list=arm-softmmu --prefix=/opt/qemu-linaro</pre> Build the sources:<pre>$ make </pre> Install QEMU: <pre>$ make install</pre> Optionally you can download from [http://www.isee.biz/component/zoo/item/qemu-emulator here] the QEMU binaries, we suggest install it under /opt directory with the right user execution permissions.<br>
$ make== Board Emulation ==
Install Go to your qemu install directory.<br> <pre>$ cd /opt/qemu-linaro/bin</pre> We provide a QEMUready image based on Ubuntu/Linaro Nano (Oneric 11.11) image, it can be download from [http://www.isee.biz/component/zoo/item/qemu-emulator here] (first uncompress it).<br>
$ make installThe image has 2 partitions (you can see the partitions using fdisk -ul command as: fdisk -ul igep-nano.img)<br>
Device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp; Id&nbsp; System<br>
igep-nano.img1&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 106494&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 53232&nbsp;&nbsp;&nbsp; c&nbsp; FAT32 LBA (Boot)<br>
igep-nano.img2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 106496&nbsp;&nbsp;&nbsp;&nbsp; 1048575&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 470016&nbsp;&nbsp; 83&nbsp; Linux (Root filesystem)<br>  Optionally you can mount the partitions in you host PC and modify the content as:<br> <pre>First Partition: $ mount -o loop,offset=$[63*512] igep-nano.img /mnt/tmp</pre><pre>Second Partition: $ mount -o loop,offset= $[106496*512] igep-nano.img /mnt/tmp</pre> Now you're ready for execute the emulator in a console with this command:<br> <pre>qemu-system-arm -M igep -m 512 -clock unix -serial stdio -drive file=igep-nano.img,if=sd,cache=writeback -usb -monitor telnet:localhost:7100,server,nowait,nodelay -device usb-kbd -device usb-mouse</pre> Parameters:<br>  -m&nbsp;: Memory assigned to the Virtualized board in Mega Bytes.  [[Image:QEMU IGEP Board Emulation boot.png|thumb|center]] == Tips == === Resize Rootfs Partition === We will resize our rootfs partition adding 1 GB at end.  First we create a new raw file using qemu-img as: <pre>$ qemu-img create -f raw addon.raw 1G </pre> With addon.raw we concatenate it at end of our image file as: <pre>$ cat addon.raw &gt;&gt; igep-nano.img </pre> Next step it's modify the partition table information. We will use cfdisk utility for modify the information. <pre>$ sudo cfdisk igep-nano.img </pre> Next step it's select your rootfs partition as this picture shows  [[Image:Cfdisk change size partition.png|thumb|center]]Select the menu '''RESIZE''' and select '''CHANGE&nbsp;SIZE'''&nbsp;option.  [[Image:Cfdisk change size partition option.png|thumb|center]]Select resize at '''END'''.  [[Image:Cfdisk resize end.png|thumb|center]]Enter the MAX new size and press enter key.  We will write the changes to the disk using the '''commit''' menu option and select '''YES''' (confirm the changes).  The next step it's update the file-system structure. <pre>$ sudo losetup /dev/loop0 igep-nano.img -o $[106496*512] $ sudo e2fsck -f /dev/loop0 e2fsck 1.41.14 (22-Dec-2010)rootfs: recovering journalPass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary information rootfs: ***** FILE SYSTEM WAS MODIFIED *****rootfs: 11969/5579872 files (0.6% non-contiguous), 1126338/22491136 blocks $ sudo resize2fs /dev/loop0 $ sudo losetup -d /dev/loop0 </pre> Now you should see your new partition with your wished new size.  [[Category:Development_tools|QEMU]]