[Ita] Come installare XBMC su Raspberry Pi con Raspbian Wheezy

Xbmb on top of raspbian: how to

Questo articolo illustrerà la procedura per installare correttamente XBMC su un Raspberry Pi che utilizza Raspbian Wheezy, ovvero Debian.

Come prima cosa occorre predisporre il nostro sistema alla compilazione ed installazione senza tempi biblici, motivo per cui riavviamo il nostro sistema con il massimo della memoria disponibile per lo scopo, alla fine della procedura ricalibreremo la quantityà di memoria video in questo stesso modo.

Quindi per ripartire con il massimo della ram disponibile digitiamo :

sudo cp /boot/arm224_start.elf /boot/start.elf

Quindi aggiorniamo kernel e firmware, quindi riavviamo con:

sudo rpi-update
sudo reboot

[EDIT]
Mi è stato segnalato, e mi è capitato, che i file per modificare la quantità di memoria da condividere con la scheda video, non ci fossero nella directory di /boot, motivo per cui segnalo a tutti il binario raspi-config presente in Raspbian Wheezy:

sudo raspi-config

Una volta riavviato, installiamo strumenti e dipendenze con

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential autoconf ccache gawk gperf mesa-utils zip unzip
sudo apt-get install autotools-dev comerr-dev dpkg-dev libalsaplayer-dev \
libapt-pkg-dev:armhf libasound2-dev:armhf libass-dev:armhf libatk1.0-dev \
libavahi-client-dev libavahi-common-dev libavcodec-dev libavformat-dev \
libavutil-dev libbison-dev:armhf libbluray-dev:armhf libboost1.49-dev \
libbz2-dev:armhf libc-dev-bin libc6-dev:armhf libcaca-dev libcairo2-dev \
libcdio-dev libclalsadrv-dev libcrypto++-dev libcups2-dev libcurl3-gnutls-dev \
libdbus-1-dev libdbus-glib-1-dev libdirectfb-dev libdrm-dev libegl1-mesa-dev \
libelf-dev libenca-dev libept-dev libevent-dev libexpat1-dev libflac-dev:armhf \
libfontconfig1-dev libfreetype6-dev libfribidi-dev libgconf2-dev \
libgcrypt11-dev libgdk-pixbuf2.0-dev libgl1-mesa-dev libgles2-mesa-dev \
libglew-dev:armhf libglewmx-dev:armhf libglib2.0-dev libglu1-mesa-dev \
libgnome-keyring-dev libgnutls-dev libgpg-error-dev libgtk2.0-dev libhal-dev \
libhunspell-dev:armhf libice-dev:armhf libicu-dev libidn11-dev libiso9660-dev \
libjasper-dev libjbig-dev:armhf libjconv-dev libjpeg8-dev:armhf libkrb5-dev \
libldap2-dev:armhf libltdl-dev:armhf liblzo2-dev libmad0-dev libmicrohttpd-dev \
libmodplug-dev libmp3lame-dev:armhf libmpeg2-4-dev libmysqlclient-dev \
libncurses5-dev libnspr4-dev libnss3-dev libogg-dev:armhf libopenal-dev:armhf \
libp11-kit-dev libpam0g-dev:armhf libpango1.0-dev libpcre++-dev libpcre3-dev \
libpixman-1-dev libpng12-dev libprotobuf-dev libpthread-stubs0-dev:armhf \
libpulse-dev:armhf librtmp-dev libsamplerate0-dev:armhf \
libsdl-image1.2-dev:armhf libsdl1.2-dev libslang2-dev:armhf \
libsm-dev:armhf libsmbclient-dev:armhf libspeex-dev:armhf \
libsqlite3-dev libssh-dev libssh2-1-dev libssl-dev libstdc++6-4.6-dev \
libtagcoll2-dev libtasn1-3-dev libtiff4-dev libtinfo-dev:armhf libtinyxml-dev \
libts-dev:armhf libudev-dev libv8-dev libva-dev:armhf libvdpau-dev:armhf \
libvorbis-dev:armhf libvpx-dev:armhf libwebp-dev:armhf libwibble-dev \
libx11-dev:armhf libx11-xcb-dev libxapian-dev libxau-dev:armhf \
libxcb-glx0-dev:armhf libxcb-render0-dev:armhf libxcb-shm0-dev:armhf \
libxcb1-dev:armhf libxcomposite-dev libxcursor-dev:armhf libxdamage-dev \
libxdmcp-dev:armhf libxext-dev:armhf libxfixes-dev libxft-dev libxi-dev \
libxinerama-dev:armhf libxml2-dev:armhf libxmu-dev:armhf libxrandr-dev \
libxrender-dev:armhf libxslt1-dev libxss-dev:armhf libxt-dev:armhf \
libxtst-dev:armhf libxxf86vm-dev libyajl-dev libzip-dev linux-libc-dev:armhf \
lzma-dev mesa-common-dev python-dev python2.7-dev x11proto-composite-dev \
x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev \
x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev \
x11proto-record-dev x11proto-render-dev x11proto-scrnsaver-dev \
x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xtrans-dev \
zlib1g-dev:armhf
sudo apt-get clean

Copiare /opt/vc/include in /usr/include con:

sudo cp -R /opt/vc/include/* /usr/include
sudo cp /opt/vc/include/interface/vcos/pthreads/* /usr/include/interface/vcos

Creare un link simbolico per libEGL e libGLESv2 da /opt/vc/lib a /usr/lib e /usr/lib/arm-linux-gnueabihf con i seguenti comandi:

sudo ln -fs /opt/vc/lib/libEGL.so /usr/lib/libEGL.so
sudo ln -fs /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so
sudo ln -fs /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1
sudo ln -fs /opt/vc/lib/libEGL_static.a /usr/lib/libEGL_static.a
sudo ln -fs /opt/vc/lib/libEGL_static.a /usr/lib/arm-linux-gnueabihf/libEGL_static.a
sudo ln -fs /opt/vc/lib/libGLESv2.so /usr/lib/libGLESv2.so
sudo ln -fs /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so
sudo ln -fs /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
sudo ln -fs /opt/vc/lib/libGLESv2_static.a /usr/lib/libGLESv2_static.a
sudo ln -fs /opt/vc/lib/libGLESv2_static.a /usr/lib/arm-linux-gnueabihf/libGLESv2_static.a
sudo ln -fs /opt/vc/lib/libbcm_host.so /usr/lib/libbcm_host.so
sudo ln -fs /opt/vc/lib/libbcm_host.so /usr/lib/arm-linux-gnueabihf/libbcm_host.so
sudo ln -fs /opt/vc/lib/libvchiq_arm.a /usr/lib/libvchiq_arm.a
sudo ln -fs /opt/vc/lib/libvchiq_arm.a /usr/lib/arm-linux-gnueabihf/libvchiq_arm.a
sudo ln -fs /opt/vc/lib/libvchiq_arm.so /usr/lib/libvchiq_arm.so
sudo ln -fs /opt/vc/lib/libvchiq_arm.so /usr/lib/arm-linux-gnueabihf/libvchiq_arm.so
sudo ln -fs /opt/vc/lib/libvcos.a /usr/lib/libvcos.a
sudo ln -fs /opt/vc/lib/libvcos.a /usr/lib/arm-linux-gnueabihf/libvcos.a
sudo ln -fs /opt/vc/lib/libvcos.so /usr/lib/libvcos.so
sudo ln -fs /opt/vc/lib/libvcos.so /usr/lib/arm-linux-gnueabihf/libvcos.so

Scarichiamo l’ ultima versione di XBMC da git con:

git clone --depth 1 git://github.com/xbmc/xbmc-rbp.git

Prepariamo XBMC per la compilazione:

cd xbmc-rbp/
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
sudo sh tools/rbp/setup-sdk.sh
sed -i 's/cd $(SOURCE); $(CONFIGURE)/#cd $(SOURCE); $(CONFIGURE)/' tools/rbp/depends/xbmc/Makefile

Compiliamo i tools per la compilazione XBMC

make -C tools/rbp/depends/xbmc/

Configuriamo la compilazione di XBMC con le opzioni adatte al raspberry pi:

./configure --prefix=/usr --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf \
--localstatedir=/var/lib --with-platform=raspberry-pi --disable-gl --enable-gles \
--disable-x11 --disable-sdl --enable-ccache --enable-optimizations \
--enable-external-libraries --disable-goom --disable-hal --disable-pulse \
--disable-vaapi --disable-vdpau --disable-xrandr --disable-airplay \
--disable-alsa --enable-avahi --disable-libbluray --disable-dvdcss \
--disable-debug --disable-joystick --enable-mid --disable-nfs --disable-profiling \
--disable-projectm --enable-rsxs --enable-rtmp --disable-vaapi \
--disable-vdadecoder --disable-external-ffmpeg --disable-optical-drive

Ancora alcuni adattamenti per i make files:

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

Finalmente compiliamo XBMC:

make

Quindi installiamo da root:

sudo make install

Una volta installato XBMC, passiamo alla configurazione del nostro sistema:

Commentiamo la riga dell’ area di swap nel file /etc/fstab anteponendo all’ intera riga un hash ‘#’, in modo da ottenere questo:

 #/dev/mmcblk0p2 none swap sw 0 0

Rimuoviamo eventuali servizi non necessari ad XBMC (sempre che non siano in uso per altri motivi):

sudo apt-get purge exim4 exim4-base exim4-config exim4-daemon-light

Riconfiguriamo il nostro Raspberry per riavviarsi con uno schema di divisione della memoria adatto ad XBMC:

sudo cp /boot/arm128_start.elf /boot/start.elf

Modificare config.txt con i parametri preferiti: unico consiglio è di disabilitare l’ overscan (

disable_overscan=1

) per evitare che di tanto in tanto, durante il playback di media (video hd ecc) vengano visualizzati dei frame neri (Mi è successo!).

Riavviamo il Raspberry

sudo reboot

Una volta terminato il riavvio, avviamo anche XBMC con:

clear ; sudo /usr/lib/xbmc/xbmc.bin

.
Personalmente ho fatto uno shell script che mi aiuta a fare diverse altre cosette prima di avviare xbmc, ad ogni modo volendo farlo è sufficiente creare un file chiamato startxbmc nella propria home con il comando:

nano startxmbc.sh

All’ interno di questo file posizioniamo la stringa utile (cioè quella di prima senza il sudo)
come segue:

#!/bin/sh
sudo /usr/lib/xbmc/xbmc.bin

Per salvare ctrl+o, per chiudere ctrl+x.

Fatto questo si modificano i permessi del file in questione con

chmod 755 startxbmc.sh

Fatto questo, per avviare xbmc, sarà sufficiente richiamare lo script come segue:

./startxbmc.sh

Perchè mai dovrei fare uno script per avviare xbmc?
Le risposte sono tante: ad esempio è possibile eseguire dei comandi prima di lanciare xbmc, come ad esempio verificare il mount di una condivisione samba, oppure si potrebbe voler negare tutto il traffico in ingresso su una particolare interfaccia di rete… e chi più ne ha più ne metta.

Questo dovrebbe essere tutto…
Il vantaggio di fare una cosa simile? Il mio motivo è di non avere 2 sd card per riavviare ora con Raspbmc, ora con Raspbian, visto che ho una SDcard veloce e capiente, il che si traduce in un notevole risparmio di tempo e di risorse (anche perchè le sd card sono soggette ad essere perdute, lavate nei jeans, ecc ecc).

Eventuali commenti sono bene accetti. 

Incoming search terms:

  • raspbian xbmc (104)
  • installare xbmc su raspbian (43)
  • xbmc raspbian (26)
  • raspbian wheezy (23)
  • installare xbmc su raspberry (20)
  • portakalsepeti com (19)
  • raspbian wheezy static ip (18)
  • raspbian wheezy xbmc (18)
  • come installare xbmc su raspberry pi (14)
  • installare xbmc su raspberry pi (13)
(Visited 18,165 times, 1 visits today)

21 Replies to “[Ita] Come installare XBMC su Raspberry Pi con Raspbian Wheezy”

  1. Salve io avrei un problema quando do il comando make cominciano delle scritte e dopo un po’ mi dice attenzione hardware non supportato ma continua i caricamenti anche dopo 2 ore ho seguito alla lettera i passaggi ma niente

  2. Ciao,
    dopo aver dato make -C tools/rbp/depends/xbmc/ esegue una parte di configurazione e poi mi da l’errore:

    autoreconf: running: /usr/bin/autoconf –force
    configure.in:3: error: possibly undefined macro: AM_DISABLE_STATIC
    If this token and others are legitimate, please use m4_pattern_allow.
    See the Autoconf documentation.
    configure.in:4: error: possibly undefined macro: AM_INIT_AUTOMAKE
    configure.in:8: error: possibly undefined macro: AM_PROG_LIBTOOL
    configure.in:11: error: possibly undefined macro: AM_PROG_LEX
    configure.in:23: error: possibly undefined macro: AM_CONDITIONAL
    autoreconf: /usr/bin/autoconf failed with exit status: 1

    Grazie!!

  3. altra domanda:
    quando finisce la compilazione dei tool, l’ultima riga riporta:
    Please (re)run configure…
    #cd ../../../../; ./configure –prefix=/opt/xbmc-bcm/xbmc-bin –build=i686-linux –host=arm-bcm2708-linux-gnueabi –enable-gles –disable-sdl –disable-x11 –disable-xrandr –disable-openmax –disable-optical-drive –disable-dvdcss –disable-joystick –disable-debug –disable-crystalhd –disable-vtbdecoder –disable-vaapi –disable-vdpau –disable-pulse –disable-projectm –with-platform=raspberry-pi –disable-optimizations –enable-rpi-cec-api
    #cd ../../../../; make -j 1
    #cd ../../../../; make install

    mhm.. cosa dovrei fare? ignoro oppure eseguo nuovamente la configurazione come indicato?

    1. Non credo di capire bene, ma a naso sembra che tu abbia incollato male del testo … non saprei altrimenti spiegarmi le righe con commenti…
      Potresi postare l’ output a partire dall’ ultimo comando?
      Ciao

  4. ciao, compilando xbmc, quando arriva a processare xbmc.bin, ho questo errore:
    LD xbmc.bin
    xbmc/guilib/guilib.a: member xbmc/guilib/guilib.a(GUIPanelContainer.o) in archive is not an object
    collect2: ld returned 1 exit status
    make: *** [xbmc.bin] Error 1

    qualche suggerimento?

      1. si ho fatto tutto passo passo.
        alla fine ho capito qual è il problema: avevo scaricato i file xbmc nella cartella della home, mentre invece deve essere creata una nuova cartella direttamente sotto la root.
        rilanciando il tutto (e aspettando una nottata) sono riuscito a compilare senza problemi.

        grazie mille per la guida!

  5. Ciao! stavo seguendo la tua fantastica guida (complimenti!) ma purtroppo ho un errore in compilazione al primo make:

    CPP xbmc/cores/dvdplayer/DVDPlayerVideo.o
    In file included from /home/pi/xbmc-rbp/xbmc/rendering/gles/RenderSystemGLES.h:28:0,
    from /home/pi/xbmc-rbp/xbmc/windowing/egl/WinSystemGLES.h:27,
    from /home/pi/xbmc-rbp/xbmc/windowing/WindowingFactory.h:40,
    from DVDPlayerVideo.cpp:24:
    /home/pi/xbmc-rbp/xbmc/system_gl.h:52:27: fatal error: GLES2/gl2.h: File o directory non esistente
    compilation terminated.
    make[1]: *** [DVDPlayerVideo.o] Error 1
    make: *** [xbmc/cores/dvdplayer/DVDPlayer.a] Error 2

    Potresti aiutarmi a risolverlo? grazie mille del supporto!

  6. Ciao, io già al primo comando mi da errore
    cp: impossibile eseguire stat di “/boot/arm224_start.elf”: File o directory non esistente

    secondo te cosa può essere?
    Grazie mille per la cortesia

      1. Ciao ho fatto update da raspi-config come suggerito.ok.
        Ho riavviato e al comando successivo:
        sudo apt-get update

        è uscito questo:

        pi@raspberrypi ~ $ sudo apt-get upgrade
        Lettura elenco dei pacchetti… Fatto
        Generazione albero delle dipendenze
        Lettura informazioni sullo stato… Fatto
        I seguenti pacchetti saranno aggiornati:
        binutils cups-bsd cups-client cups-common isc-dhcp-client isc-dhcp-common
        libcups2 libcupsimage2 libdbus-glib-1-2 libgcrypt11
        libjavascriptcoregtk-1.0-0 libjavascriptcoregtk-3.0-0 libnewt0.52
        libwebkitgtk-1.0-0 libwebkitgtk-1.0-common libwebkitgtk-3.0-0
        libwebkitgtk-3.0-common libxml2 pistore python-numpy python3-numpy whiptail
        22 aggiornati, 0 installati, 0 da rimuovere e 0 non aggiornati.
        È necessario scaricare 25,1 MB di archivi.
        Dopo quest’operazione, verranno occupati 30,7 kB di spazio su disco.
        Continuare [S/n]? S
        Interrotto.
        pi@raspberrypi ~ $ libicu-dev libidn11-dev libiso9660-dev \
        > libjasper-dev libjbig-dev:armhf libjconv-dev libjpeg8-dev:armhf libkrb5-dev \
        > libldap2-dev:armhf libltdl-dev:armhf liblzo2-dev libmad0-dev libmicrohttpd-dev \
        > libmodplug-dev libmp3lame-dev:armhf libmpeg2-4-dev libmysqlclient-dev \
        > libncurses5-dev libnspr4-dev libnss3-dev libogg-dev:armhf libopenal-dev:armhf \
        > libp11-kit-dev libpam0g-dev:armhf libpango1.0-dev libpcre++-dev libpcre3-dev \
        > libpixman-1-dev libpng12-dev libprotobuf-dev libpthread-stubs0-dev:armhf \
        > libpulse-dev:armhf librtmp-dev libsamplerate0-dev:armhf \
        > libsdl-image1.2-dev:armhf libsdl1.2-dev libslang2-dev:armhf \
        > libsm-dev:armhf libsmbclient-dev:armhf libspeex-dev:armhf \
        > libsqlite3-dev libssh-dev libssh2-1-dev libssl-dev libstdc++6-4.6-dev \
        > libtagcoll2-dev libtasn1-3-dev libtiff4-dev libtinfo-dev:armhf libtinyxml-dev \
        > libts-dev:armhf libudev-dev libv8-dev libva-dev:armhf libvdpau-dev:armhf \
        > libvorbis-dev:armhf libvpx-dev:armhf libwebp-dev:armhf libwibble-dev \
        > libx11-dev:armhf libx11-xcb-dev libxapian-dev libxau-dev:armhf \
        > libxcb-glx0-dev:armhf libxcb-render0-dev:armhf libxcb-shm0-dev:armhf \
        > libxcb1-dev:armhf libxcomposite-dev libxcursor-dev:armhf libxdamage-dev \
        > libxdmcp-dev:armhf libxext-dev:armhf libxfixes-dev libxft-dev libxi-dev \
        > libxinerama-dev:armhf libxml2-dev:armhf libxmu-dev:armhf libxrandr-dev \
        > libxrender-dev:armhf libxslt1-dev libxss-dev:armhf libxt-dev:armhf \
        > libxtst-dev:armhf libxxf86vm-dev libyajl-dev libzip-dev linux-libc-dev:armhf \
        > lzma-dev mesa-common-dev python-dev python2.7-dev x11proto-composite-dev \
        > x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev \
        > x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev \
        > x11proto-record-dev x11proto-render-dev x11proto-scrnsaver-dev \
        > x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xtrans-dev \
        > zlib1g-dev:armhfS
        bash: libicu-dev: command not found

        mi dice appunto. bash: libicu-dev: command not found
        e si blocca.

        Qualche consiglio?
        Grazie mile.
        L.

        1. Ciao! ho trovato il problema di cui sopra, colpa mia ho saltato un passaggio.
          ora però ne è saltato fuori un altro: dopo la compilazione do il comando:
          sudo make install
          mi esce fuori:
          pi@raspberrypi ~/xbmc-rbp $ sudo make install
          Copying XBMC binary to /usr/lib/xbmc/xbmc.bin
          install: impossibile eseguire stat di “xbmc.bin”: File o directory non esistente
          make: *** [install-binaries] Error 1

          dove ho sbagliato???
          aiuto!!!!

  7. Ciao, spulciando nel log ho letto che ha dato tutta una serie di errori nei codec:

    libavcodec/h264.c:3282:34: warning: initialization from incompatible pointer type [enabled by default]
    libavcodec/h264.c:3297:38: warning: initialization from incompatible pointer type [enabled by default]
    libavcodec/h264.c:3330:30: warning: initialization from incompatible pointer type [enabled by default]
    …………
    See for instructions.
    make[2]: *** [libavcodec/h264.o] Error 4
    make[2]: Leaving directory `/home/pi/xbmc-rbp/lib/ffmpeg’
    make[1]: *** [ffmpeg] Error 2
    make[1]: Leaving directory `/home/pi/xbmc-rbp/lib’
    make: *** [dvdpcodecs] Error 2

    In altre parti ho letto che bisognerebbe creare uno swap file da 200M…. ma non so come si fa 🙁

  8. Grazie per il suggerimento di lanciare XBMC con il comando:
    clear ; sudo /usr/lib/xbmc/xbmc.bin

    Io ho seguito le istruzioni da
    http://www.raspbian.org/RaspbianXBMC

    Il sorgente l’ho scarico nella cartella
    /home/pi/xbmc-rdp
    Sono riuscito a compilare ma alla fine con un semplice xbmc-standalone come utente pi non funziona

    pi@raspberrypi ~ $ xbmc-standalone
    /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display

    Ora il problema è che quando cerco di riprodurre un video vedo il terminale e sotto la barra di controllo di XBMC.
    Credo che per qualche motivo non trova omxplayer che pure è installato.

    Lo stesso video è correttamente riprodotto con il solo omxplayer (omxplayer -o hdmi “nomefile”)
    Tra l’altro non trovo neanche il log file di xbmc nella cartella:

    /home/pi/.xbmc/temp

    ?? Sono confuso

  9. Ciao ho un errore quando effettuo il comando ./configure –prefix=/usr –build=arm-linux-gnueabihf –host=arm-linux-gnueabihf \
    –localstatedir=/var/lib –with-platform=raspberry-pi –disable-gl –enable-gles \
    –disable-x11 –disable-sdl –enable-ccache –enable-optimizations \
    –enable-external-libraries –disable-goom –disable-hal –disable-pulse \
    –disable-vaapi –disable-vdpau –disable-xrandr –disable-airplay \
    –disable-alsa –enable-avahi –disable-libbluray –disable-dvdcss \
    –disable-debug –disable-joystick –enable-mid –disable-nfs –disable-profiling \
    –disable-projectm –enable-rsxs –enable-rtmp –disable-vaapi \
    –disable-vdadecoder –disable-external-ffmpeg –disable-optical-drive

    dicendomi che ho un errore nella parte –localstatedir=/var/lib e leggere un readme come risolvo?

Leave a Reply

Your email address will not be published. Required fields are marked *