Die Abhängigkeiten

Ja die Idee ist schon sehr aufwändig, aber dann wirklich alles von Grund auf Neu zu machen ist dann echter Wahnsinn. Darum gibt es wie in anderen Projekten auch Abhängigkeiten.

Ganz oben auf der Liste steht die (lib)SDL, das ist eigentlich eine Spieleengine, geschrieben in C, und ist auf fasst allen Plattformen verfügbar. Sie war beim Testen die, mit der besten Dokumentation und den meisten Beispielen. Auch war sie am einfachsten zu installieren. Im weiteren ist sie Relativ klein und Modular aufgebaut. Ihr fehlen auch bestimmte Dinge, die sicher ein Spiele-Programmierer vermissen würde, aber hier in diesem Projekt fand ich sie genau richtig. Sie abstrahiert mir die Grafikkarte und Soundkarte weg. Was ich ehrlicher Weise unterschätzt habe, ist der Aufwand zum Erstellen von eigenen UI Elementen wie bsp. Labels, Listen etc.. Da ich aber keinen X-Server auf dem Raspberry haben möchte (Ressourcenverbrauch) ist es aber der einzige Weg. Ich habe mir wirklich viele GUI Implementierungen für die SDL angesehen, aber nichts gefunden was passt. Entweder sieht das Ergebnis zum Fürchten aus oder es ist OpenGL, was wiederum die SDL sehr einschränken würde. Denn dann muss der Support für OpenGL in der passenden Version verfügbar sein. Sprich, man ist wieder bei der Hardware. Nein, stimmt nicht ganz, wenn man ganz tief gräbt gibt es wohl in der Qt auch die Möglichkeit ohne X-Server unter bestimmten Bedingungen auszukommen aber mir ist das Teil einfach zu riesig. Auch muss man die dann selbst bauen, und das nach jedem Patch. Gefühlt passt das einfach nicht zu meinem Ansatz die Ressourcen optimal auszunutzen. Getestet habe ich bis dato noch nicht, denn nur um mal was zu Probieren 6 Stunden zu Compilieren ohne zu Wissen was raus kommt war mir einfach zu lang.

Debian Packages für alles, also auch um libosmscout zu bauen und die SDL2

ldd dyn lib anzeigen

Will man den ganz neuen Graphiktreiber nutzen, nicht den Nativ PI, gibt es hier und hier Informationen. Zur Zeit noch nicht getestet.

Debian Paket installieren:

sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev libswscale-dev libfluidsynth-dev libmpg123-dev libglobjects-dev libsystemd-dev libglfw3-dev libprotobuf-dev protobuf-compiler libsamplerate0-dev libflac-dev libmodplug-dev libvorbis-dev libjpeg-dev libwebp-dev libtiff-dev libtag1-dev libudisks2-dev libssl-dev libsqlite3-dev

SDL2 bauen auf dem Raspberry

Ohne X Server. Die von Debian gelieferte Version braucht den X Server

wget -N http://www.libsdl.org/release/SDL2-2.0.10.tar.gz
tar -xzf SDL2-2.0.10.tar.gz -> auspacken
cd SDL2-2.0.10
./autogen.sh
./configure --disable-esd --disable-video-mir --disable-video-wayland --disable-video-opengl --host=arm-raspberry-linux-gnueabihf
make
sudo make install

Da es ohne X Server läuft muss man bei den Video Driver rpi sehen sonst geht es nicht und es wurde Header nicht gefunden

SDL2Image bauen

wget -N https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.5.tar.gz
tar zxvf SDL2_image-2.0.5.tar.gz
cd SDL2_image-2.0.5
./autogen.sh
./configure
make
sudo make install
cd ..

SDL2Mixer bauen

wget -N https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.tar.gz
tar zxvf SDL2_mixer-2.0.4.tar.gz
cd SDL2_mixer-2.0.4
./autogen.sh
./configure
make
sudo make install
cd ..

SDL2Net bauen

wget -N https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.0.1.tar.gz
tar zxvf SDL2_net-2.0.1.tar.gz
cd SDL2_net-2.0.1
./autogen.sh
./configure
make
sudo make install
cd ..

SDL2TTF bauen

wget -N http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.15.tar.gz
tar zxvf SDL2_ttf-2.0.15.tar.gz
cd SDL2_ttf-2.0.15
./autogen.sh
./configure
make
sudo make install
cd ..

LibOsmScout bauen

Homepage

git clone https://github.com/Framstag/libosmscout.git
cd libosmscout
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake --build .
sudo cmake --build . --target install
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
sudo cmake --build . --target install

Links:

sdl2-2-0-8-on-raspberry-pi

Raspberry Pi - Building SDL 2 on Raspbian

building_arm_toolchain_with_crosstool-ng

arm-rpi-linux-gnueabihf

cross-compile-bitcoin-for-arm