# XBMC auf Raspberry Pi

## dsiggi

Hi,

ich versuche verzweifelt XBMC auf meinen Raspberry Pi zum laufen zu bekommen.

Das Grundsystem läuft schon 1A.

Für die Installation von XBMC habe ich mich an folgende Anleitung gehalten: http://rpi.zappel.org/2013/02/kompilieren-von-xbmc.html

Also folgendes:

Ich Klone das Git-Verzeichnis auf meine Festplatte. Nun führe ich die beiden sed-Befehle, das Script und den dritten sed-Befehl aus.

Jetzt führe ich den ersten make-Befehl aus.

Nun kommt ./configure und dann noch mal zwei sed-Befehle.

Bis jetzt keine Fehler. Also los gehts.

```

DISTCC_HOSTS="localhost" make -j2

```

Nach langer zeit ist make dann ohne Ausgabe eines Fehlers fertig. Es kommen immer nur Warnungen:

```

...

CPP     xbmc/guilib/MatrixGLES.o

In file included from GUIFont.h:30:0,

                 from GUIFontTTFGL.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccaGYwqc.s: Assembler messages:

/tmp/ccaGYwqc.s:154: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIShader.o

/tmp/cczultvA.s: Assembler messages:

/tmp/cczultvA.s:1411: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

/tmp/ccQoRZlg.s: Assembler messages:

/tmp/ccQoRZlg.s:322: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

AR      xbmc/guilib/guilib.a

```

Der make-Befehl stoppt immer bei "AR xbmc/guilib/guilib.a".

make-install funktioniert aber nicht:

```

RPI xbmc # make install

Copying XBMC binary to /usr/lib/xbmc/

install: der Aufruf von stat für „xbmc.bin“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden

make: *** [install-binaries] Fehler 1

```

Ich nahme also an das make nicht komplett durchgelaufen ist. Wie finde ich jetzt aber heraus wo der Fehler ist?

Danke schon mal,

dsiggi

----------

## firefly

Ich sehe keine Fehler. Vermutlich ist der eigentliche Fehler einige zeilen vor der von dir geposteten Ausgabe.

Denn dort sehe ich nur warnungen.

----------

## dsiggi

Ich habe jetzt hier mal alles kopiert, was noch in der Konsole stand. Ich sehe dort keinen Fehler.

