User Tools

Site Tools


doc:howto:qemu

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:howto:qemu [2013/01/20 06:23]
hhm arm: examples
doc:howto:qemu [2014/10/27 09:38] (current)
theoradicus reordering
Line 1: Line 1:
 ====== OpenWrt in QEMU ====== ====== OpenWrt in QEMU ======
 +
 +QEMU is an an open source processor emulator (and virtualizer).
 This document descripes howto run the OpenWrt x86 port in QEMU. This document descripes howto run the OpenWrt x86 port in QEMU.
   * [[toh:​qemu:​qemu]] an example setup   * [[toh:​qemu:​qemu]] an example setup
Line 5: Line 7:
 It is mixed descriptions from windows and linux, so please read through all of it before starting. It is mixed descriptions from windows and linux, so please read through all of it before starting.
  
-===== Ubuntu Linux version ===== +:!: Choosing different emulation settings can affect performance greatly.
-Confirmed to work on Ubuntu 10.10 both x86_64 and x86+
  
-* Install ​qemu-kvm and kvm-pxe+Example: 30s iperf-s@openwrt(qemu running on host) to host
  
-| sudo apt-get install qemu-kvm kvm-pxe |+<​code>​ 
 +ne2k_pci:​0.0-31.3 sec  14.6 MBytes ​ 3.92 Mbits/sec 
 +pcnet: 0.0-30.0 sec  2.38 GBytes ​  682 Mbits/sec 
 +e1000: 0.0-30.0 sec  6.23 GBytes ​ 1.79 Gbits/sec 
 +vmxnet3: 0.0-30.0 sec  8.67 GBytes ​ 2.48 Gbits/sec 
 +virtio-net-pci: ​ 0.0-30.0 sec  44.6 GBytes ​ 12.8 Gbits/sec 
 +</​code>​
  
-* Download an openwrt image of your choise.+===== Getting QEMU =====
  
-| sudo su - +Qemu runs on many different systems.
-  mkdir -p /​var/​lib/​libvirt/​images +
-  cd /​var/​lib/​libvirt/​images +
-  http://​downloads.openwrt.org/​backfire/​10.03/​x86/​openwrt-x86-ext2.image.gz +
-  gunzip openwrt-x86-ext2.image.gz +
-|+
  
-Before starting it under qemu/kvm. I had to set a network driver model to make a network interface appear in OpenWrt.+==== Ubuntu Linux ====
  
-| model=ne2k_pci |+Many Linux Distributions like Debian, Ubuntu, Suse, Fedora provide a qemu package in their package repositories.
  
-Start the image+Example for Debian 7 (Wheezy)
-sudo su +<​code>​ 
-  ​cd ​/var/​lib/​libvirt/​images +sudo apt-get install qemu 
-  qemu -net nic,​model=ne2k_pci -hda openwrt-x86-ext2.image +</code>
-|+
  
-You should now get a "​terminal like" (vnc) window popup which shows the boot of OpenWrt.+:!: Qemu is rapidly developing so features, syntax might change between versions.
  
-Good luck!+==== Windows version ====
  
