User Tools

Site Tools


chumbyqt

Preparation

You will need a chumby, one usb-stick with at least 75 Mb of free space and ext2/3 formatting. Since the chumby mounts the USB-Stick in /mnt/usb, this is done the same way when building.

:!: Warning :!:

This software only works with chumby software version 1.0.7 or higher

Arm Toolchain

Install the arm crosscompiler toolchain as described here:

GNU_Toolchain

Troubleshooting

With Ubuntu 12.04 LTS I got 'No such file or directory' messages when executing the gcc. After installing ia32-libs as suggested by problem-with-codesourcery-tools-arm.html everything worked fine.

TSlib

Library used to get data from the touchscreen. Get it from github:

git clone https://github.com/kergoth/tslib.git

run autogen

./autogen.sh

then configure & make & make install to copy the files

./configure --prefix=/mnt/usb --host=arm-linux
make
make install

Qt

Download Qt from coregpl, install it to a custom folder. Make sure to install the sources!

:!: In order to use the api of mysmartgrid you need openssl. See section “openssl” for further information. :!:

cd QtSDK/QtSources/<Version>/
./configure -embedded arm -pch -prefix /mnt/usb -qt-kbd-linuxinput -qt-mouse-tslib -L/mnt/usb/lib -I/mnt/usb/include -nomake examples -nomake demos
make
make install

Demo

We are using this demo: fckeditor_upload_pictureflow-chumby_1_0.tar.gz

Unpack & cd, then:

/mnt/usb/bin/qmake
make
mkdir /mnt/usb/test
cp pictureflow *jpg /mnt/usb/test
touch /mnt/usb/start_sshd

Create a file /mnt/usb/chumby.env with the following content:

export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/mnt/usb/lib/ts
#export TSLIB_CONSOLEDEVICE=/dev/ttyS0
export TSLIB_CONFFILE=/mnt/usb/etc/ts.conf
export TSLIB_CALIBFILE=/mnt/usb/etc/pointercal
export LD_LIBRARY_PATH=/lib:/mnt/usb/lib
export POINTERCAL_FILE=/mnt/usb/etc/pointercal
export QWS_DISPLAY=LinuxFb:/dev/fb0:mmWidth113:mmHeight85
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
#export QWS_KEYBOARD=LinuxInput:/dev/input/event0

Edit /mnt/usb/etc/ts.conf:

# Uncomment if you wish to use the linux input layer event interface
module_raw input

module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

Running Demo

  1. ssh to chumby
  2. cd /mnt/usb
  3. stop_control_panel
  4. source ./chumby.env
  5. run /mnt/usb/bin/ts_calibrate
  6. to test calibration: /mnt/usb/bin/ts_test
  7. run /mnt/usb/test/pictureflow -qws & (note the &, application will crash otherwise)

Controlpanel source

git clone https://github.com/mysmartgrid/chumby-controlpanel.git

Libraries needed for controlpanel

libiw

Download http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz

copy iwlib.h to /mnt/usb/include/iwlib.h and wireless.22.h to /mnt/usb/include/wireless.h

copy /usr/lib/libiw.so.29 to /mnt/usb/lib/libiw.so.29 and create a symlink/copy /mnt/usb/lib/libiw.so

alsalib

Download http://files.chumby.com/source/falconwing/build2370/alsa-lib_1.0.10.orig.tar.gz

configure: ./configure –prefix=/opt/arm-2008q3 –datadir /mnt/usb/share –libdir /mnt/usb/lib/alsa-lib –host=arm-linux host_alias=arm-linux

copy sound and all header files in include/ to /mnt/usb/include/alsa/

copy /usr/lib/libasound.so and /usr/lib/libasound.so.2 to /mnt/usb/lib/

Bluetune, Atomix and Neptune

Bluetune is used to play media such as mp3-files, webradio, etc. It is included in the chumby software but needs to be available for compiling and linking.

Download http://files.chumby.com/source/ironforge/build733/BlueTune-1-3-1-32-chumby-1.6.0.tar.gz and compile it according to the supplied manual.

