Sluit deze pagina af en ga terug naar de vorige pagina
10 November 2015 | geen reacties

Draai Kodi 15.2 onder raspbian jessie

Tja, doe je een upgrade naar raspbian jessie en dan kom je erachter dat er geen kodi (xbmc) meer in de repo zit. Het handigst is om te wachten tot dit wel zo is, en gewoon op wheezy/kodi 14 te blijven. Maar voor de hardcore gebruikers hier een upgrade naar kodi 15.2.

Aangezien er flink gesleuteld wordt hieraan bestaat de mogelijkheid dat eea niet 1:1 werkt en je zelf hier links en rechts wat extra (kleine) correcties moet doorvoeren (of dat wat dingen hieronder vermeld niet meer nodig zijn). Maar dat mag een hardcore gebruiker niet tegen houden. De essentie is hetzelfde en veranderd niet. Kom je er niet uit...je weet me te vinden ;)

Paar overdenkingen

Note: Je hebt een aantal extra libs nodig die ook nog niet in de repo zitten, althans in nov-15. Ze staan wel in debian jessie backports, echter heeft raspbian geen officiele backports repo. Je zou de debian jessie backports kunnen toevoegen om de source packages te downloaden en vervolgens deze te compileren onder raspbian (en dan de backports repo weer te verwijderen uit je apt sources). Hier is echter gekozen om de sources gewoon uit git te halen en indien mogelijk wel de debian package (deb) te bouwen. Indien je dit niet wil: vervang 'dpkg-buildpackage' door :

			./configure  (eventueel ergens anders, /opt,  installeren met --prefix /opt )
			make
			sudo make install
				
		

Note: Debian (raspbian) heeft ffmpeg support gedropt, je krijgt nu libav wat een ffmpeg fork is. Kodi gebruikt eigen meegeleverde libraries voor ffmpeg.

Note: heb dit gedaan op een rpi1, en dat gaat niet snel. Alternatief is het cross compilen op een andere machine. Maar dan moet je alle dependecies ook downloaden en compileren!

En compileer NIET op je flashkaart want dan kon hij nog wel eens sneuvelen (wear&tear), mount gewoon even een netwerk schijf. En we gebruiken hier screen om ervoor te zorgen dat je je remote shell kunt verlaten (zonder de sessie te beindigen) om later weer te zien of hij klaar is.

En zorg voor een goede voeding en zoveel mogelijk memory, we doen namelijk gelijk een stress test op de pi ;) Je kan rare problemen krijgen als de spanning inzakt of uit je geheugen loopt.

Als er een stap niet lukt en je moet wat corrigeren, download de source opnieuw, maak de aanpassing en configureer/compileer opnieuw. Er zijn compileer opdrachten om op te schonen echter geven die niet altijd voorspelbaar resultaat. Met als gevolg dat je wijziging niet worden meegenomen en je onnodig veel tijd verbrand met zoeken en achter je hoofd krabben.

Documentatie:


De installatie


Installeer de basis benodigheden en start een screen sessie:

sudo rpi-update
sudo apt-get udate
sudo apt-get install git build-essential equivs screens
screens -S kodi15
en hier wat essentials over screen, je hebt ze nodig want kodi compileren op een pi duurt een paar uur:
screen -S kodi15	-> creeer een sessie genaamd kodie15 (of zonder argument en dan ctrl-a, sessionname kodi15)
ctrl-a d   		-> detach, uit sessie maar sessie draait gewoon door 
screen -ls 		-> alle screen sessies
screen -r kodi15	-> re-atach, verbind opnieuw met de kodi15 sessie
exit			-> sluit sessie 

Download de laatste libcec/libplatform van git en compileer:

git clone --recursive git://github.com/Pulse-Eight/libcec.git
sudo apt-get install liblockdev1-dev libxrandr-dev libraspberrypi-dev

##build libplatform
cd libcec/src/platform
#debian/changelog verander -1 in .1 voor de versie, anders krijg je een foutmelding 
sed -i "1s/\-/\./" debian/changelog
dpkg-buildpackage -us -uc

sudo dpkg -i ../libplatform1_1.0.10.1~trusty_armhf.deb
sudo dpkg -i ../libplatform-dev_1.0.10.1~trusty_armhf.deb


##build libcec
#fix changelog
export DISTRIB_CODENAME=jessie
sed "s/#DIST#/${DISTRIB_CODENAME}/g" debian/changelog.in > debian/changelog

#debian/changelog verander -1 in .1 voor de versie, anders krijg je een foutmelding 
sed -i "1s/\-/\./" debian/changelog

#fix the debian/rules file: append -DRPI_INCLUDE_DIR=/opt/vc/include -DRPI_LIB_DIR=/opt/vc/lib aan de cmake regel
sed -i "s/cmake /cmake -DRPI_INCLUDE_DIR=\/opt\/vc\/include -DRPI_LIB_DIR=\/opt\/vc\/lib/ " debian/rules

