Web Browser

From Chumby Wiki
Revision as of 00:49, 3 September 2010 by Ksteele (Talk | contribs)

Jump to: navigation, search

Instructions for building Qt/Webkit for Silvermoon.

prereqs

  • install the GCC 4.3.2 ARM toolchain
  • insert a USB drive (with at least 128M available) into your dev unit and map it to /mnt/usb, or make /mnt/usb writable by your dev user
  • ensure that you have a dev environment with automake v1.6 or better (tested on Ubuntu 8.04).

build tslib

mkdir -p ~/dev
cd ~/dev
wget http://github.com/kergoth/tslib/tarball/1.0
  • extract tslib
tar zxvf kergoth-tslib-1.0-0-*.tar.gz
cd kergoth-tslib-*/
  • run autoconf
./autogen.sh
  • vi config.h and comment out the line that refers to rpl_malloc
  • configure, build and install to /mnt/usb
./configure --prefix=/mnt/usb --host=arm-linux
make
make install
  • uncomment module_raw input in /mnt/usb/etc/ts.conf

build openssl

cd ~/dev
wget http://files.chumby.com/source/falconwing/build2370/openssl-0.9.7l.tar.gz
tar zxvf openssl-0.9.7l.tar.gz
  • configure and build
cd openssl-0.9.7l
./Configure --prefix=/mnt/usb -no-dso linux-elf-arm shared
PATH=/usr/arm-linux/bin:$PATH make && make install

build Qt 4.6.3

cd ~/dev
wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz
  • extract Qt
tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz
cd qt-everywhere-opensource-src-4.6.3
  • configure, build and install to /mnt/usb
./configure -embedded arm -pch -prefix /mnt/usb -qt-mouse-tslib -L/mnt/usb/lib/ -I/mnt/usb/include/ -webkit -openssl
make && make install

client setup

  • create the following /mnt/usb/debugchumby script
#!/bin/sh

stop_control_panel
rmmod silvermoon_tsb
insmod /mnt/usb/silvermoon-tsb.ko scaled_touchscreen=1
switch_fb.sh 0

if [ ! -e /mnt/storage/browser_etc ]; then
    cp -rP /etc /mnt/storage/browser_etc
fi
mount -t loop -o bind /mnt/storage/browser_etc /etc

mkdir -p /mnt/usb/root
mount -t loop -o bind /mnt/usb/root /root

export TSLIB_CONFFILE=/mnt/usb/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_TSDEVICE=/dev/input/by-id/soc-noserial-event-ts
export QWS_MOUSE_PROTO=Tslib

if [ ! -e /etc/pointercal ]; then
    /mnt/usb/bin/ts_calibrate
    sync
fi
                
while [ 1 ] ; do
  /mnt/usb/demos/browser/browser -qws 'www.chumby.com'
done
  • download the latest Silvermoon touch screen driver that supports scaled coordinates to /mnt/usb
wget http://files.chumby.com/browser/silvermoon-tsb.ko -O /mnt/usb/silvermoon-tsb.ko
  • remove the USB drive from the dev system, insert it into your Silvermoon unit and reboot

known issues

  • USB keyboard required for text input

too lazy?

Download the chumby Silvermoon QT 4.6.3 / Webkit browser zip file, extract it to the root of your USB drive, insert it into your Silvermoon unit and reboot.