> The idea is this: Use the console on FB device (CONFIG_FB)
This has been suggested before.
> combination with a modified version of the virtual framebuffer device
> (CONFIG_FB_VIRTUAL) and VNC http://www.uk.research.att.com/vnc/. All
> that is required is to get the virtual framebuffer device working with
> UML (which I have compiled, but not tried), and write a simple VNC
> server for the virtual framebuffer device.
When this idea first came up, I looked at it, discovered that all the
framebuffer gave me was a memory image of the display (which shouldn't have
been too surprising given the name), and tried to figure out how to map it on
to X protocol for display on the host. The only thing I could think of was
sending images to the host X, which I wasn't at all interested in doing.
However, IIRC, that's exactly how VNC works, so that's a good fit.
> This would allow remote administration of your linux system the
> instant the networking card comes alive.
You have that anyway with ssh. This gives you graphics as soon as the net is
> Benefits in UML are that you would have a one-window interface into
> your UML Box, with an ALT-F1, ALT-F2 type interface to switch between
> your virtual terminals.
I think this requires more code. If I understand right, the ALT-F1 would go
through VNC and the vfb, which would have to grab a UML virtual console and
map it into the frame buffer.
> It seems to me that most of the work is done already. Network drivers
> are in the kernel.
> If I understand the virtual FB device properly
> (drivers/video/fbmem.c) it provides a nice bitmap image of what the
> console looks like, without the need for any actual VGA device.
That's my understanding too.
> this system has to do is TCP/IP and a VNC server to send the
> framebuffer information to a remote computer.
Also an appropriate X server, which isn't a problem.
> I don't think the VNC
> stuff is difficult. I don't know anything about doing TCP from the
You won't have to.
> Does this make sense?
I think so.
> If so, is anyone willing to give me pointers on
> how to do some of the tricky bits? I've never done any real kernel
> programming, so pointers would be greatly appreciated.
The first thing to do is configure the frame buffer into UML. Then find an fb
X server and run it. Display things on it (you won't be able to see them
though :-) Then figure out how to attach VNC to it.
That last bit sounds harder than the others. Does VNC attach itself to an
existing frame buffer, watch it paint itself, and convert that into protocol
to be displayed at the other end? If so, then VNC has to be running inside
UML. Get that going, get a network interface up, and you should be in