dpkg-buildpackage -us -uc
Controleer tijdens dpkg-buildpackage, onderstaande info. Met name de regel voor raspberry pi support, als die op 'no' staat wordt de /opt/vc/include niet herkend. Deze komt uit 'libraspberrypi-dev' en dan is bovenstaande fix op debian/rules niet goed gegaan: corrigeer dit zelf dan even.
-- Configured features:
-- Pulse-Eight CEC Adapter:                yes
-- Pulse-Eight CEC Adapter detection:      yes
-- lockdev support:                        yes
-- xrandr support:                         yes
-- raspberry pi support:                   yes

Installeer de zojuist gemaakte debian packages

Ze staan in de map waar je de 'git clone' deed
cd ..
sudo dpkg -i cec-utils_3.0.1.1~jessie_armhf.deb libcec_3.0.1.1~jessie_armhf.deb libcec3_3.0.1.1~jessie_armhf.deb libcec-dev_3.0.1.1~jessie_armhf.deb python-libcec_3.0.1.1~jessie_armhf.deb

Download nu faac en compileer en installeer deze:

 
curl -#LO http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz
tar xzvf faac-1.28.tar.gz
cd faac-1.28
pas nu regel 126 in common/mp4v2/mpeg4ip.h aan naar het volgende:
 
char *strcasestr(const char *haystack, const char *needle);

moet worden:

#ifndef _STRING_H
char *strcasestr(const char *haystack, const char *needle);
#endif
en ga verder met:
 
./configure
make
sudo make install
sudo ldconfig


Compileer dcadec-dev probeer hem eerst te installeren, als hij ontbreekt in jessie zul je hem zelf moeten bouwen

sudo apt-get install dcadec-dev

anders:

git clone https://github.com/foo86/dcadec.git
cd dcadec
make
sudo make install
cd..

mkdir crossguid
cd crossguid
wget https://github.com/xbmc/xbmc/raw/master/tools/depends/target/crossguid/Makefile
sudo make PREFIX=/usr/local



dcadec-dev

Maak een file genaamd 'control' file voor de afhankelijkheden en plak hierin deze info:

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: kodi-15-build-deps
Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl, default-jre, gawk, gperf, libao-dev, libasound2-dev, libass-dev (>= 0.9.8), libavahi-client-dev, libavahi-common-dev, libbluetooth-dev, libbluray-dev (>= 0.7.0), libboost-dev, libboost-thread-dev, libbz2-dev, libcap-dev, libcdio-dev, libcec-dev, libcurl4-openssl-dev | libcurl4-gnutls-dev | libcurl-dev, libcwiid-dev, libdbus-1-dev, libfontconfig-dev, libfreetype6-dev, libfribidi-dev, libgif-dev (>= 4.1.6), libgl1-mesa-dev | libgl-dev, libglew-dev, libglu1-mesa-dev | libglu-dev, libiso9660-dev, libjasper-dev, libjpeg-dev, libltdl-dev, liblzo2-dev, libmicrohttpd-dev, libmodplug-dev, libmpcdec-dev, libmpeg2-4-dev, libmysqlclient-dev, libnfs-dev, libogg-dev, libpcre3-dev, libplist-dev, libpng12-dev | libpng-dev, libpulse-dev, librtmp-dev,libsdl2-dev, libsmbclient-dev, libsqlite3-dev, libssh-dev, libssl-dev, libswscale-dev, libtag1-dev (>= 1.8), libtiff-dev, libtinyxml-dev (>= 2.6.2), libtool, libudev-dev, libusb-dev, libva-dev, libvdpau-dev, libvorbis-dev, libxinerama-dev, libxml2-dev, libxmu-dev, libxrandr-dev, libxslt1-dev, libxt-dev, libyajl-dev (>=2.0), lsb-release, nasm, python-dev, python-imaging, python-support, swig, unzip, uuid-dev, yasm, zip, zlib1g-dev, liblockdev1-dev liblockdev1, 
Description: List of packages that are used to build Kodi.
 List of packages that are used to build Kodi.

Installeer de afhankelijkheden dmv de gemaakte control file:

equivs-build control 
sudo gdebi kodi-15-build-deps_1.0_all.deb

Compileer kodi en installeer in /opt

we gebruiken tee om de output naar scherm op te slaan in een log file

git clone -b Isengard git://github.com/xbmc/xbmc.git

cd xbmc
./bootstrap
./configure --prefix=/opt | tee config-screen.log
make > make.log 2>&1 
make install

of 

cd tools/Linux/packaging
sudo apt-get install debhelper devscripts
sudo apt-get build-dep xbmc
sudo ./mk-debian-package.sh


make install

Start kodi

/opt/bin/kodi

Rose - Copyright © 2011, designed by teNijenhuis.net
7|360