/android-vnc

Automatically exported from code.google.com/p/android-vnc

Primary LanguageCGNU General Public License v2.0GPL-2.0

1) Download the ARM GNU/Linux cross-compile toolkit from:

http://www.codesourcery.com/gnu_toolchains/arm/download.html

Install according to the instructions there.


2) Install libvncserver:

./configure --host=arm-none-linux-gnueabi --without-pthread --prefix=/opt/android
make
sudo make install


3) Build a custom Android kernel using kbde.c, provided in the kernel directory
of this project:

Unpack linux-2.6.23-android-m3-rc20.tar.gz.
cd kernel
patch -p1 < ../android-vnc/kernel/linux-2.6.23-android-m3-rc20-kbde.patch
adb pull /proc/config.gz . && gunzip config.gz && mv config .config
make menuconfig
[ ... enable KBDE under Drivers, Input device support, Keyboards ... ]
CROSS_COMPILE=/opt/android/arm-2007q3/bin/arm-none-linux-gnueabi- make

To boot the kernel:

emulator -kernel arch/arm/boot/zImage

For further reading, see:
http://honeypod.blogspot.com/2007/12/compile-android-kernel-from-source.html


4) Build and install this project:

./configure --host=arm-none-linux-gnueabi --with-libvncserver=/opt/android
make

(NOTE: You can ignore the warning about gethostbyname being statically linked.)

adb push src/fbvncserver /data
adb shell /data/fbvncserver


5) Redirect Android ports:

telnet localhost 5554
redir add tcp:5900:5901

(NOTE: The fbvncserver by default binds port 5901, not 5900!  Android already
has a VNC server running on port 5900, but it sucks.)


6) Connect from localhost:

xvncviewer -noauto localhost

(NOTE: Additional steps are required to connect externally, since Android's
port redirection works only for the local interface).