Skip to contentSkip to conversation

Add xf86-video-fbdev and xf86-video-cirrus to qemux86 and qemux86-64 [v4]

PATCH In review Max Eliaser 2 participants 9 messages Aug 26, 2014 – Sep 1, 2014

lore
Share & tools
lore
#0 lore raw

cover Add xf86-video-fbdev and xf86-video-cirrus to qemux86 and qemux86-64 [v4]

Hello list,

This series adds additional x.org drivers to the qemux86 and qemux86-64 machines. Now, instead of just including the "vmware" driver, GUI images for these machines will also include "cirrus" and "fbdev" drivers. Rationale: now that the runqemu script allows users to select which VGA adapter they want qemu to emulate, the qemu images should be able to start X servers with any adapter without requiring a rebuild of the image.

Note that the drivers have only been added to the qemux86 and qemux86-64 machines. If someone is interested in trying them on the other qemu machines, they shouldn't be hard to add.

xf86-video-cirrus did not previously have a recipe, so a new one is also added as part of this series.

REVISED AGAIN: split xorg.conf changes into their own commits.

Regards,
-Max Eliaser
The following changes since commit 6882d2d9993c8655a292c93e84ea01b4738a700d:

yocto-project-qs, ref-manual: Added 'socat' package to essentials. (2014-08-12 13:50:32 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib meliaser/qemu-x-drivers
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=meliaser/qemu-x-drivers

Max Eliaser (5):
xorg-drivers: xf86-video-cirrus: add a recipe for the Cirrus Logic
X.Org driver
qemux86: xorg.conf: allow X.Org driver to be selected automatically.
qemux86: support X11 when QEMU is emulating a different GPU than
vmware
qemux86-64: xorg.conf: allow X.Org driver to be selected
automatically.
qemux86-64: support X11 when QEMU is emulating a different GPU than
vmware

 meta/conf/machine/qemux86-64.conf                           |  2 ++
 meta/conf/machine/qemux86.conf                              |  2 ++
 .../recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb | 13 +++++++++++++
 .../xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf   |  5 -----
 .../xorg-xserver/xserver-xf86-config/qemux86/xorg.conf      |  5 -----
 5 files changed, 17 insertions(+), 10 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb
Signature · 1 line
1.8.3.2
#1 lore raw

PATCH 1/5 xorg-drivers: xf86-video-cirrus: add a recipe for the Cirrus Logic X.Org driver

This driver allows X.Org to use the Cirrus Logic family of VGA adapters. Since QEMU can emulate a Cirrus VGA adapter, this driver will be of use for images that are expected to run under QEMU, if QEMU's other VGA adapters are unavailable.

---
 .../recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb
meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb new file +13 -0
new file mode 100644
index 0000000..01cd37e
@@ -0,0 +1,13 @@
+require xorg-driver-video.inc
+
+SUMMARY = "X.Org X server -- cirrus display driver"
+DESCRIPTION = "cirrus is an Xorg driver for Cirrus Logic VGA adapters. These \
+devices are not so common in the wild anymore, but QEMU can emulate one, so \
+the driver is still useful."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ddc7ca860dc5fd014e7f160ea699295"
+
+SRC_URI[md5sum] = "91fd6b677d62027cd3001debb587a6a6"
+SRC_URI[sha256sum] = "3361e1a65d9b84c464752fd612bdf6087622c6dd204121715366a170e5c3ccd7"
+
+DEPENDS += "libpciaccess"
Signature · 1 line
1.8.3.2
#2 lore raw

PATCH 2/5 qemux86: xorg.conf: allow X.Org driver to be selected automatically.

In reply to Max Eliaser

A section specifying the driver to use is deleted from the image's xorg.conf, allowing the X server to automatically select the most appropriate driver. Testing shows that it does always pick the correct one.

---
 .../xorg-xserver/xserver-xf86-config/qemux86/xorg.conf               | 5 -----
 1 file changed, 5 deletions(-)
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf +0 -5
index 10a6d9a..bbda9ea 100644
@@ -30,11 +30,6 @@ Section "InputDevice"
     Option        "USB"           "on"
 EndSection
 
-Section "Device"
-    Identifier    "Graphics Controller"
-    Driver        "vmware"
-EndSection
-
 Section "Monitor"
     Identifier    "Generic Monitor"
     Option        "DPMS"
Signature · 1 line
1.8.3.2
#3 lore raw

PATCH 3/5 qemux86: support X11 when QEMU is emulating a different GPU than vmware

In reply to Max Eliaser

QEMU is capable of emulating four different VGA adapters: cirrus, std, vmware, and QXL. By adding the cirrus and fbdev X.Org drivers to the qemux86 image, the image can be made to launch an X server on when cirrus and std are chosen, in addition to just vmware. (The build of QEMU in OE-Core appears to have QXL disabled, meaning a driver for it is unnecessary.)

The runqemu script now allows the choice of emulated VGA adapter to be specified manually, so it's important that qemux86 supports any configuration the user might choose without requiring the image to be rebuilt.

---
 meta/conf/machine/qemux86.conf | 2 ++
 1 file changed, 2 insertions(+)
meta/conf/machine/qemux86.conf +2 -0
index ebc27db..3562276 100644
@@ -19,6 +19,8 @@ XSERVER = "xserver-xorg \
            xf86-input-vmmouse \
            xf86-input-keyboard \
            xf86-input-evdev \
+           xf86-video-cirrus \
+           xf86-video-fbdev \
            xf86-video-vmware"
 
 MACHINE_FEATURES += "x86"
Signature · 1 line
1.8.3.2
#4 lore raw

Re: [PATCH 3/5] qemux86: support X11 when QEMU is emulating a different GPU than vmware

Quoted 5 lines · Max Eliaser

QEMU is capable of emulating four different VGA adapters: cirrus, std, vmware, and QXL. By adding the cirrus and fbdev X.Org drivers to the qemux86 image, the image can be made to launch an X server on when cirrus and std are chosen, in addition to just vmware. (The build of QEMU in OE-Core appears to have QXL disabled, meaning a driver for it is unnecessary.)

I knew there was something missing...

http://lxr.free-electrons.com/source/drivers/gpu/drm/cirrus/Kconfig

The kernel has a minimal DRM/KMS driver for the Cirrus that qemu emulates, so we should also add xf86-video-modesettings driver to this list and ensure that the qemu images enable this kernel driver.

Ross

#5 lore raw

Re: [PATCH 3/5] qemux86: support X11 when QEMU is emulating a different GPU than vmware

My understanding is that xf86-video-modesetting is completely unaccelerated, whereas xf86-video-cirrus does some 2D acceleration. Is that not correct?

-Max

Quoted 16 lines · Ross
Quoted 5 lines · Max Eliaser

QEMU is capable of emulating four different VGA adapters: cirrus, std, vmware, and QXL. By adding the cirrus and fbdev X.Org drivers to the qemux86 image, the image can be made to launch an X server on when cirrus and std are chosen, in addition to just vmware. (The build of QEMU in OE-Core appears to have QXL disabled, meaning a driver for it is unnecessary.)

I knew there was something missing...

http://lxr.free-electrons.com/source/drivers/gpu/drm/cirrus/Kconfig

The kernel has a minimal DRM/KMS driver for the Cirrus that qemu emulates, so we should also add xf86-video-modesettings driver to this list and ensure that the qemu images enable this kernel driver.

Ross

#6 lore raw

Re: [PATCH 3/5] qemux86: support X11 when QEMU is emulating a different GPU than vmware

Quoted 3 lines · Max Eliaser

My understanding is that xf86-video-modesetting is completely unaccelerated, whereas xf86-video-cirrus does some 2D acceleration. Is that not correct?

The question is what acceleration does the qemu cirrus actually implement, and is that acceleration actually useful? Years of working on acceleration architectures for the intel gpu driver have generally shown that you can't easily beat direct access to the framebuffer...

Ross

#7 lore raw

PATCH 4/5 qemux86-64: xorg.conf: allow X.Org driver to be selected automatically.

In reply to Max Eliaser

A section specifying the driver to use is deleted from the image's xorg.conf, allowing the X server to automatically select the most appropriate driver. Testing shows that it does always pick the correct one.

---
 .../xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf            | 5 -----
 1 file changed, 5 deletions(-)
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf +0 -5
index 10a6d9a..bbda9ea 100644
@@ -30,11 +30,6 @@ Section "InputDevice"
     Option        "USB"           "on"
 EndSection
 
-Section "Device"
-    Identifier    "Graphics Controller"
-    Driver        "vmware"
-EndSection
-
 Section "Monitor"
     Identifier    "Generic Monitor"
     Option        "DPMS"
Signature · 1 line
1.8.3.2
#8 lore raw

PATCH 5/5 qemux86-64: support X11 when QEMU is emulating a different GPU than vmware

In reply to Max Eliaser

QEMU is capable of emulating four different VGA adapters: cirrus, std, vmware, and QXL. By adding the cirrus and fbdev X.Org drivers to the qemux86-64 image, the image can be made to launch an X server on when cirrus and std are chosen, in addition to just vmware. (The build of QEMU in OE-Core appears to have QXL disabled, meaning a driver for it is unnecessary.)

The runqemu script now allows the choice of emulated VGA adapter to be specified manually, so it's important that qemux86-64 supports any configuration the user might choose without requiring the image to be rebuilt.

---
 meta/conf/machine/qemux86-64.conf | 2 ++
 1 file changed, 2 insertions(+)
meta/conf/machine/qemux86-64.conf +2 -0
index 642a2d9..837f9f4 100644
@@ -20,6 +20,8 @@ XSERVER = "xserver-xorg \
            xf86-input-vmmouse \
            xf86-input-keyboard \
            xf86-input-evdev \
+           xf86-video-cirrus \
+           xf86-video-fbdev \
            xf86-video-vmware"
 
 MACHINE_FEATURES += "x86"
Signature · 1 line
1.8.3.2