User:Tstaerk

(Compiling on the N810)
(Removed broken wanted page)
 
(44 intermediate revisions not shown)
Line 1: Line 1:
= Incubator =
= Incubator =
Here I prepare articles for this wiki to come.
Here I prepare articles for this wiki to come.
 +
 +
== how to add an application to the menu ==
 +
cd /usr/share/applications/hildon/
 +
Here you copy a desktop file.
 +
/etc/xdg/menus/hildon.menu:
 +
<Filename>blah</Filename>
 +
einfügen
 +
 +
== maemo 5 ==
 +
Installing maemo 5 (freemantle, see [[codenames]]) for N900 (maemo 5 does not run on the N810) in a SUSE Linux 11.2 x32 virtual machine resulted in
 +
Processing was halted because there were too many errors.
 +
So trying SUSE 11.1 (where maemo 4 worked):
 +
root@i386 # useradd -m scratchboxuser
 +
root@i386 # passwd scratchboxuser
 +
root@i386 # wget http://repository.maemo.org/stable/fremantle/maemo-scratchbox-install_5.0.sh
 +
root@i386 # chmod 777 maemo-scratchbox-install_5.0.sh
 +
root@i386 # ./maemo-scratchbox-install_5.0.sh -s /scratchbox
 +
root@i386 # /scratchbox/sbin/sbox_adduser scratchboxuser
 +
root@i386 # su - scratchboxuser
 +
scratchboxuser@i386 $ wget http://repository.maemo.org/stable/fremantle/maemo-sdk-install_5.0.sh
 +
scratchboxuser@i386 $ sh maemo-sdk-install_5.0.sh
 +
results in
 +
Happy hacking!
 +
 +
scratchboxuser@i386 $ /scratchbox/login
 +
scratchboxuser@i386 $ sb-conf select FREEMANTEL_ARMEL
 +
 +
=== cmake ===
 +
[sbox-FREMANTLE_ARMEL: ~] > cd
 +
[sbox-FREMANTLE_ARMEL: ~] > wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
 +
[sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] > tar xvzf cmake-2.6.2.tar.gz
 +
[sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] > cd cmake-2.6.2
 +
[sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] > ./bootstrap && make -j4 && make install
 +
 +
=== subversion ===
 +
[sbox-FREMANTLE_ARMEL: ~] > apt-get install subversion
 +
 +
=== Qt ===
 +
Download Qt everywhere 4.6 and build it using
 +
./configure --prefix=/usr && make -j2 && make install
 +
 +
=== libical ===
 +
libical is needed for kdepimlibs
 +
cd
 +
wget http://downloads.sourceforge.net/project/freeassociation/libical/libical-0.44/libical-0.44.tar.gz?use_mirror=switch
 +
tar xvzf libical-0.44.tar.gz
 +
cd libical-0.44
 +
./configure && make -j2 && make install
 +
 +
=== gpgme ===
 +
gpgme is needed for kdepimlibs
 +
curl ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.1.8.tar.bz2 > gpgme-1.1.8.tar.bz2
 +
bunzip2  gpgme-1.1.8.tar.bz2
 +
tar xvf gpgme-1.1.8.tar
 +
cd gpgme-1.1.8
 +
./configure && make -j2 && make install
 +
 +
=== boost ===
 +
libboost is needed for kdepimlibs
 +
apt-get install libboost-graph-dev
 +
 +
=== giflib ===
 +
wget http://downloads.sourceforge.net/project/giflib/giflib%204.x/giflib-4.1.6/giflib-4.1.6.tar.bz2?use_mirror=switch
 +
 +
== Xephyr ==
 +
SUSE 11.2: xorg-x11-server-extra
 +
 +
'''main.cpp'''
 +
#include <QApplication>
 +
#include <QPushButton>
 +
int main(int argc, char ** argv)
 +
{
 +
  QApplication qa(argc,argv);
 +
  QPushButton* qp=new QPushButton("hello world");
 +
  qp->show();
 +
  return qa.exec();
 +
}
 +
 +
Build and run it:
 +
 +
export DISPLAY=:4
 +