```

CPP     xbmc/guilib/GUIRSSControl.o

CPP     xbmc/guilib/GUIScrollBarControl.o

In file included from TextureBundle.h:23:0,

                 from TextureManager.h:31,

                 from GUITexture.h:31,

                 from GUIScrollBarControl.h:31,

                 from GUIScrollBarControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUIRSSControl.h:31,

                 from GUIRSSControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccfEwv9n.s: Assembler messages:

/tmp/ccfEwv9n.s:424: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUISelectButtonControl.o

In file included from TextureBundle.h:23:0,

                 from TextureManager.h:31,

                 from GUITexture.h:31,

                 from GUIButtonControl.h:31,

                 from GUISelectButtonControl.h:31,

                 from GUISelectButtonControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/cciOmrSO.s: Assembler messages:

/tmp/cciOmrSO.s:290: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUISettingsSliderControl.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUISliderControl.h:31,

                 from GUISettingsSliderControl.h:31,

                 from GUISettingsSliderControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccxhYKSa.s: Assembler messages:

/tmp/ccxhYKSa.s:316: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUISliderControl.o

/tmp/ccrACjd6.s: Assembler messages:

/tmp/ccrACjd6.s:304: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUISpinControl.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUISliderControl.h:31,

                 from GUISliderControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUISpinControl.h:31,

                 from GUISpinControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccwrtFIT.s: Assembler messages:

/tmp/ccwrtFIT.s:209: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUISpinControlEx.o

/tmp/ccMU5o6X.s: Assembler messages:

/tmp/ccMU5o6X.s:228: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIStaticItem.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUISpinControl.h:31,

                 from GUISpinControlEx.h:31,

                 from GUISpinControlEx.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from GUIInfoTypes.h:31:0,

                 from GUIStaticItem.h:28,

                 from GUIStaticItem.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccfvdO0Q.s: Assembler messages:

/tmp/ccfvdO0Q.s:306: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUITextBox.o

In file included from GUITextLayout.h:23:0,

                 from GUITextBox.h:31,

                 from GUITextBox.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccYFVmdt.s: Assembler messages:

/tmp/ccYFVmdt.s:181: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUITextLayout.o

In file included from GUITextLayout.h:23:0,

                 from GUITextLayout.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccmjv2Om.s: Assembler messages:

/tmp/ccmjv2Om.s:642: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUITexture.o

In file included from TextureBundle.h:23:0,

                 from TextureManager.h:31,

                 from GUITexture.h:31,

                 from GUITexture.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/cctmgH5f.s: Assembler messages:

/tmp/cctmgH5f.s:1142: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIToggleButtonControl.o

/tmp/ccLZqaQi.s: Assembler messages:

/tmp/ccLZqaQi.s:351: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

In file included from TextureBundle.h:23:0,

                 from TextureManager.h:31,

                 from GUITexture.h:31,

                 from GUIButtonControl.h:31,

                 from GUIToggleButtonControl.h:31,

                 from GUIToggleButtonControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

CPP     xbmc/guilib/GUIVideoControl.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUIVideoControl.h:31,

                 from GUIVideoControl.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccuxXMWw.s: Assembler messages:

/tmp/ccuxXMWw.s:174: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIVisualisationControl.o

/tmp/ccokGalQ.s: Assembler messages:

/tmp/ccokGalQ.s:149: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIWindow.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUIRenderingControl.h:22,

                 from GUIVisualisationControl.h:22,

                 from GUIVisualisationControl.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUIControlGroup.h:28,

                 from GUIWindow.h:31,

                 from GUIWindow.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccWbIu4r.s: Assembler messages:

/tmp/ccWbIu4r.s:179: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIWindowManager.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from GUIControlGroup.h:28,

                 from GUIWindow.h:31,

                 from GUIWindowManager.h:31,

                 from GUIWindowManager.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccBg05gc.s: Assembler messages:

/tmp/ccBg05gc.s:655: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIWrappingListContainer.o

In file included from GraphicContext.h:46:0,

                 from GUIControl.h:30,

                 from IGUIContainer.h:23,

                 from GUIBaseContainer.h:28,

                 from GUIWrappingListContainer.h:28,

                 from GUIWrappingListContainer.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccxREqPB.s: Assembler messages:

/tmp/ccxREqPB.s:223: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/imagefactory.o

/tmp/ccyi6AbY.s: Assembler messages:

/tmp/ccyi6AbY.s:360: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

In file included from iimage.h:22:0,

                 from imagefactory.h:23,

                 from imagefactory.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

CPP     xbmc/guilib/IWindowManagerCallback.o

CPP     xbmc/guilib/JpegIO.o

CPP     xbmc/guilib/Key.o

In file included from /var/tmp/portage/xbmc/xbmc/rendering/RenderSystem.h:29:0,

                 from /var/tmp/portage/xbmc/xbmc/rendering/gles/RenderSystemGLES.h:28,

                 from /var/tmp/portage/xbmc/xbmc/windowing/egl/WinSystemEGL.h:26,

                 from /var/tmp/portage/xbmc/xbmc/windowing/WindowingFactory.h:39,

                 from JpegIO.cpp:24:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from Key.h:31:0,

                 from Key.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

CPP     xbmc/guilib/LocalizeStrings.o

/tmp/ccpzhKQQ.s: Assembler messages:

/tmp/ccpzhKQQ.s:156: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/Shader.o

In file included from LocalizeStrings.h:31:0,

                 from LocalizeStrings.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from /var/tmp/portage/xbmc/xbmc/filesystem/File.h:31:0,

                 from Shader.cpp:26:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/cc8zbBxD.s: Assembler messages:

/tmp/cc8zbBxD.s:885: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/Texture.o

/tmp/ccAJb0a1.s: Assembler messages:

/tmp/ccAJb0a1.s:391: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/TextureBundleXPR.o

In file included from Texture.h:25:0,

                 from Texture.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from TextureBundleXPR.h:23:0,

                 from TextureBundleXPR.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccfTPrxD.s: Assembler messages:

/tmp/ccfTPrxD.s:343: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/TextureBundleXBT.o

In file included from TextureBundleXBT.h:23:0,

                 from TextureBundleXBT.cpp:23:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccCWOsrG.s: Assembler messages:

/tmp/ccCWOsrG.s:314: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/TextureBundle.o

In file included from TextureBundle.h:23:0,

                 from TextureBundle.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

CPP     xbmc/guilib/TextureManager.o

/tmp/ccoR9dfi.s: Assembler messages:

/tmp/ccoR9dfi.s:292: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/VisibleEffect.o

In file included from TextureBundle.h:23:0,

                 from TextureManager.h:31,

                 from TextureManager.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from VisibleEffect.h:34:0,

                 from VisibleEffect.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccq1aRTW.s: Assembler messages:

/tmp/ccq1aRTW.s:466: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/XBTF.o

/tmp/ccJ7jkiu.s: Assembler messages:

/tmp/ccJ7jkiu.s:1180: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/XBTFReader.o

CPP     xbmc/guilib/TextureGL.o

In file included from XBTFReader.h:26:0,

                 from XBTFReader.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from Texture.h:25:0,

                 from TextureGL.h:23,

                 from TextureGL.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/cc5UNnt9.s: Assembler messages:

/tmp/cc5UNnt9.s:149: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUIFontTTFGL.o

/tmp/ccMKz2Dk.s: Assembler messages:

/tmp/ccMKz2Dk.s:130: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/GUITextureGLES.o

In file included from GUIFont.h:30:0,

                 from GUIFontTTFGL.cpp:22:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

In file included from TextureBundle.h:23:0,

                 from TextureManager.h:31,

                 from GUITexture.h:31,

                 from GUITextureGLES.h:31,

                 from GUITextureGLES.cpp:23:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

/tmp/ccdlcPEZ.s: Assembler messages:

/tmp/ccdlcPEZ.s:194: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

/tmp/cc9D03Kg.s: Assembler messages:

/tmp/cc9D03Kg.s:154: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

CPP     xbmc/guilib/MatrixGLES.o

CPP     xbmc/guilib/GUIShader.o

/tmp/ccUfT9ko.s: Assembler messages:

/tmp/ccUfT9ko.s:1411: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

/tmp/ccNnBIsU.s: Assembler messages:

/tmp/ccNnBIsU.s:322: Warning: swp{b} use is deprecated for ARMv6 and ARMv7

AR      xbmc/guilib/guilib.a

```

