Using Qemu in ROME (and Cooker)

This is for me a new project begun a few days ago. What I have done so far is to get OM isos to boot and install. Host machines used are ROME or Cooker so far. I do not know any reason this would not work on Rock/4.3.

Note: I am not expert on Qemu, I just learned how to do this in last few days from info from OM devs and youtube video. Knowledge wise I am a user that has been around Mandriva since 2008 and OM since it began.

First I installed these packages which pull in a good number of dependencies:

$ sudo dnf in qemu-system-x86 qemu-device-display-virtio-gpu qemu-ui-opengl qemu-ui-sdl qemu-audio-pa qemu-img qemu-user qemu

That results in:

$ rpm -qa | grep 7.2.0-0.rc2.1
vgabios-7.2.0-0.rc2.1.noarch
sgabios-7.2.0-0.rc2.1.noarch
seabios-7.2.0-0.rc2.1.noarch
qemu-img-7.2.0-0.rc2.1.znver1
ipxe-7.2.0-0.rc2.1.noarch
qemu-common-7.2.0-0.rc2.1.znver1
qemu-ui-spice-core-7.2.0-0.rc2.1.znver1
qemu-char-spice-7.2.0-0.rc2.1.znver1
qemu-ui-opengl-7.2.0-0.rc2.1.znver1
qemu-ui-egl-headless-7.2.0-0.rc2.1.znver1
qemu-ui-spice-app-7.2.0-0.rc2.1.znver1
qemu-device-display-qxl-7.2.0-0.rc2.1.znver1
qemu-audio-alsa-7.2.0-0.rc2.1.znver1
qemu-audio-dbus-7.2.0-0.rc2.1.znver1
qemu-audio-oss-7.2.0-0.rc2.1.znver1
qemu-audio-pa-7.2.0-0.rc2.1.znver1
qemu-audio-sdl-7.2.0-0.rc2.1.znver1
qemu-block-curl-7.2.0-0.rc2.1.znver1
qemu-block-dmg-7.2.0-0.rc2.1.znver1
qemu-block-iscsi-7.2.0-0.rc2.1.znver1
qemu-block-nfs-7.2.0-0.rc2.1.znver1
qemu-block-ssh-7.2.0-0.rc2.1.znver1
qemu-device-display-virtio-gpu-7.2.0-0.rc2.1.znver1
qemu-device-display-virtio-gpu-pci-7.2.0-0.rc2.1.znver1
qemu-device-display-virtio-vga-7.2.0-0.rc2.1.znver1
qemu-ui-curses-7.2.0-0.rc2.1.znver1
qemu-ui-dbus-7.2.0-0.rc2.1.znver1
qemu-ui-gtk-7.2.0-0.rc2.1.znver1
qemu-ui-sdl-7.2.0-0.rc2.1.znver1
qemu-system-x86-core-7.2.0-0.rc2.1.znver1
qemu-system-x86-7.2.0-0.rc2.1.znver1
qemu-user-7.2.0-0.rc2.1.znver1
qemu-7.2.0-0.rc2.1.znver1

That is in Cooker, package versions could be different in ROME or Rock.

To create a storage device for Qemu VM:

$ qemu-img create -f qcow2 /Path_to_/image.img 20G

You can name it whatever you like. I used 20GB for max size. This is a copy on write device that begins it’s life on my system at about 192MB. After installing OM Cooker or ROME Plasma iso it will be about 6.8GB. So you could go as small as 10GB but there won’t be much space to add things. I would think how large one can make this would be limited by ones available disk space.

Next to boot an OMLx iso the basic command I used (obviously it is customizable):

$ qemu-system-x86_64 -enable-kvm /Path_to_/.iso -drive file=/Path_to/image.img -m 2G -cpu host -smp 2 -M pc -vga virtio -display sdl,gl=on -usb -usbdevice mouse -usbdevice keyboard -audio pa,model=ac97

Where -m 2G is 2GB memory, you might make this 4GB if you have enough memory available. But don’t use more than half of your system memory. -smp 2 is giving the VM 2 cpu cores, again this depends on what you have available. But again no more than half of what your system has. -audio pa,model=ac97 is to enable sound. There are other sound model possibilities like hda or sb16.

Note: To find out more about the settings or anything related to these command there are --help and man pages for qemu-system-x86_64, and qemu-img.

But there is an additional trick to boot the OMLx isos. Any older isos (made before # 1526) you have to boot to cli. Then remove x11-driver-input-vmmouse. Then startx and do what you want, install if you want.

Then to boot an installed OMLx system under this scenario you simply remove the /Path_to_/.iso from the command string Which will boot to -drive file=/Path_to/image.img.

This is by no means meant to be exhaustive or definitive about using Qemu. For me it is a beginning. But this did work for me. When you read the qemu-system-x86_64 --help and qemu-img --help you will get the idea that this is meant for users willing to do some work of their own and ask questions from those more knowledgeable at times. I have no doubt some of you can improve on this.

2 Likes

These bug reports seem related to this:

Issue report 2682

Issue report 2683