qmake -project && qmake && make && ./qttest
== Compiling on the N810 ==
== Compiling 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 ([http://en.wikipedia.org/wiki/Maemo#Version_history more info] [http://wiki.maemo.org/Codenames and more]).
+
* [[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 ([http://wiki.maemo.org/Codenames more info]).
 +
* 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 libc6-dev_2.5.0-1osso10_armel.deb linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_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:~#
 +
 
 +
== C++ ==
 +
* Try to compile a C++ program
 +
Nokia-N810-43-7:/media/mmc1# cat main.cpp
 +
#include <iostream>
 +
int main()
 +
{
 +
  std::cout << "hello C++" << std::endl;
 +
}
 +
Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp
 +
<unknown> tried to exec cc1plus but failed (No such file or directory)
 +
 
 +
* download g++
 +
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
 +
 
 +
* download lib standard C++
 +
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb
 +
 
 +
* install g++
 +
dpkg -i libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
 +
 
 +
* try to compile main.cpp again
 +
gcc-3.4 main.cpp
 +
/var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...
 +
 
 +
* ok, but do it right
 +
gcc-3.4 -lstdc++ main.cpp
 +
./a.out
 +
hello C++
 +
 
 +
== Compiling software with automake ==
 +
Does not work.
 +
 
 +
== Compiling Qt software ==
 +
<pre>
 +
Nokia-N810-43-7:~# cat /etc/apt/sources.list
 +
deb http://repository.maemo.org/extras/ diablo free
 +
deb-src http://repository.maemo.org/extras/ diablo free
 +
Nokia-N810-43-7:~# apt-get install libqtcore4
 +
</pre>
 +
apt-get install libqt4-dev
 +
<pre>
 +
# cat qttest2.cpp
 +
#include <QApplication>
 +
#include <QPushButton>
 +
int main(int argc, char ** argv)
 +
{
 +
  QApplication qa(argc,argv);
 +
  QPushButton* qp=new QPushButton("hello world");
 +
  qp->show();
 +
  return qa.exec();
 +
}
 +
 
 +
# g\+\+-3.4 -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. qttest2.cpp  -lQtCore -lQtGui
 +
# ./a.out
 +
</pre>
 +
 
 +
= Contributions =
 +
Here are the contributions I am proud of
 +
* [[Compiling_on_the_N810]]
 +
* [[KDE]]
 +
* [[KDE on scratchbox]]
 +
* [[Install openssh on the N810]]

Latest revision as of 16:35, 21 January 2013

Contents

[edit] Incubator

Here I prepare articles for this wiki to come.

[edit] how to add an application to the menu

cd /usr/share/applications/hildon/ 

Here you copy a desktop file. /etc/xdg/menus/hildon.menu:

<Filename>blah</Filename>

einfügen

[edit] maemo 5

Installing maemo 5 (freemantle, see codenames) for N900 (maemo 5 does not run on the N810) in a SUSE Linux 11.2 x32 virtual machine resulted in

Processing was halted because there were too many errors.

So trying SUSE 11.1 (where maemo 4 worked):

root@i386 # useradd -m scratchboxuser
root@i386 # passwd scratchboxuser
root@i386 # wget http://repository.maemo.org/stable/fremantle/maemo-scratchbox-install_5.0.sh
root@i386 # chmod 777 maemo-scratchbox-install_5.0.sh
root@i386 # ./maemo-scratchbox-install_5.0.sh -s /scratchbox
root@i386 # /scratchbox/sbin/sbox_adduser scratchboxuser
root@i386 # su - scratchboxuser
scratchboxuser@i386 $ wget http://repository.maemo.org/stable/fremantle/maemo-sdk-install_5.0.sh
scratchboxuser@i386 $ sh maemo-sdk-install_5.0.sh

results in

Happy hacking!
scratchboxuser@i386 $ /scratchbox/login
scratchboxuser@i386 $ sb-conf select FREEMANTEL_ARMEL

[edit] cmake

[sbox-FREMANTLE_ARMEL: ~] > cd
[sbox-FREMANTLE_ARMEL: ~] > wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
[sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] > tar xvzf cmake-2.6.2.tar.gz
[sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] > cd cmake-2.6.2
[sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] > ./bootstrap && make -j4 && make install

[edit] subversion

[sbox-FREMANTLE_ARMEL: ~] > apt-get install subversion

[edit] Qt

Download Qt everywhere 4.6 and build it using

./configure --prefix=/usr && make -j2 && make install

[edit] libical

libical is needed for kdepimlibs

cd
wget http://downloads.sourceforge.net/project/freeassociation/libical/libical-0.44/libical-0.44.tar.gz?use_mirror=switch
tar xvzf libical-0.44.tar.gz
cd libical-0.44
./configure && make -j2 && make install

[edit] gpgme

gpgme is needed for kdepimlibs

curl ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.1.8.tar.bz2 > gpgme-1.1.8.tar.bz2
bunzip2  gpgme-1.1.8.tar.bz2
tar xvf gpgme-1.1.8.tar
cd gpgme-1.1.8
./configure && make -j2 && make install

[edit] boost

libboost is needed for kdepimlibs

apt-get install libboost-graph-dev

[edit] giflib

wget http://downloads.sourceforge.net/project/giflib/giflib%204.x/giflib-4.1.6/giflib-4.1.6.tar.bz2?use_mirror=switch

[edit] Xephyr

SUSE 11.2: xorg-x11-server-extra

main.cpp

#include <QApplication>
#include <QPushButton>
int main(int argc, char ** argv)
{
  QApplication qa(argc,argv);
  QPushButton* qp=new QPushButton("hello world");
  qp->show();
  return qa.exec();
}

Build and run it:

export DISPLAY=:4
qmake -project && qmake && make && ./qttest

[edit] Compiling on the 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 libc6-dev_2.5.0-1osso10_armel.deb linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_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:~#

[edit] C++

  • Try to compile a C++ program
Nokia-N810-43-7:/media/mmc1# cat main.cpp
#include <iostream>
int main()
{
  std::cout << "hello C++" << std::endl;
}
Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp
<unknown> tried to exec cc1plus but failed (No such file or directory)
  • download g++
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
  • download lib standard C++
wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb
  • install g++
dpkg -i libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb
  • try to compile main.cpp again
gcc-3.4 main.cpp
/var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...
  • ok, but do it right
gcc-3.4 -lstdc++ main.cpp
./a.out
hello C++

[edit] Compiling software with automake

Does not work.

[edit] Compiling Qt software

Nokia-N810-43-7:~# cat /etc/apt/sources.list
deb http://repository.maemo.org/extras/ diablo free
deb-src http://repository.maemo.org/extras/ diablo free
Nokia-N810-43-7:~# apt-get install libqtcore4 
apt-get install libqt4-dev
# cat qttest2.cpp 
#include <QApplication>
#include <QPushButton>
int main(int argc, char ** argv)
{
  QApplication qa(argc,argv);
  QPushButton* qp=new QPushButton("hello world");
  qp->show();
  return qa.exec();
}

# g\+\+-3.4 -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. qttest2.cpp  -lQtCore -lQtGui
# ./a.out

[edit] Contributions

Here are the contributions I am proud of