For me the following patches helped:

--- bt-ref/BlueTune/Build/Targets/arm-chumby-linux/Config.scons 2008-07-14 21:19:53.000000000 +0200
+++ BlueTune-1-3-1-32-chumby-1.6.0/BlueTune/Build/Targets/arm-chumby-linux/Config.scons 2012-11-23 20:45:10.601406637 +0100
@@ -1,7 +1,7 @@
-GCC_ARM_OPTIONS='-mcpu=arm9e -mtune=arm9e'
-LoadTool('gcc-generic', env, gcc_cross_prefix='arm-linux', gcc_extra_options=GCC_ARM_OPTIONS)
+GCC_ARM_OPTIONS='-I/usr/arm-2008q3/include -L/usr/arm-2008q3/lib -mcpu=arm9e -mtune=arm9e'
+LoadTool('gcc-generic', env, gcc_cross_prefix='arm-none-linux-gnueabi', gcc_extra_options=GCC_ARM_OPTIONS)
 env['BLT_RELAXED_ENV'] = env.Copy()
-LoadTool('gcc-generic', env['BLT_RELAXED_ENV'], gcc_cross_prefix = 'arm-linux', gcc_extra_options=GCC_ARM_OPTIONS, gcc_relaxed_warnings=True)
+LoadTool('gcc-generic', env['BLT_RELAXED_ENV'], gcc_cross_prefix = 'arm-none-linux-gnueabi', gcc_extra_options=GCC_ARM_OPTIONS, gcc_relaxed_warnings=True)
 
 env['BLT_CPU_CONFIG_NO_FLOAT'] = True
 env['ATX_SYSTEM_SOURCES']={'System/StdC':'*.c', 'System/Bsd':'*.c', 'System/Posix':'*.c'}
--- bt-ref/Makefile     2008-03-26 21:45:27.000000000 +0100
+++ BlueTune-1-3-1-32-chumby-1.6.0/Makefile     2012-11-23 20:49:07.561462806 +0100
@@ -15,7 +15,7 @@
 
 # BlueTune uses its own funny identifier for arm-linux
 BTTARGET=$(TARGET)
-ifeq ($(TARGET),arm-linux)
+ifeq ($(TARGET),arm-none-linux-gnueabi)
   BTTARGET=arm-chumby-linux
 endif
 BTBUILD=$(BUILD)
@@ -34,7 +34,7 @@
 
 EXEDIR=../output/$(TARGETDIR)/$(BUILD)/bin
 LIBDIR=../output/$(TARGETDIR)/$(BUILD)/lib
-INCDIR=../include/all/all
+INCDIR=../output/${TARGETDIR}/${BUILD}/include
 OUTPUT_EXES=
 OUTPUT_LIBS=
 

To tell cmake where to find the header and library files set the environment variables BLUETUNE_HOME, ATOMIX_HOME and NEPTUNE_HOME.

QJson

Compile and install QJson with

git clone https://github.com/flavio/qjson.git
cd qjson
TOOLCHAIN_PREFIX=/usr/arm-2008q3 cmake -DCMAKE_TOOLCHAIN_FILE=../chumby-controlpanel/modules/Toolchain-arm.cmake -DCMAKE_INSTALL_PREFIX=/usr/arm-2008q3 CMakeLists.txt
sudo make install

where CMAKE_TOOLCHAIN_FILE should be set to the toolchain file of the chumby-controlpanel, TOOLCHAIN_PREFIX and CMAKE_INSTALL_PREFIX is the location of your arm-toolchain.

Further information regarding QJson can be found at http://qjson.sourceforge.net/

Openssl

In order to enable ssl support in Qt you need the openssl libraries for arm. http://wiki.chumby.com/index.php/Web_Browser#build_openssl contains instructions on building openssl. Append -openssl to the configure line of qt to force openssl support.

chumbyqt.txt · Last modified: 2013/01/15 16:01 by paalsteek