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
Install the arm crosscompiler toolchain as described here:
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.
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
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
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
git clone https://github.com/mysmartgrid/chumby-controlpanel.git
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
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 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.
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/
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.