-===== Windows version ===== + ​The ​[[http://wiki.qemu.org/Links|QEMU Wiki Links]] page provides you with several unoffical download links of Windows builds.
-QEMU is an an open source processor emulator (and virtualizer). Start  +
-at [[http://www.qemu.org/download.html|QEMU download page]] which should  +
-have a link where [[http://​www.h7.dion.ne.jp/​~qemu-win/​|QEMU prebuild binaries  +
-for Windows]]. You can also find other (newer) ​builds ​of QEMU for Windows  +
-by googlling. In this example download the  +
-[[http://​www.h6.dion.ne.jp/​~kazuw/​qemu-win/​qemu-0.9.0-windows.zip|qemu-0.9.0-windows.zip]]  +
-and unzip to a directory.+
  
-Download OpenWrt raw image (ex. [[http://​downloads.openwrt.org/​kamikaze/​8.09.1/​x86/​openwrt-x86-ext2.image|kamikaze/​8.09.1/​x86/​]]) and copy the raw image into the qemu directory. 
  
-Run QEMU by using following command: +===== OpenWrt in QEMU ARM ====== 
-| <​code>​ +The "​[[https://dev.openwrt.org/wiki/​realview|realview]]"​ platform is meant for use with QEMU for emulating an ARM system. This platform might not be available ​in the standard downloads (it isn't at time of writing), but it currently appears when building from scratch.
-C:\qemu-0.9.0-windows>​qemu.exe -L . -hda openwrt-x86-ext2.image +
-</code> ​| +
-Which shall result ​in a command window as shown below:+
  
-{{:​inbox:​openwrtqemu1.png?​600|Start ​QEMU with OpenWrt}}+As of QEMU 1.1.2, use the following on the command line to get it booting:
  
-QEMU may issue warning message as following:​ +  qemu-system-arm -M realview-eb-mpcore -kernel openwrt-realview-vmlinux.elf -net nic -net user -nographic
-| <​code>​ +
-Could not open '​\\.\kqemu' ​QEMU acceleration layer not activated +
-</​code>​ | +
-You may correct this warning by installing KQEMU driver which provides  +
-better performance for the VM, but this is not as relevant to OpenWrt.+
  
-Upon execution of the above command new window shall appear with booting OpenWrt:+Basically, use the generated image as the `-kernel` parameter.
  
-{{:inbox:openwrtqemu2.png?600|OpenWrt boot up}}+FIXME Trunkkernel image does not boot; initramfs image works 
 +FIXME Trunkuntested: use SD card with rootfs, NFS rootfs, NBD rootfs 
 +FIXME Trunk: no sound, pcibus, usb emulation in qemu possible?
  
-And in several seconds ​OpenWrt ​VM shall be up and running:+===== OpenWrt ​in QEMU MIPS ====== 
 +The "​[[https://​dev.openwrt.org/​wiki/​malta|malta]]"​ platform is meant for use with QEMU for emulating a MIPS system.
  
-{{:inbox:openwrtqemu3.png?600|OpenWrt running in QEMU}}+:!The malta platform is broken in trunk since gcc was switched to 4.8. Compile with gcc 4.6 to get it working or disable MIPS16. [[https://​dev.openwrt.org/​ticket/​16881|ticket #16881]]
  
 +:!: qemu-git has the potential fix since [[http://​git.qemu.org/?​p=qemu.git;​a=commit;​h=b231c103afced2eb27af9b6a771ab4b250afb93f|October 2014]]
  
-====== OpenWrt in QEMU ARM ====== +depending on the malta variant 
-The "​[[https://​dev.openwrt.org/wiki/​realview|realview]]"​ platform is meant for use with QEMU for emulating an ARM system. This platform might not be available in the standard downloads (it isn't at time of writing), but it currently appears when building from scratch.+<​code>​ 
 +qemu-system-mipsel -kernel ​openwrt-malta-le-vmlinux-initramfs.elf -nographic -m 256 
 +</code>
  
-As of QEMU 1.1.2, use the following on the command line to get it booting:+===== OpenWrt in QEMU X86-64 =====
  
-  qemu-system-arm -M realview-eb-mpcore -kernel openwrt-realview-vmlinux.elf -net nic -net user -nographic+The x86-64 target has support for ESXI images by default. 
 +Booting the VMDK / VDI images might not work with newer qemu versions.
  
-Basically, use the generated image as the `-kernel` parameter.+:!: IMG/​VDI/​VMDK with "-hda" switch do not work with qemu 2.x .
  
-====== ​OpenWrt in QEMU MIPS ====== +pc-q35-2.0 / q35 emulates a different machine.  
-The "​[[https://​dev.openwrt.org/​wiki/​malta|malta]]"​ platform is meant for use with QEMU for emulating a MIPS system.+With new syntax (no -hda , -net) the IMG / VDI / VMDK works here. 
 + 
 +Features: 
 + 
 +  * 2 HDDs (1 openwrt image, 1 data) 
 +  * 1 drive per bus, 6 bus available (until ide.5) 
 +  * 2 Network cards : 1 bridged to host (need higher permission) and 1 "​user"​ (default, NAT 10.x.x.x) 
 + 
 +Some emulated network cards might have performance issues. 
 + 
 +<​code>​ 
 +qemu-system-x86_64 \ 
 +-enable-kvm \ 
 +-M pc-q35-2.0 \ 
 +-drive file=openwrt-x86_64-combined-ext4.vdi,​id=d0,if=none \ 
 +-device ide-hd,​drive=d0,bus=ide.0 \ 
 +-drive file=data.qcow2,​id=d1,if=none \ 
 +-device ide-hd,​drive=d1,bus=ide.1 \ 
 +-soundhw ac97 \ 
 +-netdev bridge,br=virbr0,id=hn0 \ 
 +-device e1000,​netdev=hn0,​id=nic1 \ 
 +-netdev user,id=hn1 \ 
 +-device e1000,​netdev=hn1,​id=nic2 
 + 
 +qemu-system-x86_64 -M q35 -drive file=openwrt-x86_64-combined-ext4.img,​id=d0,​if=none,​bus=0,​unit=0 -device ide-hd,​drive=d0,​bus=ide.
 +</​code>​
doc/howto/qemu.1358659382.txt.bz2 · Last modified: 2013/01/20 06:23 by hhm