Skip to contentSkip to conversation

wishlist: vnc framebuffer device?

DISCUSSION Harald Dunkel 4 participants 5 messages Jun 16, 2012 – Jun 18, 2012

lore
Share & tools
lore
#0 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi folks,

To make a headless system "less headless", would it be possible to integrate a vnc framebuffer device into the kernel?

The idea is to have a vnc server instead of a local screen and keyboard to show the boot output and to provide a console login on /dev/tty{1..6}. It would be pretty similar to qemu. No need for fancy graphics, of course. The IP address might either be obtained using DHCP, or it might use an IP address/netmask given on the kernel command line.

I understand that authentication might be an issue here.

Hopefully this isn't one of the oh-no-not-again questions. I haven't seen it mentioned on the kernel or linux-console mailing lists before.

Regards

Harri
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAk/caG4ACgkQUTlbRTxpHjf8EwCZAZ0H17WYyEwJB3QgCNjazY2O 3NMAn2e0dJa3sbiZr33nY11m1g0zm0j3
=MANA
-----END PGP SIGNATURE-----

#1 lore raw

Hey Harald,

Quoted 2 lines

To make a headless system "less headless", would it be possible to integrate a vnc framebuffer device into the kernel?

VNC as I understand is more suitable for graphical environments. For just text SSH or even telnet/netcat would be more practical.

Quoted 6 lines

The idea is to have a vnc server instead of a local screen and keyboard to show the boot output and to provide a console login on /dev/tty{1..6}. It would be pretty similar to qemu. No need for fancy graphics, of course. The IP address might either be obtained using DHCP, or it might use an IP address/netmask given on the kernel command line.

As I understand it most init implementations log all of their messages to a file in /var/log, so you can view them all post-bootup once you have vnc'd or into the box. This would be the simplest and most foolproof solution, but may not be what you want.

If you are going to send your messaged over a trusted LAN or network ( ie not the internet ) then I'd go with the 'netconsole' module for the kernel.

See https://www.kernel.org/doc/Documentation/networking/netconsole.txt

It (hopefully) would just require an extra kernel command line on the headless machine and a 'netcat -ul portnumber' on the receiving machine.
'Hopefully' because I am unsure if your kern

The problem is that everything is sent as unencrypted plaintext.

Quoted 1 line

I understand that authentication might be an issue here.

Yes, if you mean the security of the transmitted data.

It is unlikely your ISP and other routing companies will violate your security, but there is always a risk of someone doing something they shouldn't be. It is also *very* unhackerlike to send any plaintext over the internet, and you should be secretly ashamed deep down if you do so.

If you do need to secure this information, it might be possible to link SSH to your innitab and have things sent that way. That is idealistic.

In the worst case scenario, you will just have to write a script that acts as an init service that delays all bootup until it can make an SSH connection to another computer and shove the lines of bootup information from /var/log to the other computer as they appear.

If my words have gone over your head, please tell me. I have no clue what you skill level and experience is, and I am making assumptions :)

Regards, William

#2 lore raw
In reply to Harald Dunkel
Quoted 7 lines · Harald Dunkel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi folks,

To make a headless system "less headless", would it be possible to integrate a vnc framebuffer device into the kernel?

What about a VNC server which exports a framebuffer device?
Like: http://code.google.com/p/android-vnc

No need to implement VNC in kernel space.

Signature · 2 lines
Thanks,
//richard
#3 lore raw

Hi Richard,

Quoted 6 lines · richard -rw- weinberger

What about a VNC server which exports a framebuffer device?
Like: http://code.google.com/p/android-vnc

No need to implement VNC in kernel space.

If it can run in user space, then thats fine with me. But I would guess the pseudo framebuffer device itself (without the networking, authentication and encryption stuff) has to reside in the kernel.

It is very important to me to get access to the VNC console very early in the boot procedure, e.g. if there is a fsck asking for help, or if a badly configured root device drops me on busybox.

For qemu/kvm hosts (and others) it is very convenient to access the console via VNC. For "real" hosts I am restricted to SOL or some remote management hardware module providing a web interface.

It would be very nice to get an improvement here.

Regards

Harri

#4 lore raw
Quoted 4 lines · Harald Dunkel

It is very important to me to get access to the VNC console very early in the boot procedure, e.g. if there is a fsck asking for help, or if a badly configured root device drops me on busybox.

Start the VNC server in your initrd and make sure that it gets not killed... :-)

Signature · 2 lines
Thanks,
//richard