Difference between revisions of "QEMU"

From Sugar Labs
Jump to navigation Jump to search
(→‎Install School Server: Additional instructions)
(→‎HOWTO: Add creating disk images)
Line 40: Line 40:
  
 
You can run qemu on a variety of disk images, including .iso (CD image format), .img (raw disk images), .qcow2 (qemu Copy-On-Write).
 
You can run qemu on a variety of disk images, including .iso (CD image format), .img (raw disk images), .qcow2 (qemu Copy-On-Write).
 +
 +
===Creating disk images===
 +
 +
To create an empty, compressed, expandable hard drive image of 300 GB capacity, enter
 +
 +
$ qemu-img create my.img 300G
 +
 +
using the name of the image file you want to create. The file will be in qcow2 format unless you specify another option.
 +
 +
300 GB is what the School Server installation program wants. After installation, the image file will expand to 6.8 GB.
 +
 +
$ qemu-img info XS.img<br>
 +
image: XS.img<br>
 +
file format: qcow2<br>
 +
virtual size: 300G (322122547200 bytes)<br>
 +
disk size: 6.8G<br>
 +
cluster_size: 4096
  
 
===Minimum Command===
 
===Minimum Command===
Line 49: Line 66:
 
$ kvm -hda hda.img
 
$ kvm -hda hda.img
  
where you will substitute the name of your .img, .iso, or other disk image file.
+
where you will substitute the name of your .img or other disk image file.
 +
 
 +
Similarly for .iso images such as a Sugar LiveCD.
 +
 
 +
$ kvm -cdrom cd.iso
  
This may well boot your image and run, letting you log in and try out your software, assuming that your image file is valid. Depending on what your purpose is, you may prefer to add other options. For full details, consult the qemu documentation. Here are some examples.
+
This may well boot your image and run, letting you log in and try out your software, assuming that your image file is valid and your processor is not too old. Depending on what your purpose is, you may prefer to add other options. Here are some examples. For full details, consult the qemu documentation.
  
 
===Virtual Hardware===
 
===Virtual Hardware===
Line 58: Line 79:
 
$ kvm -m 512 -soundhw es1370  -net user -net nic,model=rtl8139 -hda hda.img -hdb hdb.img -cdrom cd.iso
 
$ kvm -m 512 -soundhw es1370  -net user -net nic,model=rtl8139 -hda hda.img -hdb hdb.img -cdrom cd.iso
  
===Install School Server===
+
===Install [http://wiki.laptop.org/go/School_server School Server]===
  
 
$ kvm -m 512 -hda hda.img -cdrom XS.iso
 
$ kvm -m 512 -hda hda.img -cdrom XS.iso
  
Pay attention to the boot sequence. Press F12 when instructed to get to the boot menu, and tell it to boot from CD. Follow on-screen instructions. The process is almost completely automated. You will then have to set up networking to make this image accessible to jabber users and the like.
+
Pay attention to the boot sequence or it will just skip to its defaults. Press F12 when instructed to get to the boot menu, and tell it to boot from CD. Follow on-screen instructions. The process is almost completely automated. You will then have to set up networking to make this image accessible to jabber users and the like.
  
 
===Command Line===
 
===Command Line===

Revision as of 19:02, 22 April 2009

The qemu emulation environment lets you run a variety of software on your computer in a protected environment. This includes software that is incompatible with your operating system. See also VMWare and WINE.

Use Cases

  • Windows: Run Sugar, School Server, Linux more generally (for example, as a method for shifting from Windows to Linux)
  • Macintosh: Run Sugar, School Server, any Linux
  • Linux on Linux: Fedora (including School Server) on Ubuntu and the like
  • BSD: qemu in development

You can run almost any version of Sugar and the XS school server in qemu, including daily builds, releases, Sugar on a Stick, sugar-jhbuild, and whatever else we come up with. As we port Sugar to other computer architectures, such as ARM, this will become increasingly important, so that developers and testers do not have to purchase one of each.

Getting Started

One of these commands will work in most Linux distributions, using yum for Red Hat-style packages on Fedora and related distros, or apt-get for Debian-style packages on Debian, Ubuntu, and related distros. Otherwise, consult system documentation for package installation or installing from source.

  • yum install qemu
  • apt-get install qemu

There are full-screen text and windowed graphical package manager clients such as aptitude and Synaptic to assist you.

You should install an accelerator if at all possible, that is, if your processor supports virtualization in hardware. To find out whether it does, run the command

$ egrep ‘(vmx|svm)’ /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 … vmx …
flags : fpu vme de pse tsc msr pae mce cx8 … vmx …

Some of the output is truncated in this example, and your results will probably differ elsewhere.

There are two sets of flags because the processor used for this example has two cores. You would be looking for the “vmx” flag for an Intel-VT and the “svm” flag for an AMD-V processor.

This test succeeds if you get any lines of text as a result, and fails if the result is blank.

Installing KVM on Ubuntu is completely automatic, using

$ apt-get install kvm

The installation script gets the source code, compiles it into your kernel, and configures it to Just Work[TM]. Consult system documentation for other Linux distros and other OSs, or if you want to install kqemu instead. Either kqemu or kvm will give you something like a ten times performance boost, according to some sources. Your mileage may vary.

HOWTO

You can run qemu on a variety of disk images, including .iso (CD image format), .img (raw disk images), .qcow2 (qemu Copy-On-Write).

Creating disk images

To create an empty, compressed, expandable hard drive image of 300 GB capacity, enter

$ qemu-img create my.img 300G

using the name of the image file you want to create. The file will be in qcow2 format unless you specify another option.

300 GB is what the School Server installation program wants. After installation, the image file will expand to 6.8 GB.

$ qemu-img info XS.img
image: XS.img
file format: qcow2
virtual size: 300G (322122547200 bytes)
disk size: 6.8G
cluster_size: 4096

Minimum Command

$ qemu -hda hda.img

or

$ kvm -hda hda.img

where you will substitute the name of your .img or other disk image file.

Similarly for .iso images such as a Sugar LiveCD.

$ kvm -cdrom cd.iso

This may well boot your image and run, letting you log in and try out your software, assuming that your image file is valid and your processor is not too old. Depending on what your purpose is, you may prefer to add other options. Here are some examples. For full details, consult the qemu documentation.

Virtual Hardware

Set memory size, sound, networking, second hard drive, CD

$ kvm -m 512 -soundhw es1370 -net user -net nic,model=rtl8139 -hda hda.img -hdb hdb.img -cdrom cd.iso

Install School Server

$ kvm -m 512 -hda hda.img -cdrom XS.iso

Pay attention to the boot sequence or it will just skip to its defaults. Press F12 when instructed to get to the boot menu, and tell it to boot from CD. Follow on-screen instructions. The process is almost completely automated. You will then have to set up networking to make this image accessible to jabber users and the like.

Command Line

This is actually a full terminal interface. It is good for remote servers, where you don't want to run X (too unstable) but you want to be able to log in with ssh to administer the system. This also lets you run full-screen text mode applications such as aptitude and Midnight Commander. Curses is named for the full-screen terminal cursor, which can be anywhere in a 24 × 80 field.

$ kvm -m 512 -curses -hda hda.img

Resources

QEMU home page more on KVM