Ich lasse den make-Befehl jetzt noch mal laufen, und lasse die Ausgabe in eine Datei schreiben.

dsiggi

----------

## dsiggi

So,

diesmal ist er bis

```

AR      xbmc/xbmc.a

```

gekommen. Kein einziger fehler.

Normal habe ich jetzt immer ein "make clean" ausgeführt und dann hab ich es noch mal versucht.

Diesmal habe ich einfach gleich noch mal ein "make" ausgeführt.

Das ist die Ausgabe:

```

make -C tools/TexturePacker/

make[1]: Entering directory `/var/tmp/portage/xbmc/tools/TexturePacker'

g++ -DTARGET_POSIX -DUSE_LZO_PACKING   md5.cpp SDL_anigif.cpp XBTFWriter.cpp XBMCTex.cpp /var/tmp/portage/xbmc/xbmc/guilib/XBTF.cpp -lSDL_image -lSDL -llzo2 -L/var/tmp/portage/xbmc/lib/libsquish -lsquish-native -Wl,-rpath=/lib -o TexturePacker

# xbmc-xrandr.c gets picked up by the default make rules

excluding xbmc-xrandr

make -C lib/cpluff/libcpluff

make[1]: Entering directory `/var/tmp/portage/xbmc/lib/cpluff/libcpluff'

Making all in docsrc

make[2]: Entering directory `/var/tmp/portage/xbmc/lib/cpluff/libcpluff/docsrc'

make[2]: Für das Ziel »all« ist nichts zu tun.

make[2]: Leaving directory `/var/tmp/portage/xbmc/lib/cpluff/libcpluff/docsrc'

make[2]: Entering directory `/var/tmp/portage/xbmc/lib/cpluff/libcpluff'

  CC       psymbol.lo

  CC       pscan.lo

make[1]: Leaving directory `/var/tmp/portage/xbmc/tools/TexturePacker'

  CC       ploader.lo

  CC       pinfo.lo

  CC       pcontrol.lo

  CC       serial.lo

  CC       logging.lo

  CC       context.lo

  CC       cpluff.lo

  CC       util.lo

  CC       list.lo

  CC       hash.lo

  CC       thread_posix.lo

  CCLD     libcpluff.la

make[2]: Leaving directory `/var/tmp/portage/xbmc/lib/cpluff/libcpluff'

make[1]: Leaving directory `/var/tmp/portage/xbmc/lib/cpluff/libcpluff'

```

Hier zeigt er mir jetzt Fehler an. Und zwar etwas mit TexturPacker. Dafür gibt es auf der Seite einen Patch.

Ich werde diesen mal testen. Komisch ist aber, das er die Fehler erst beim zweiten Durchlauf anzeigt.

dsiggi

----------

## Josef.95

