Nokia N810

From ThorstensHome
Jump to: navigation, search

This article describes how to compile software for the ARM-based Nokia N810 tablet PC. We use mainly scratchbox on an Intel-based computer. Scratchbox is a cross-compiling environment.

Better see http://techbase.kde.org/Projects/Maemo/kdepim Also look at Xephyr.

Contents

Warning

Do not follow http://talk.maemo.org/showthread.php?t=6737 with the latest firmware or you will have to re-setup your device.

Firmware

I do not know how to find out the firmware of the device, here is a hint:

Nokia-N810-43-7:~# cat /etc/*ersio*
testing/unstable
RX-34+RX-44+RX-48_DIABLO_5.2008.43-7_PR_MR0

Install wget

Make sure you have the latest firmware installed, this example is from 2009-12-28.

Get wget from http://repository.maemo.org/pool/maemo5.0/free/w/wget/wget_1.10.2-2osso3_armel.deb

Install it using

dpkg -i wget_1.10.2-2osso3_armel.deb

Update the firmware

  • follow the instructions
  • re-connect to WLAN (password needed)
  • re-install openSSH
    • settings->application manager
    • tools -> application catalog
    • memo extras -> edit -> un-tag "disabled"
    • close
    • browse installable applications
    • all
    • openssh
    • install

compile

Do not follow http://talk.maemo.org/showthread.php?t=6737, it will install packages that are so old that you will have to flush your N810.

wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb
  • get linux kernel headers
wget http://repository.maemo.org/pool/maemo4.1.2/free/l/linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_armel.deb
  • get libgcc
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb
  • install everything
dpkg -i gcc-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
  • do the usual test
Nokia-N810-43-7:~# cat main.c
#include <stdio.h>

int main()
{ printf("hello world"); }

Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c
Nokia-N810-43-7:~# ./greeter
hello worldNokia-N810-43-7:~#

build Qt4

svn checkout https://garage.maemo.org/svn/qt4/trunk/qt4-x11-4.4.0
cd qt4-x11-4.4.0
dpkg-buildpackage

clean up

  • remove mail client
apt-get remove modest
  • remove chat client
apt-get remove osso-chat-ui osso-chat-ui-l10n osso-chat-ui-l10n-mr0
  • remove clock
apt-get remove osso-clock osso-clock-applet osso-clock-data osso-clock-l10n osso-clock-l10n-mr0 osso-clock-ui osso-clock-widget osso-sounds-alarms
  • maemoblocks

What fails - what works

Scratchbox

  • I cannot install scratchbox on x64 OS
    • it breaks and says it is not designed for this
  • I cannot install scratchbox on SLES 10
  • I cannot install scratchbox on SUSE 11.2
    • installation does not end with the wish "happy hacking" because of too many dpkg errors
  • I can install scratchbox on SUSE 11.1x32

try copying /scratcbox/devkits/qemu/bin/qemu-arm-sb from a fremantle installation to /scratchbox/devkits/cputransp/bin and configure your target configuration to use this => this fixed my compile of cmake !!!

[sbox-DIABLO_ARMEL: ~/cmake-2.6.2] > sb-conf show
Compiler: cs2005q3.2-glibc2.5-arm
Devkits: perl debian-etch maemo3-tools cputransp
CPU-transparency: /scratchbox/devkits/cputransp/bin/qemu-arm-cvs-m

cmake

the error msg is

make[2]: *** No rule to make target `Source/CMakeFiles/CMakeLib.dir/link.txt', needed by `Source/libCMakeLib.a'.  Stop.

Workaround: I took link.txt from another computer and copied it => cmake is installed on the N810

Solution: try copying /scratcbox/devkits/qemu/bin/qemu-arm-sb from a fremantle installation to /scratchbox/devkits/cputransp/bin and configure your target configuration to use this

kdesupport

  • cannot install kdesupport from 2009-12-30 into scratchbox, get
 Unknown CMake command "update_xdg_mimetypes".
 
 
 CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
 Please set them or make sure they are set and tested correctly in the CMake files:
 Boost_PROGRAM_OPTIONS_LIBRARY (ADVANCED)

update_xdg_mimetypes is a cmake macro provided by kdesupport/akonadi/cmake/modules/FindSharedMimeInfo.cmake. I took the macro and copied into CMakeLists.txt, then, when I reverted, I could not reproduce the error. Also check

update-mime-database -v
env | grep XDG
/usr/share/mime/packages/kde.xml
export XDG_DATA_DIRS=/usr/local/share
AkonadiConfig.cmake
  • cannot install kdesupport, get a message that libboost is missing

See also