Mini2440 SDL GUI Programmierung: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Wer ein kleines Linuxboard mit Display hat, möchte sicher nicht nur die Kernelausgaben auf der Framebuffer-Konsole ansehen oder sich für die popligsten Anwendun…“) |
(Seite erstellt) |
||
Zeile 3: | Zeile 3: | ||
Viel einfacher geht es in einigen Fällen mit [http://www.libsdl.org SDL]. Dieser Artikel beschreibt die Einrichtung einer Cross-Toolchain mit SDL-Support für das [[Mini2440]]. | Viel einfacher geht es in einigen Fällen mit [http://www.libsdl.org SDL]. Dieser Artikel beschreibt die Einrichtung einer Cross-Toolchain mit SDL-Support für das [[Mini2440]]. | ||
Die unterschiede von Board zu Board sind meist sehr gering, was die Display-Ausgabe angeht. Daher lässt sich dieser Artikel auch für einige andere Boards verwenden. | Die unterschiede von Board zu Board sind meist sehr gering, was die Display-Ausgabe angeht. Daher lässt sich dieser Artikel auch für einige andere Boards verwenden. | ||
Hier ein Screenshot von einem meiner SDL-Programme:<br> | |||
[[Bild:mini2440_sdl_menu_screenshot.png|100px]] | |||
Die Vorraussetzungen hierfür sind: | Die Vorraussetzungen hierfür sind: | ||
Zeile 14: | Zeile 17: | ||
== libsdl == | == libsdl == | ||
<pre> | <pre> | ||
cd ~ | |||
wget http://www.libsdl.org/release/SDL-1.2.14.tar.gz | wget http://www.libsdl.org/release/SDL-1.2.14.tar.gz | ||
tar xvfz SDL-1.2.14.tar.gz | tar xvfz SDL-1.2.14.tar.gz | ||
cd SDL-1.2.14 | cd SDL-1.2.14 | ||
./configure -- | RANLIB=/usr/local/arm/4.3.2/bin/arm-linux-ranlib CROSS_COMPILE=arm-linux- ./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/ \ | ||
--enable-input-tslib --enable-video-fbcon --disable-audio --disable-video-x11 --disable-video-directfb | |||
time make | time make | ||
sudo time make install | sudo time make install | ||
</pre> | </pre> | ||
Diese Schritte dauerten bei mir ca 5 Minuten | Diese Schritte dauerten bei mir ca 5 Minuten. | ||
Nun lassen sich schon die ersten Programme mittels SDL compilieren. Allerdings fehlen noch zusätzliche libs, wie z.B. [http://www.ferzkopp.net/joomla/content/view/19/14/ sdl_gfx] und [http://www.libsdl.org/projects/SDL_image/ sdl_image] um Grafiken, Texte und Bilder anzeigen zu können. SDL alleine steht da ein wenig auf dem Schlauch. | Nun lassen sich schon die ersten Programme mittels SDL compilieren. Allerdings fehlen noch zusätzliche libs, wie z.B. [http://www.ferzkopp.net/joomla/content/view/19/14/ sdl_gfx] und [http://www.libsdl.org/projects/SDL_image/ sdl_image] um Grafiken, Texte und Bilder anzeigen zu können. SDL alleine steht da ein wenig auf dem Schlauch. | ||
Einen Haken hat die Sache noch. Dadurch, dass SDL in seinem Audio-Code auch Assembler verwendet habe ich es noch nicht hinbekommen, SDL mit ALSA oder OSS Support zu compilieren. | |||
Wer dazu einen Tip hat, immer her damit :) | |||
== libsdl_image == | == libsdl_image == | ||
Mit dieser lib lassen sich recht einfach Bilder laden und anzeigen. | |||
<pre> | |||
cd ~ | |||
wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.10.tar.gz | |||
tar xvfz SDL_image-1.2.10.tar.gz | |||
cd SDL_image-1.2.10 | |||
RANLIB=/usr/local/arm/4.3.2/bin/arm-linux-ranlib CROSS_COMPILE=arm-linux- ./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/ \ | |||
--enable-gif --enable-jpg --enable-bmp | |||
***HACK*** (siehe Text unter diesem Kasten) | |||
sudo ln -s /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libts.la /usr/local/lib/libts.la | |||
sudo ln -s /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libts.so /usr/local/lib/libts.so | |||
***/HACK*** | |||
time make | |||
sudo time make install | |||
</pre> | |||
Anmerkungen zum "Hack". Beim compilieren spuckt mir SDL_image einen Fehler aus. Es sagt mir, dass er in /usr/local/lib/ die tslib nicht finden kann. Dort hat er aber nichts zu suchen, da dies kein Pfad zum Cross-Compiling ist. Wie ich das abstelle, habe ich noch nicht herausgefunden, also habe ich einfach einen symbolischen Link angelegt. | |||
== libsdl_gfx == | == libsdl_gfx == | ||
Diese lib stellt einen Haufen Grafikfuntkionen bereit, wie Polygone, Rechtecke, Kreise, Linien, ... | |||
Ausserdem beinhalten sie eine Textausgabe und Funktionen und Surface zu rotieren und zu zoomen. | |||
== libsdl_ttf == | == libsdl_ttf == | ||
Diese lib kann mit TrueType Fonts umegehen und sie anzeigen. | |||
= Verwenden von SDL = | = Verwenden von SDL = | ||
Zeile 36: | Zeile 62: | ||
== Bild-Funktionen == | == Bild-Funktionen == | ||
== Threads == | == Threads == | ||
Version vom 23. Juli 2010, 05:55 Uhr
Wer ein kleines Linuxboard mit Display hat, möchte sicher nicht nur die Kernelausgaben auf der Framebuffer-Konsole ansehen oder sich für die popligsten Anwendungen einen X-Server+Window Manager installieren, sich eine Anwendung schreiben und dann erst loslegen können.
Viel einfacher geht es in einigen Fällen mit SDL. Dieser Artikel beschreibt die Einrichtung einer Cross-Toolchain mit SDL-Support für das Mini2440. Die unterschiede von Board zu Board sind meist sehr gering, was die Display-Ausgabe angeht. Daher lässt sich dieser Artikel auch für einige andere Boards verwenden.
Hier ein Screenshot von einem meiner SDL-Programme:
Die Vorraussetzungen hierfür sind:
- Die FriendlyARM Toolchain
- Funktionierender Framebuffer mit Framebuffer Konsole
- Ein wenig Zeit
Einrichten der Cross-Toolchain
Ich gehe davon aus, dass man alle kommenden Schritte als "normaler" User erledigt. Sämtliche Schritte, die als "root" erledigt werden müssen, wird ein "sudo" vorangestellt. Wenn das bei dir anders gehen sollte (z.B. su -c '...'), dann ändere es für dich!
libsdl
cd ~ wget http://www.libsdl.org/release/SDL-1.2.14.tar.gz tar xvfz SDL-1.2.14.tar.gz cd SDL-1.2.14 RANLIB=/usr/local/arm/4.3.2/bin/arm-linux-ranlib CROSS_COMPILE=arm-linux- ./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/ \ --enable-input-tslib --enable-video-fbcon --disable-audio --disable-video-x11 --disable-video-directfb time make sudo time make install
Diese Schritte dauerten bei mir ca 5 Minuten.
Nun lassen sich schon die ersten Programme mittels SDL compilieren. Allerdings fehlen noch zusätzliche libs, wie z.B. sdl_gfx und sdl_image um Grafiken, Texte und Bilder anzeigen zu können. SDL alleine steht da ein wenig auf dem Schlauch.
Einen Haken hat die Sache noch. Dadurch, dass SDL in seinem Audio-Code auch Assembler verwendet habe ich es noch nicht hinbekommen, SDL mit ALSA oder OSS Support zu compilieren. Wer dazu einen Tip hat, immer her damit :)
libsdl_image
Mit dieser lib lassen sich recht einfach Bilder laden und anzeigen.
cd ~ wget http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.10.tar.gz tar xvfz SDL_image-1.2.10.tar.gz cd SDL_image-1.2.10 RANLIB=/usr/local/arm/4.3.2/bin/arm-linux-ranlib CROSS_COMPILE=arm-linux- ./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/ \ --enable-gif --enable-jpg --enable-bmp ***HACK*** (siehe Text unter diesem Kasten) sudo ln -s /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libts.la /usr/local/lib/libts.la sudo ln -s /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libts.so /usr/local/lib/libts.so ***/HACK*** time make sudo time make install
Anmerkungen zum "Hack". Beim compilieren spuckt mir SDL_image einen Fehler aus. Es sagt mir, dass er in /usr/local/lib/ die tslib nicht finden kann. Dort hat er aber nichts zu suchen, da dies kein Pfad zum Cross-Compiling ist. Wie ich das abstelle, habe ich noch nicht herausgefunden, also habe ich einfach einen symbolischen Link angelegt.
libsdl_gfx
Diese lib stellt einen Haufen Grafikfuntkionen bereit, wie Polygone, Rechtecke, Kreise, Linien, ... Ausserdem beinhalten sie eine Textausgabe und Funktionen und Surface zu rotieren und zu zoomen.
libsdl_ttf
Diese lib kann mit TrueType Fonts umegehen und sie anzeigen.