From: Gerd Knorr <kraxel@bytesex.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: User-mode Linux Kernel Development
<user-mode-linux-devel@lists.sourceforge.net>
Subject: Re: [uml-devel] gdkfb
Date: 23 Aug 2004 17:15:44 +0200 [thread overview]
Message-ID: <87isb9yjfj.fsf@bytesex.org> (raw)
In-Reply-To: <Pine.LNX.4.58.0408021210420.23627@anakin>
Hi,
My framebuffer experiments reached a usable state now as well. The
patch should show up shortly at:
http://www.suse.de/~kraxel/uml/patches/
The terminal cleanup patch is updated as well, see comments below.
Geert Uytterhoeven <geert@linux-m68k.org> writes:
> Attached is a patch to implement a very preliminary frame buffer device
> on top of GTK/GDK, as some of you may have seen at OLS.
Mine runs directly on libX11, without any GUI toolkit involved (and
stealing ENTER keys ;)
> - Resolution is fixed to 640x480, 256 colors.
Size is configurable at boot time. Runs on TrueColor displays only.
Screen parameters are passed through, i.e. if your X11 display is
16bpp the fb device inside the uml machine will have 16bpp as well, so
I don't have to convert any data ;)
> - It uses 2 threads: one for handling widget events, and another one to
> update the screen every second. Calling the update routines from
> gdkfb_kern.c when the screen contents are changed using
> fillrect/copyarea/imgblt didn't work.
One thread for the communication with the X-Server, any events (fb
updates, data on the X11 socket) will wake up that thread to handle
it. Screen updates can happen much more often than once per second.
Only changed screen areas will be updated.
> - Console and penguin logo (special UML logo) works.
Same here (no special logo through).
> - Userspace access to the frame buffer doesn't work yet.
Same here. Havn't even looked at that yet. The memory block for the
framebuffer is either simply malloced or a shared memory segment,
depending on whenever sharing memory with the X-Server works or not
(MIT-SHM Extention).
Q1: Can I map that into the address space of a uml process?
Q2: Any chance to track the changes (using page faults maybe?),
so I can do more clever screen updates than simply blitting
the whole screen now and then?
> - It works (usually ;-) on my Mobile Pentium III laptop (both 2.4.24+SKAS and
> 2.6.7+SKAS hosts, custom config). I get a window where I can enter
> commands. Pressing some keys may make it crash.
I've tested it on one machine only.
> ./linux ubd0=/home/geert/uml/root_fs init=/bin/bash console=stderr \
> console=tty0 gdkfb
linux console=tty0 x11=800x600
> - It needs SKAS, since TT creates a statically linked image (libX11 needs
> libpthread when statically linked, and UML crashes when just linked with
> libpthread)
Same here ;)
> - The patch includes Gerd Knorr's (a pity I didn't manage to find you at
> OLS!) clean up of the console/terminal code, with some modifications:
> o I modified the stdio console (which you don't need for gdkfb) not to
> panic if it cannot register its console, since it conflicts with the
> normal CONFIG_VT console subsystem.
The updated patch does that as well now. There seems to be no way to
switch at runtime between the stdio console and the vt subsystem, if
vt is enabled it is registered for /dev/tty<n> unconditionally, even
without any console driver being activated (no dummy console, no
fbcon).
> o I moved the stderr console to a separate file with its own config
> option CONFIG_STDERR_CONSOLE, so you can use it even if
> CONFIG_STDIO_CONSOLE is disabled.
Updated the terminal patch to do that as well. I've also swapped
ssl.o and stdio_console.o in the Makefile to fixup the link order,
thus the stdio console is registered first and becomes the default
console as long as the users don't enable the new config options.
If CONFIG_STDERR_CONSOLE is enabled it will allways be the default
console through as it registeres _very_ early. CONFIG_VT will
conflict with the stdio_console as well (see above). Note that you
have to enable CONFIG_EMBEDDED if you want to disable CONFIG_VT.
Jeff, is that good enougth for backward compatibility?
Not sure how to handle that best in the long run. IMHO we should
simply drop the stdio_console.
Gerd
--
return -ENOSIG;
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
next prev parent reply other threads:[~2004-08-23 15:40 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-02 10:18 [uml-devel] gdkfb Geert Uytterhoeven
2004-08-02 21:25 ` [uml-devel] gdkfb Geert Uytterhoeven
2004-08-23 15:15 ` Gerd Knorr [this message]
2004-08-23 16:52 ` [uml-devel] gdkfb Digital Infra, Inc.
2004-08-23 19:40 ` Geert Uytterhoeven
2004-08-24 8:47 ` Gerd Knorr
2004-08-24 9:05 ` Geert Uytterhoeven
2004-08-24 9:11 ` Gerd Knorr
2004-08-25 19:11 ` Geert Uytterhoeven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87isb9yjfj.fsf@bytesex.org \
--to=kraxel@bytesex.org \
--cc=geert@linux-m68k.org \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.