OpenWrt in QEMU

This document descripes howto run the OpenWrt x86 port in QEMU.

  • qemu an example setup

It is mixed descriptions from windows and linux, so please read through all of it before starting.

Ubuntu Linux version

Confirmed to work on Ubuntu 10.10 both x86_64 and x86

* Install qemu-kvm and kvm-pxe

sudo apt-get install qemu-kvm kvm-pxe

* Download an openwrt image of your choise.

sudo su -
mkdir -p /var/lib/libvirt/images
cd /var/lib/libvirt/images
wget 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.

model=ne2k_pci

Start the image:

sudo su -
cd /var/lib/libvirt/images
qemu -net nic,model=ne2k_pci -hda openwrt-x86-ext2.image

You should now get a "terminal like" (vnc) window popup which shows the boot of OpenWrt.

Good luck!

Windows version

QEMU is an an open source processor emulator (and virtualizer). Start at QEMU download page which should have a link where QEMU prebuild binaries for Windows. You can also find other (newer) builds of QEMU for Windows by googlling. In this example download the qemu-0.9.0-windows.zip and unzip to a directory.

Download OpenWrt raw image (ex. kamikaze/8.09.1/x86/) and copy the raw image into the qemu directory.

Run QEMU by using following command:

C:\qemu-0.9.0-windows>qemu.exe -L . -hda openwrt-x86-ext2.image

Which shall result in a command window as shown below:

Start QEMU with OpenWrt

QEMU may issue warning message as following:

Could not open '\\.\kqemu' - QEMU acceleration layer not activated

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:

OpenWrt boot up

And in several seconds OpenWrt VM shall be up and running:

OpenWrt running in QEMU

OpenWrt in QEMU ARM

The "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.

As of QEMU 1.1.2, use the following on the command line to get it booting:

qemu-system-arm -M realview-eb-mpcore -kernel openwrt-realview-vmlinux.elf -net nic -net user -nographic

Basically, use the generated image as the `-kernel` parameter.

OpenWrt in QEMU MIPS

The "malta" platform is meant for use with QEMU for emulating a MIPS system.

Back to top

doc/howto/qemu.txt · Last modified: 2014/04/03 03:34 by zz.zhangz.gmail.com