Difference between revisions of "QEMU"

From IGEP - ISEE Wiki

Jump to: navigation, search
Line 1: Line 1:
 
= '''QEMU on IGEP Boards'''  =
 
= '''QEMU on IGEP Boards'''  =
  
[http://wiki.qemu.org/Main_Page '''QEMU'''] is a [http://en.wikipedia.org/wiki/Central_processing_unit processor] [http://en.wikipedia.org/wiki/Emulator emulator] that relies on dynamic [http://en.wikipedia.org/wiki/Binary_translation binary translation] to achieve a reasonable speed while being easy to port on new host CPU architectures.
+
[http://wiki.qemu.org/Main_Page '''QEMU''']  is a generic and open source machine emulator and virtualizer.  
 +
 
 +
When used as a machine emulator, QEMU 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.
 +
 
 +
When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests.
 +
 
  
In conjunction with CPU emulation, it also provides a set of device models, allowing it to run a variety of unmodified guest [http://en.wikipedia.org/wiki/Operating_system operating systems]; it can thus be viewed as a [http://en.wikipedia.org/wiki/Virtual_machine_monitor#Classification hosted virtual machine monitor]. It also provides an accelerated mode for supporting a mixture of binary translation (for kernel code) and native execution (for user code), in the same fashion as [http://en.wikipedia.org/wiki/VMware_Workstation VMware Workstation] and [http://en.wikipedia.org/wiki/VirtualBox VirtualBox]. QEMU can also be used purely for CPU emulation for user level processes, allowing applications compiled for one architecture to be run on another.
 
  
 
== Build QEMU with IGEP support  ==
 
== Build QEMU with IGEP support  ==

Revision as of 15:38, 10 January 2012

QEMU on IGEP Boards

QEMU  is a generic and open source machine emulator and virtualizer.

When used as a machine emulator, QEMU 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.

When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests.


Build QEMU with IGEP support

Download QEMU sources from linaro git repository:

$ git clone git://git.linaro.org/qemu/qemu-linaro.git

Download IGEP support patch for QEMU from this link and after that apply the patch as:

$ cd qemu-linaro

$ patch -p1 < 0001-IGEP_QEMU_support.path

Configure the sources for build with this command:

$ ./configure --target-list=arm-softmmu --prefix=/opt/qemu-linaro

Build the sources:

$ make

Install QEMU:

$ make install

Optionally you can download from here the QEMU binaries.

Board Emulation

./qemu-system-arm -M igep -m 512 -clock unix -serial stdio -drive file=/home/mcaro/Projects/myigep/workspace/igep-dsp-gst-framework/igep-ubuntu-desktop.img,if=sd,cache=writeback -usb -usbdevice host:usb.1:80ee:cafe -monitor telnet:localhost:7100,server,nowait,nodelay