Hm, darf man fragen warum nicht einfach ein Ebuild genutzt wird, so wie es unter gentoo üblich ist?

----------

## dsiggi

 *Josef.95 wrote:*   

> Hm, darf man fragen warum nicht einfach ein Ebuild genutzt wird, so wie es unter gentoo üblich ist?

 

Weil ich, wenn ich xbmc über portage installieren würde, zb das ./configure Option "--with-platform=raspberry-pi" nicht setzen kann.

dsiggi

----------

## Josef.95

 *dsiggi wrote:*   

>  *Josef.95 wrote:*   Hm, darf man fragen warum nicht einfach ein Ebuild genutzt wird, so wie es unter gentoo üblich ist? 
> 
> Weil ich, wenn ich xbmc über portage installieren würde, zb das ./configure Option "--with-platform=raspberry-pi" nicht setzen kann.
> 
> dsiggi

 

Solche configure Optionen kannst du eventuell mit EXTRA_ECONF hinzufügen,

also zb 

```
EXTRA_ECONF="--with-platform=raspberry-pi" emerge -av media-tv/xbmc
```

 (ungetestet)

----------

## opn

Ich experimentiere nun auch schon etwas länger damit herum, XBMC für meinen Raspberry Pi compiled zu bekommen und mein Startpunkt war dabei auch die Anleitung von Zappel. Einmal lief der compile auch durch, undzwar nachdem ich eine Menge dependencies per hand installiert hatte (auf Fehler schauen, über portage dependency installieren) und diese Schritte an den Sources durchgeführt hatte (beim compile traten auch wirklich Fehler in Bezug auf diese Dateien auf!):

We furthermore have to make a few modifications to the source code.

Add to xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp:

typedef struct {

   DISPMANX_ELEMENT_HANDLE_T element;

   int width;

   int height;

} EGL_DISPMANX_WINDOW_T;

Change change line 135 (approximately) in xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp:

m_nativeWindow = (EGLNativeWindowType*)calloc(1,sizeof( EGL_DISPMANX_WINDOW_T));

Add full include path in tools/TexturePacker/XBTFWriter.cpp:

#include "/home/pi/xbmc/xbmc/guilib/XBTF.h"

#include "/home/pi/xbmc/xbmc/utils/EndianSwap.h"

Add full include path in tools/TexturePacker/XBMCTex.cpp:

#include "/home/pi/xbmc/xbmc/guilib/XBTF.h"

#include "/home/pi/xbmc/lib/libsquish/squish.h"

Add full include path in xbmc/utils/EndianSwap.h:

#include "/home/pi/xbmc/xbmc/config.h"

Add full include path in tools/TexturePacker/cmdlineargs.h:

#include "/home/pi/xbmc/xbmc/linux/PlatformDefs.h"

Add full include path in tools/TexturePacker/xwinapi.h:

#include "/home/pi/xbmc/xbmc/linux/PlatformDefs.h"

Gefunden hier: http://wiki.mitsted.dk/?page=RPi_Resources

Allerdings startete XBMC nicht und spuckte lediglich eine Fehlermeldung á la "OpenGL required" aus. Leider hab' ich kurz danach durch einen Overclock das File System zerschossen, so dass ich nicht mehr probieren konnte, ob ein 'eselect opengl set raspberrypi-userland' gereicht hätte, denn opengl war definitiv auf 'xorg-x11' gesetzt ; ) In dem Moment habe ich da dooferweise nicht dran gedacht.

Noch schöner als XBMC per hand zu compilen wäre natürlich das offizielle Ebuild verwenden zu können. Ich werde das später mal versuchen mit EXTRA_ECONF="--with-platform=raspberry-pi".

----------

## dsiggi

So, habe es gerade mit dem offiziellen ebuild probiert. Genau das gleiche.

Bei AR      xbmc/guilib/guilib.a  ist Schluss. Kein Fehler, nichts.

Ich habe jetzt mal das Ebuild bearbeitet, das der TexturePacker.patch mit eingespielt wird.

Mal schauen ob es jetzt klappt.

dsiggi

----------

## dsiggi

Also es geht voran.

Ich habe jetzt heraus gefunden, das ihm "libsdl_image" gefehlt hat. Ich habe ./configure zwar mit der Option "--disable-sdl" aufgerufen, aber anscheinend braucht xbmc es trotzdem zum kompilieren und fragt es nicht über configure ab.

Jetzt hab ich aber wieder einen Fehler:

