From: Geert Uytterhoeven <geert@linux-m68k.org>
To: User-mode Linux Kernel Development
<user-mode-linux-devel@lists.sourceforge.net>
Subject: [uml-devel] gdkfb
Date: Mon, 2 Aug 2004 12:18:04 +0200 (CEST) [thread overview]
Message-ID: <Pine.LNX.4.58.0408021210420.23627@anakin> (raw)
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2508 bytes --]
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.
- Resolution is fixed to 640x480, 256 colors.
- 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.
- Console and penguin logo (special UML logo) works.
- Userspace access to the frame buffer doesn't work yet.
- 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.
- On my Athlon XP (2.6.7+SKAS host, config based on the Debian
kernel-image-2.6.7-1-k7 config), it crashed very early until I enlarged the
stack sizes (STACKSIZE) of the gdkfb threads. However, even then the
update thread still hangs somewhere after the initial repaint. Userland
libraries are exactly the same as on the laptop. Strange...
- You have to explicitly enable gdkfb on the kernel command line, e.g.
./linux ubd0=/home/geert/uml/root_fs init=/bin/bash console=stderr \
console=tty0 gdkfb
- It needs SKAS, since TT creates a statically linked image (libX11 needs
libpthread when statically linked, and UML crashes when just linked with
libpthread)
- 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.
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.
- The code uses GTK 1.2, but 2.0 works a bit with some modifications to the
Makefiles (See gtk-config vs. pkg-config). GTK2.0 seems to always consume
the ENTER key, which prohibits you from entering input.
Enjoy, and happy hacking ;-)
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
[-- Attachment #2: Type: APPLICATION/octet-stream, Size: 27877 bytes --]
next reply other threads:[~2004-08-02 10:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-02 10:18 Geert Uytterhoeven [this message]
2004-08-02 21:25 ` [uml-devel] Re: gdkfb Geert Uytterhoeven
2004-08-23 15:15 ` [uml-devel] gdkfb Gerd Knorr
2004-08-23 16:52 ` 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=Pine.LNX.4.58.0408021210420.23627@anakin \
--to=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox