Thread (5 messages) 5 messages, 2 authors, 2012-11-02

Re: [Qemu-devel] [PATCH] add bochs dispi interface framebuffer driver

flat view

From: Vasilis Liaskovitis <hidden>
Date: 2012-11-02 11:53:55
Also in: qemu-devel

On Thu, Nov 01, 2012 at 02:30:35PM +0100, Gerd Hoffmann wrote:
On 10/19/12 12:35, Vasilis Liaskovitis wrote:
quoted
Hi,

On Thu, Mar 08, 2012 at 11:13:46AM +0100, Gerd Hoffmann wrote:
quoted
This patchs adds a frame buffer driver for (virtual/emulated) vga cards
implementing the bochs dispi interface.  Supported hardware are the
bochs vga card with vbe extension and the qemu standard vga.

The driver uses a fixed depth of 32bpp.  Otherwise it supports the full
(but small) feature set of the bochs dispi interface:  Resolution
switching and display panning.  It is tweaked to maximize fbcon speed,
so you'll get the comfort of the framebuffer console in kvm guests
without performance penalty.
I am testing this driver with qemu-kvm-1.2 or qemu-kvm master (commit)
and "-std vga". The driver works fine in general.

When I test a guest that runs X (ubuntu-12.04 desktop amd64), sometimes parts of
the screen and keyboard input is mixed between the X terminal and fbconsole
terminals. This happens only on the initial X11 login (right after boot or
reboot) and only sometimes.
Only with bochsfb or with vesafb (+ fbdev xorg driver) too?
vt-switching with vesafb/X11 works fine on a grml 64-bit image.  However, xorg
uses vesa driver in this case, not fbdev (fbdev / fbdevhw xorg modules are
initially loaded but then unloaded). X11 uses 1280x768 and vesafb uses 1024x768
according to dmesg. 

But i haven't been able to test ubuntu+vesafb.  Ubuntu kernels use efifb
(CONFIG_FB_EFI=y) and fbconsoles don't work at all with this driver +
qemu/seabios/vgastd.

I have tried using a custom kernel (CONFIG_FB_EFI not set, CONFIG_FB_VESA=y) but
for some reason I can't load vesafb on ubuntu desktop. No fb drivers are
blacklisted, but no fb driver is loaded if I specify a vga text mode with "vga="
in the kernel command line. X11 still uses 1280x768 resolution here.

Anyway, these are screenshots of the original problem (messed up output with
bochsfb + fbdev-xorg on ubuntu 12.04 startup): 

vt7 http://picpaste.de/bochsfb-badstart-AirrXZuF.png
vt1 http://www.picpaste.de/bochsfb-badstart-f1-EO10MVdF.png

it still happens with the latest bochsfb driver (tested with 3.6.0 though, not
3.7.0-rc3 yet)
quoted
Xorg driver used is fbdev (i can send xorg log), not sure if another driver
should be used/implemented for the bochsfb.
Yes, that one is fine.
quoted
CONFIG_FB_BOCHS=m
CONFIG_FB_VESA=y
# CONFIG_FB_EFI is not set

Should FB_VESA be turned to "not set" for this test? (it's not tristate in Kconfig)

Btw (slightly off-topic) are other framebuffer drivers suitable for the
standard qemu vga-pci device? Would vesafb or uvesafb work? 
Never tried uvesafb.  vesafb will work too, but run with a fixed
resolution.  bochsfb allows you to change the display resolution at
runtime using fbset.  fbcon is faster too because bochsfb supports
display panning.
I assume bochsfb is the way we want to go. I can send more detailed info on the
uvesafb issue if needed.

thanks,

- Vasilis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help