```

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

CPP     xbmc/threads/Timer.o

CPP     xbmc/threads/SystemClock.o

CPP     xbmc/threads/platform/Implementation.o

AR      xbmc/threads/threads.a

CPP     xbmc/commons/Exception.o

In file included from Exception.h:27:0,

                 from Exception.cpp:21:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

CPP     xbmc/commons/ilog.o

In file included from ilog.cpp:22:0:

/var/tmp/portage/xbmc/xbmc/utils/StdString.h:1605:14: Anmerkung: the mangling of »va_list« has changed in GCC 4.4

AR      xbmc/commons/commons.a

LD      xbmc.bin

make -C tools/TexturePacker/

make[1]: Entering directory `/var/tmp/portage/xbmc/tools/TexturePacker'

make -C /var/tmp/portage/xbmc/lib/libsquish libsquish-native.so

make[2]: Entering directory `/var/tmp/portage/xbmc/lib/libsquish'

make[2]: »libsquish-native.so« ist bereits aktualisiert.

make[2]: Leaving directory `/var/tmp/portage/xbmc/lib/libsquish'

g++ -D_LINUX -DUSE_LZO_PACKING  -I. -I/var/tmp/portage/xbmc/lib -I/var/tmp/portage/xbmc/xbmc -I/var/tmp/portage/xbmc/xbmc/linux -I/var/tmp/portage/xbmc/include md5.cpp SDL_anigif.cpp XBTFWriter.cpp XBMCTex.cpp /var/tmp/portage/xbmc/xbmc/guilib/XBTF.cpp -L/lib -lSDL_image -lSDL -llzo2 -l/var/tmp/portage/xbmc/lib/libsquish -lsquish -Wl,-rpath=/lib -o TexturePacker

In file included from XBMCTex.cpp:42:0:

cmdlineargs.h:31:21: schwerwiegender Fehler: windows.h: Datei oder Verzeichnis nicht gefunden

Kompilierung beendet.

make[1]: *** [TexturePacker] Fehler 1

make[1]: Leaving directory `/var/tmp/portage/xbmc/tools/TexturePacker'

make: *** [tools/TexturePacker/TexturePacker] Fehler 2

```

Er findet nun anscheinend die Datei "windows.h" nicht. Nur zu welchem Paket gehört diese?

dsiggi

----------

## dsiggi

Ich bin, denke ich, einen großen Schritt weiter.

Ich habe mir mal das Git-Verzeichnis "xbmc-rbp" geklont. Dieses wird zwar schon ewig nicht mehr aktualisert, das der Raspberry-Support jetzt im ofiziellen Zweig ist, aber ich wollte es mal testen. Und siehe da es geht.

Also noch mal den normalen xbmc-Zweig genommen, und der TexturePacker lässt ich nicht kompilieren, da ihm die Datei windows.h fehlt.

Ich habe nun mal die Dateien des TexturePackers der beiden Zweige verglichen.

Zb habe ich in der Datei cmdlineargs.h folgendes festgestellt:

xbmc-rbp:

```

...

#ifdef _LINUX

#include "PlatformDefs.h"

#include "xwinapi.h"

typedef LPSTR PSZ;

#define _snprintf snprintf

#else

#include <windows.h>

#endif

...

```

Hier wird windows.h nur eingebunden wenn ifdef nicht _LINUX ist.

Jetzt das gleiche mal aus dem normalen xbmc-Zweig:

```

...

#ifdef TARGET_POSIX

#include "PlatformDefs.h"

#include "xwinapi.h"

typedef LPSTR PSZ;

#define _snprintf snprintf

#else

#include <windows.h>

#endif

...

```

Hier wird nach TARGET_POSIX abgefragt. Ich kenn mich da nicht wirklich aus. 

Ist das richtig so, oder könnte das mein Fehler sein?

Das ist eigentlich in allen Dateien vom TexturePacker der unterschied. In den rbp-Quellen heist es _LINUX in den normalen TARGET_POSIX.

dsiggi

----------

## opn

XBMC mittlerweile compiled bekommen?  :Smile:  Irgendetwas neues? Habe selbst momentan leider wenig Zeit zu experimentieren :-/

----------

## dsiggi

 *opn wrote:*   

> XBMC mittlerweile compiled bekommen?  Irgendetwas neues? Habe selbst momentan leider wenig Zeit zu experimentieren :-/

 

Ich habe es mittlerweile geschafft. Ich habe nur noch ein Problem.

Ich kann keine MP3's die ein Cover enthalten abspielen.

Daran arbeite ich aber gerade   :Very Happy:  .

Hier meine Schritte:

```

# cd /opt/vc/include/interface/vcos/

# ln -s pthreads/* .

# cd /opt/vc/include/interface/vmcs_host/

# ln -s linux/vchost_config.h .

# ln -s /opt/vc/include/* /usr/include/

# ln -s /opt/vc/lib/* /usr/lib/

# cd /var/tmp/portage

# wget http://mirrors.xbmc.org/releases/source/xbmc-12.2.tar.gz

# tar xvf xbmc-12.2.tar.gz

# cd xbmc-12.2

# sed -i 's/USE_BUILDROOT=1/USE_BUILDROOT=0/' tools/rbp/setup-sdk.sh

# sed -i 's/TOOLCHAIN=\/usr\/local\/bcm-gcc/TOOLCHAIN=\/usr/' tools/rbp/setup-sdk.sh

# sh tools/rbp/setup-sdk.sh

# sed -i 's/cd $(SOURCE); $(CONFIGURE)/#cd $(SOURCE); $(CONFIGURE)/' tools/rbp/depends/xbmc/Makefile

# make -C tools/rbp/depends/xbmc/

# ./configure --prefix=/usr --build=armv6j-hardfloat-linux-gnueabi --host=armv6j-hardfloat-linux-gnueabi --localstatedir=/var/lib --with-platform=raspberry-pi --disable-gl --enable-gles --disable-x11 --disable-sdl --enable-optimizations --enable-external-libraries --disable-goom --disable-hal --disable-pulse --disable-vaapi --disable-vdpau --disable-xrandr --disable-airplay --disable-alsa --disable-avahi --disable-dvdcss --disable-debug --disable-joystick --disable-mid --disable-nfs --disable-profiling --disable-projectm --disable-rsxs --disable-rtmp --enable-external-ffmpeg --disable-vtbdecoder --disable-optical-drive --enable-webserver --enable-non-free --disable-libcec --disable-mysql --disable-ccache --enable-libmp3lame --enable-player=omxplayer

# sed -i 's/-msse2//' lib/libsquish/Makefile

# sed -i 's/-DSQUISH_USE_SSE=2//' lib/libsquish/Makefile

# patch -p1 < ../texture.patch

# make

```

Und hier der texture.patch

```

--- xbmc/tools/TexturePacker/Makefile.in.o    2012-10-11 15:47:05.000000000 +0200

+++ xbmc/tools/TexturePacker/Makefile.in    2012-10-11 16:49:08.874850920 +0200

@@ -1,56 +1,54 @@

-DEFINES += -D_LINUX -DUSE_LZO_PACKING

+DEFINES       += -D_LINUX -DUSE_LZO_PACKING

ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),)

-DEFINES += -DHOST_BIGENDIAN

+DEFINES       += -DHOST_BIGENDIAN

endif

-CXXFLAGS+= \

+SRCS           = \

+  md5.cpp \

+  SDL_anigif.cpp \

+  XBTFWriter.cpp \

+  XBMCTex.cpp \

+  @abs_top_srcdir@/xbmc/guilib/XBTF.cpp

+

+TARGET         = TexturePacker

+CLEAN_FILES    = $(TARGET)

+

+all: $(TARGET)

+

+HOST_CXX      ?= g++

+HOST_ROOT_PATH = @USE_TEXTUREPACKER_NATIVE_ROOT@

+

+LIBS          += -lSDL_image -lSDL -llzo2

+LIBS          += -L@abs_top_srcdir@/lib/libsquish -lsquish

+HOST_LIBS     += -L$(HOST_ROOT_PATH)/lib -lSDL_image -lSDL -llzo2

+HOST_LIBS     += -L@abs_top_srcdir@/lib/libsquish -lsquish-native

+

+CXXFLAGS      += \

   -I. \

   -I@abs_top_srcdir@/lib \

   -I@abs_top_srcdir@/xbmc \

   -I@abs_top_srcdir@/xbmc/linux

-RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib

+HOST_CXXFLAGS += \

+  -I. \

+  -I@abs_top_srcdir@/lib \

+  -I@abs_top_srcdir@/xbmc \

+  -I@abs_top_srcdir@/xbmc/linux \

+  -I$(HOST_ROOT_PATH)/include

+

+RPATH=-Wl,-rpath=$(HOST_ROOT_PATH)/lib

-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)

-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@

-ifdef NATIVE_ROOT_PATH

ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)

DEFINES += -DTARGET_DARWIN

NATIVE_ARCH=@DARWIN_NATIVE_ARCH@

RPATH=

endif

-NATIVE_CXXFLAGS+= -I. \

-                  -I$(NATIVE_ROOT_PATH)/include \

-                  -I@abs_top_srcdir@/lib \

-                  -I@abs_top_srcdir@/xbmc \

-                  -I@abs_top_srcdir@/xbmc/linux

-NATIVE_LIBS    += -L$(NATIVE_ROOT_PATH)/lib

-endif

-NATIVE_LIBS    += -lSDL_image -lSDL -llzo2

-NATIVE_LIBS    += -L@abs_top_srcdir@/lib/libsquish -lsquish-native

-else

-LIBS    += -L@abs_top_srcdir@/lib/libsquish -lsquish

-endif

-

-LIBS    += -lSDL_image -lSDL -llzo2

-

-SRCS = \

-  md5.cpp \

-  SDL_anigif.cpp \

-  XBTFWriter.cpp \

-  XBMCTex.cpp \

-  @abs_top_srcdir@/xbmc/guilib/XBTF.cpp

-

-

-TARGET = TexturePacker

-CLEAN_FILES=$(TARGET)

-

-all: $(TARGET)

ifeq (@USE_TEXTUREPACKER_NATIVE@,1)

# TexturePacker run native on build system, build it with native tools

$(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h

-    g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET)

+    make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so

+    $(HOST_CXX) $(DEFINES) $(NATIVE_ARCH) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) $(RPATH) -o $(TARGET)

clean:

    rm -f $(TARGET)

else

```

