I've done some work on a patch to implement a shared memory framebuffer for UML. (Patch to follow in a separate message, or pick it up from my website: http://intgat.tigress.co.uk/rmy/shmfb/index.html)
Apply the patch and build the kernel in the usual way: tar xfj linux-2.6.27.7.tar.bz2 cd linux-2.6.27.7 patch -p1 <linux-2.6.27.7-shm-fb.patch make defconfig ARCH=um make menuconfig ARCH=um make linux ARCH=um During the menuconfig phase you should enable framebuffer devices (UML-specific options/Graphics support/Support for frame buffer devices). Then, in the UML-specific options/Graphics support/Console display driver support menu disable VGA text console, enable Framebuffer Console support, enable Select compiled-in fonts and select a suitable font, for example, VGA 8x16 font. Back in the UML-specific options menu enable Shared Memory Framebuffer driver. To enable the shared memory framebuffer device add the option shmfb=widthxheightxdepth to the kernel command line. For example, shmfb=800x600x4. The width and height can have any reasonable values. The depth can currently only be 2 or 4 bytes per pixel. When the kernel boots it will use the framebuffer device as its console, but you won't be able to see anything! To make the framebuffer console visible you need a separate client application to run on the host. Two clients are provided, a simple Xt-based window and a VNC server: http://intgat.tigress.co.uk/rmy/shmfb/uml_fb-0.1.0.tar.gz To build the VNC server client you'll need libvncserver. If this isn't in your distro's package repository you can get it from the project's Sourceforge page: http://libvncserver.sourceforge.net/. Once you've built the clients you can run them as: uml_xtfb --umid <name> or uml_vncfb --umid <name> where <name> is the name of your UML instance. If you've run the VNC client you still won't be able to see anything! You now need to run a VNC viewer: vncviewer localhost:0 As an alternative to starting the client programs by hand you can also use a kernel command line option of the form shmfb_client=<path_to_client>, where <path_to_client> is, as you might expect, the path to the client you'd like to use. There are a few problems with the client programs: * the cursor in the virtual console doesn't track the mouse very well; * the X server in the UML instance tends to get confused and sends the mouse to the top left hand corner of the display, where it sits and sulks. * the mouse wheel doesn't work; * the VNC client is hardcoded for a US keyboard. (Probably. I've got a UK keyboard, so some of the less used characters may not be quite right); * if any keys are pressed when the client loses focus it never sees the key release, so thinks that, for example, the control key is always pressed. (Adjusting the mouse acceleration in the console mouse server (gpmd) or X server (set m, or your desktop manager's GUI equivalent) helps with some of the mouse issues.) The kernel patch is based on the X11 framebuffer driver by Gerd Knorr. Without Gerd's work I wouldn't have been able to achieve anything. Thanks! Any problems with the patch are my fault. In particular, I'd very much appreciate some hint as to what should be done about fb_pgprotect in fb.h. Ron ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel