QEMU is a component of the MeeGo SDK. It can run handset or netbook images under an emulator, so you can test your applications on a MeeGo operating system, even if you don't have a MeeGo device.
If you haven't already installed the SDK, see:
For QEMU, it is important to check your graphics capability. See this page about graphics acceleration for details. Please read this page carefully and follow the instructions on it if you are having issues starting runtimes under QEMU.
It is also possible to build and install QEMU manually: see the QEMU tools page for details.
The best and simplest way to use a MeeGo OS image with QEMU is to use
mad-admin to download a runtime, and
mad to run it. See the instructions below for how to do this.
You can get a list of available runtimes for your version of MADDE with:
$ sudo mad-admin list runtimes meego-handset-ia32-qemu-1.1.2-runtime (installable) meego-netbook-ia32-qemu-1.1.2-runtime (installable)
Run the command below. Replace <runtime name> with one of
$ sudo mad-admin create -f -e <runtime name>
This will download the runtime (a ~650+ MB .bz2 file) into MADDE's
cache directory and decompress it in the
runtimes directory.. If network/proxy issues prevent the image from downloading, the url for the runtime can be extracted from the MADDE's
cache/madde.conf.d/<runtime>.conf file, downloaded manually, and copied into the
cache directory. Re-running the above command will now bypass the download and directly decompress the runtime.
After installing, you can check that the runtime is installed by running
mad-admin list again.
$ sudo mad-admin list runtimes meego-handset-ia32-qemu-1.1.2-runtime (installed) meego-netbook-ia32-qemu-1.1.2-runtime (installable)
Note that installed above indicates that the handset runtime was successfully downloaded and configured for QEMU.
To start an installed runtime, use the
mad command to boot the image inside QEMU.
To start the IA32 handset runtime:
$ sudo mad remote -r <handset runtime name> poweron
Here's what the handset image looks like (this is the Applications zone):
To start the IA32 netbook runtime:
$ sudo mad remote -r <netbook runtime name> poweron
Here's what the netbook image looks like (this is Myzone):
You can now use this running image as a deployment target for Qt Creator, or log into it manually over SSH (see below).
When you've finished, use the power off icon in the emulator to switch it off (if available); or from the command line, do:
$ sudo mad remote -r <netbook runtime name> poweroff
If you are having issues with running QEMU, you can try running the image without graphics to help isolate the problem. To do this, set
QEMU_NOGRAPHIC=yes in the environment before running the emulator. For example:
$ QEMU_NOGRAPHIC=yes mad remote -r <handset runtime name> poweron
If you are then able to ssh into the running image, you can be fairly certain that your issues are graphics-related, rather than anything to do with the image itself.
If you are using the MeeGo SDK for Windows, Qt Creator provides a shortcut button to start a QEMU runtime associated with a project, in the bottom left corner:
Clicking on this has the same effect as starting the QEMU runtime manually (as described above).
Once the emulator is running, the button shows a red square: when it is in this state, clicking on it again stops the emulator.
Any time MeeGo is running in QEMU, you can use SSH to connect to the image from a command-line terminal on the host system.
When MADDE starts QEMU, it sets up a redirect from port 6666 on the host to the SSH port (port 22) on the guest (MeeGo on QEMU). So you can log into the running QEMU image with:
$ ssh email@example.com -p 6666
Two user accounts are available:
To configure access to an emulated device: