kvm & opensuse 12.1 as guest - wrong display colors

I have some strange effect when I try to install Opensuse 12.1 as a KVM guest on an Opensuse 12.1 or Opensuse 11.4 host (x86_64). The host has a Nvidia graphics card.

The colors of the Opensuse guest in the libvirt vnc terminal look completely wrong. Not the standard Suse green on the X11 background image - but a blueish green - as if red color components are missing.

This only happens for Opensuse 12.1 as a guest - not for Opensuse 11.X, not for Debian, not for Ubuntu. It already happens during the installation from CD or from the net and it does not disappear after the installation. The colors are wrong also on other VNC clients.

The effect does not not depend on the hosts graphic card drivers - it appears with the Nvidia driver, the nv driver or the Nouveau driver. Furthermore it does not depend on the virtual graphic card - i.e. it is independent of the choice of the “cirrus logic” or the “vesa card” for the KVM guest.

I tested this on two completely different machines with different hardware and different Nvidia cards.
The colors are wrong.

Did anybody else see this effect ? Any suggestions what to change in the KVM configuration ?

Meanwhile I found out that the colors appear correctly if one changes the settings of the graphics card form “cirrus” to “vmvga” in the Virtual Machine Manager for the already installed machine.

At least for the latest versions of virtualization tools from the following repository
Index of /repositories/Virtualization/openSUSE_12.1

Colors are also OK when changing to “vga” in the “detail settings” for the virtual machine (via the Virtual Machine Manager).

After some more testing I find that there really are some graphics problems when you want to use Opensuse 12.1 and KVM. The Opensuse installer (+ kernel/modules) does not seem to be able to correctly handle the “cirrus” or “vesa” graphics cards the vm-installer offers during the KVM configuration. But there seem to be other problems in the present libvirt tools, too,

I started with an opensuse 12.1 host which is completely upgrad regarding all packages - incl. kernel + kvm + libvirt. The only extra repository I used besides the standard Suse repositories is the one named in comment #2. Now, I wanted to install an Opensuse 12.1 system as a guest in a new KVM virtual machine.

Problem 1:
The first problem I encountered was that the first basic (framebuffer) installation screen of Opensuse (where you can set the language, the screen resolution, etc… and choose “installation” as the next step) never comes up. Installation starts with a text console. So you never get the chance to choose some higher resolution screen. The installation later proceeds with an X11-screen in 800x600 resolution which is also the final resolution after the installation.

I tested the same for Opensuse 11.4 as a host: here both for Opensuse 12.1 and Opensuse 11.4 as guests the installation from CD starts with the welcome screen and the basis opensuse installation screen where you can set a resolution up to 1280 x 1024. So here the difference in the libvirt versions between Opensuse 11.4 and 12.1 seem to play a role.

Problem 2:
Then the X11-System for installation is started. Here the colors are displayed wrongly for an Opensuse 12.1 guest. And this effects persists after the installation if you do not change the graphics of the KVM to “vmvga” or “vga” ( the latter showing a better performance).

This is also true both for Opensuse 11.4 and Opensuse 12.1 hosts with an Opensuse 12.1 guest. So this effect depends on the Opensuse 12.1 system (installer, kernel, modules, graphics handling).

I tested this on 3 different machines . So I think there really is a problem with Opensuse 12.1 and the treatment of the graphics cards the vm-installer offers as options.