VNC (Virtual Network Computing)
VNC on the Palm Pre
NOTE: As an alternative to enabling VNC by following this tutorial, one can use PalmVNC in the Classic emulator with full control. You may download PalmVNC at: http://palmvnc2.free.fr/download.php
There is another Native VNC client for the pre now @ http://www.webos-internals.org/wiki/Application:SdlVNC
The following is a proof of concept:
1. Root the Pre.
1. Download the source tarball, directvnc_0.7.5.orig.tar.gz. NOTE: There is a newer version of directvnc at http://code.google.com/p/directvnc-rev/ ( tarball at http://directvnc-rev.googlecode.com/files/directvnc-0.7.5-test-051207.tar.gz ) that has a feature that might be very useful on the pre, keyboard remapping - http://code.google.com/p/directvnc-rev/wiki/KeyboardMapping - as well as a few others - http://code.google.com/p/directvnc-rev/wiki/NewFeatures - also if someone wants to get GGI working with DirectFB, ggivnc is under current development (unlike even directvnc-rev which is untouched since 2007) - http://www.lysator.liu.se/~peda/ggivnc/ - ggivnc's author is on #ggi on freenode irc. Another option would be to try a GTK-based VNC client, as with vala-terminal.
2. Move the tarball to /usr/local/src/
3. Run the following command from /usr/local/src/:
tar zxvf directvnc_0.7.5.orig.tar.gz
4. A new directory structure should be created. cd to /usr/local/src/directvnc-0.7.5/src/
5. Modify the source of dfb.c (use vi). Remove lines 29, 33, 44, 69 and 83. Here's what each of the lines contains, so you know what we're deleting:
> 29: IDirectFBInputDevice *mouse; #We don't have a mouse. > 33: DFBCardCapabilities caps; #Won't compile with this line. > 44: DFBCHECK(DirectFBSetOption ("quiet", "")); #Won't compile with this line, either. > 69: DFBCHECK(dfb->GetInputDevice( dfb, DIDID_MOUSE, &mouse )); #We don't have a mouse > 83: mouse->Release( mouse ); #We don't have a mouse
As you can see, we're removing code that will support a mouse and other things that cause the source not to compile. I haven't figured out how to get mouse control. Maybe someone can write a mouse driver that uses the touchscreen. :)
6. Change back to /usr/local/src/directvnc-0.7.5/
7. Run the following command, it will run some checks against the system and get things moving:
NOTE: If any dependencies are missing, let us know in irc.freenode.net #webos-internals, we'll update the wiki.
8. Run the following command, it will compile the source code:
make && make install
9. Connect to your VNC host:
10. Testing: On the PC, take some window (like notepad) and drag it all around the screen, because the Pre won't update it's display until the area of the pre's client focus of the PC window actually sees a pixel change. So until that part of the windows changes you might not seem connected. As with any VNC controller you can expect a bit of lag too this is normal.