dsiggi

----------

## dsiggi

So,

nun funktioniert alles.

Die Schritte sind wie oben, nur das ich nicht xbmc-12.2.tar.gz verwende, sondern mir die Sources von git hole.

```

git clone git://github.com/xbmc/xbmc.git

```

Dann alle Schritte wie oben beschrieben.

Der texture.patch muss etwas angepasst werden:

```

--- xbmc/tools/TexturePacker/Makefile.in.o    2012-10-11 15:47:05.000000000 +0200

+++ xbmc/tools/TexturePacker/Makefile.in    2012-10-11 16:49:08.874850920 +0200

@@ -1,56 +1,54 @@

DEFINES += -DHOST_BIGENDIAN

endif

-CXXFLAGS+= \

+SRCS           = \

+  md5.cpp \

+  SDL_anigif.cpp \

+  XBTFWriter.cpp \

+  XBMCTex.cpp \

+  @abs_top_srcdir@/xbmc/guilib/XBTF.cpp

+

+TARGET         = TexturePacker

+CLEAN_FILES    = $(TARGET)

+

+all: $(TARGET)

+

+HOST_CXX      ?= g++

+HOST_ROOT_PATH = @USE_TEXTUREPACKER_NATIVE_ROOT@

+

+LIBS          += -lSDL_image -lSDL -llzo2

+LIBS          += -L@abs_top_srcdir@/lib/libsquish -lsquish

+HOST_LIBS     += -L$(HOST_ROOT_PATH)/lib -lSDL_image -lSDL -llzo2

+HOST_LIBS     += -L@abs_top_srcdir@/lib/libsquish -lsquish-native

+

+CXXFLAGS      += \

   -I. \

   -I@abs_top_srcdir@/lib \

   -I@abs_top_srcdir@/xbmc \

   -I@abs_top_srcdir@/xbmc/linux

-RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib

+HOST_CXXFLAGS += \

+  -I. \

+  -I@abs_top_srcdir@/lib \

+  -I@abs_top_srcdir@/xbmc \

+  -I@abs_top_srcdir@/xbmc/linux \

+  -I$(HOST_ROOT_PATH)/include

+

+RPATH=-Wl,-rpath=$(HOST_ROOT_PATH)/lib

-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)

-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@

-ifdef NATIVE_ROOT_PATH

ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)

DEFINES += -DTARGET_DARWIN

NATIVE_ARCH=@DARWIN_NATIVE_ARCH@

RPATH=

endif

-NATIVE_CXXFLAGS+= -I. \

-                  -I$(NATIVE_ROOT_PATH)/include \

-                  -I@abs_top_srcdir@/lib \

-                  -I@abs_top_srcdir@/xbmc \

-                  -I@abs_top_srcdir@/xbmc/linux

-NATIVE_LIBS    += -L$(NATIVE_ROOT_PATH)/lib

-endif

-NATIVE_LIBS    += -lSDL_image -lSDL -llzo2

-NATIVE_LIBS    += -L@abs_top_srcdir@/lib/libsquish -lsquish-native

-else

-LIBS    += -L@abs_top_srcdir@/lib/libsquish -lsquish

-endif

-

-LIBS    += -lSDL_image -lSDL -llzo2

-

-SRCS = \

-  md5.cpp \

-  SDL_anigif.cpp \

-  XBTFWriter.cpp \

-  XBMCTex.cpp \

-  @abs_top_srcdir@/xbmc/guilib/XBTF.cpp

-

-

-TARGET = TexturePacker

-CLEAN_FILES=$(TARGET)

-

-all: $(TARGET)

ifeq (@USE_TEXTUREPACKER_NATIVE@,1)

# TexturePacker run native on build system, build it with native tools

$(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h

-    g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET)

+    make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so

+    $(HOST_CXX) $(DEFINES) $(NATIVE_ARCH) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) $(RPATH) -o $(TARGET)

clean:

    rm -f $(TARGET)

else 

```

