Nokia N810
From ThorstensHome
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.
- #install openssh on the N810
- Find out what maemo version you have. Choose Settings -> Control Panel -> About. If you get "Product maemo Linux based OS2008 Version:5.2008.43-7" this means maemo 4.1. So you have maemo, os2008 and diablo (more info and more).
- download wget from http://repository.maemo.org/pool/maemo4.1.2/free/w/wget/. Copy it to your computer and scp it to your N810.
- get glibc
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

