VNC (Virtual Network Computing)

= VNC on the Palm Pre=

1. A native VNC client for webOS is now available in the official AppCatalog. Just search for "VNC Client PDK" (de.bernhardslawik.vncclientpdk)

2. There is another Native VNC client for the pre now @ http://www.webos-internals.org/wiki/Application:SdlVNC

3. '''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'''

4. The following is a proof of concept:

Prerequisites:
1. Root the Pre.

2. Install Debian chroot.

Demos:

 * Video on YouTube by nebj00la.
 * Also see image to the right (or here).

Instructions:
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.

./configure

8. Run the following command, it will compile the source code: make && make install

9. Connect to your VNC host: /usr/local/bin/directvnc <:display>

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.

.