Und schon klappt alles wunderbar. Jetzt muss ich nur noch ein Ebuild schreiben und dann passt alles.

dsiggi

----------

## opn

Hey,

also danke für die detaillierte Anleitung : ) Nach einigen kläglichen Versuchen, denke ich komme ich der Sache hiermit schon näher!

Ich habe allerdings ein Problem beim patchen: 

```
raspi xbmc # patch -p1 < ../texture.patch 

patching file tools/TexturePacker/Makefile.in

patch: **** malformed patch at line 4: DEFINES += -DHOST_BIGENDIAN
```

Lasse ich die ersten Zeilen des Originalpatches weg, wie von dir hier (http://forum.xbmc.org/showthread.php?tid=170131&page=2) beschrieben, ist leider ein wenig später Schluss mit patchen:

```
raspi xbmc # patch -p1 < ../texture.patch 

patching file tools/TexturePacker/Makefile.in

patch: **** malformed patch at line 45: ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
```

Hast du / irgendwer da eine Idee? Muss zugeben, dass ich mich mit Patches auch nicht sonderlich gut auskenne  :Smile: 

Danke schonmal

----------

## dsiggi

Hi,

ich bin gerade dabei ein ebuild zu schreiben. Das läuft auch schon fast   :Cool:  ohne Fehler durch.

Ich werde es dann hier hoch laden, dann kannst du xbmc einfach über portage emergen.

dsiggi

----------

## dsiggi

So,

das Ebuild läuft. Einfach entpacken und folgendes in eurer make.conf setzen:

```

PORTDIR_OVERLAY="/pfad/zum/overlay"

```

Nun einfach mit 

```

emerge -av xbmc-rpi

```

emergen.

Folgende USE-Flags sind fest im Ebuild gesetzt (Sollte jemand andere wollen, muss er das Ebuild ändern):

```

USE="-X -opengl -vdpau -vaapi gles -alsa -pulse -airplay -avahi -bluray -cec -css -debug -fishbmc -goom -hal -joystick -mid -mysql -neon -nfs -profiling -projectm -rsxs -rtmp samba -sdl webserver -xrandr -vtbdecoder -optical-drive"

```

Hier gibt es das Overlay: https://dl.dropboxusercontent.com/u/40366427/xbmc-rpi/xbmc-rpi-overlay.tar.gz

Des weiteren könnt ihr euch unter folgendem Link ein Binäres-Paket herunterladen. Dadurch erspart ihr euch das kompilieren. :https://dl.dropboxusercontent.com/u/40366427/xbmc-rpi/xbmc-rpi-13-r6.tbz2

Viel Spaß damit,

dsiggi

----------

## opn

Hey,

ich konnte es leider noch nicht testen, aber durchcompiled hat xbmc mit deinem Ebuild über die Nacht schon einmal! Vielen Dank, ich denke doch (oder hoffe), dass es auch laufen wird! : ) Ich werde auf jeden Fall nochmal berichten hier.

Eine kleine Anmerkung noch zu dem Ebuild: https://bugs.gentoo.org/show_bug.cgi?id=449082 -> net-libs/libmicrohttpd[messages] müsste glaube ich noch in die Abhängigkeiten

Grüße!

----------

## opn

Wie versprochen mein Bericht:

Ebuild läuft, allerdings musste ich ein paar Abhängigkeiten per hand nach installieren, weil Fehler wegen fehlender Abhängigkeiten beim Compilen aufgetreten sind. Außerdem hab ich das Ebuild auf XBMC Version 12.2 gesetzt, was ohne Probleme ging. Sollte ich Zeit finden, möchte ich das Ebuild noch etwas verfeinern und werde das Ergebnis dann hier posten.

Danke für deine Mühe!

Grüße

----------

