In dem ersten Beitrag zum Raspberry Pi 4 habe ich gezeigt wie man ein komplettes 64 bit System erstellt. Dann im folgenden Beitrag, den Mesa 3d opengl Treiber und hier nun die Anleitung um Kodi lea 18.5 auf dem Raspberry Pi 4 mit 64 bit System zu installieren.

Als erstes benötigen wir erstmal eine ganze Menge Pakete, die wir wie üblich per apt installieren.

apt install git cmake clang ccache curl pkg-config python-dev \
     autoconf libtool autopoint default-jre swig doxygen graphviz \
     mesa-common-dev libao-dev liblzo2-dev zlib1g-dev libpng-dev libgif-dev \
     libjpeg-dev libasound-dev libavahi-client-dev \
     libavahi-compat-libdnssd-dev libbluetooth-dev libbluray-dev \
     libcap-dev libcec-dev libdbus-1-dev liblcms2-dev liblirc-dev \
     libmicrohttpd-dev libnfs-dev libpulse-dev libsmbclient-dev \
     libsndio-dev libudev-dev libxslt-dev libva-dev libvdpau-dev \
     libplist-dev libass-dev libcdio-dev libiso9660-dev \
     libcurl4-openssl-dev libavcodec-dev libavformat-dev libavdevice-dev \
     libavfilter-dev libavresample-dev libavutil-dev \
     libfmt-dev libfstrcmp-dev libssl-dev rapidjson-dev libsqlite3-dev \
     libtag1-dev libtinyxml-dev libglu1-mesa-dev libegl1-mesa-dev \
     libxrandr-dev libmariadbclient-dev default-libmysqlclient-dev libltdl-dev

Nun per git die Kodi Source holen. Zur Zeit als dieser Artikel verfasst wurde, war Lea 18.5 aktuell. Im git clone Befehl kann man den branch, also Versionszweig mittels der Option -b angeben.

mkdir -p /temp/kodi
cd /temp/kodi
git clone -b 18.5-Leia https://github.com/xbmc/xbmc.git
git clone https://github.com/juhovh/shairplay.git

Nun erstellen wir uns noch ein File mit dem wir schnell die Umgebungsvariablen einstellen.

cat > "/temp/kodi/kodi-build-vars.sh" <<EOF
export CC=clang
export CXX=clang++
export KODI_PFX='/opt/kodi'
export C_INCLUDE_PATH="\${C_INCLUDE_PATH}:\${KODI_PFX}/include"
export CPLUS_INCLUDE_PATH="\${CPLUS_INCLUDE_PATH}:\${KODI_PFX}/include"
export LIBRARY_PATH="\${LIBRARY_PATH}:\${KODI_PFX}/lib"
export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:\${KODI_PFX}/lib"
export PKG_CONFIG_PATH="\${PKG_CONFIG_PATH}:\${KODI_PFX}/lib/pkgconfig"
export PATH="\${PATH}:\${KODI_PFX}/bin"
export MAKEFLAGS="-j4"
EOF

source /temp/kodi/kodi-build-vars.sh

So jetzt geht es ans kompilieren, was auf dem Raspberry Pi4 eine ganze Weile dauert. Wenn ich mich recht entsinne hat es mindestens 45 Minuten gedauert. Also nicht ungeduldig werden und den Raspi gut kühlen !

make -C "/temp/kodi/xbmc/tools/depends/target/flatbuffers" PREFIX="${KODI_PFX}"

ldconfig "${KODI_PFX}/lib"
mkdir "/temp/kodi/xbmc-build"
cd "/temp/kodi/xbmc-build"
cmake ../xbmc -DCMAKE_INSTALL_PREFIX="${KODI_PFX}"
cmake --build . -- -j4
make install

Wenn alles so weit geklappt hat, sollte sich Kodi über /opt/kodi/bin/kodi auf dem Desktop starten lassen.

Ich habe jedoch festgestellt das die Performance so unter z.B. xfce4 nicht so gut ist, da Kodi nicht den Hardwaretreiber optimal nutzt.

Daher ist es sinnvoll Kodi in einem eigenen X-Server zu starten. Wenn man den Raspberry Pi sowieso nur als Media Center nutzt und überhaupt keinen Desktop benötigt. Startet man Kodi am besten direkt über ein SystemD Dienst. Wie der aussieht steht weiter am Schluß dieses Artikels.

Möchte man Kodi jedoch aus dem Desktop heraus in einem weitern X-Server starten muß man ein wenig tricksen.

Die nachfolgenden Befehle erszeugen ein Kodi Start Script, welches wir über einen Desktop Eintrag starten. Dieses Script schaltet erst auf eine virtuelle Console (Terminal) um, um dann denn X-Server mit Kodi zu starten.

chmod u+s /usr/bin/chvt
sed s/console/anybody/ -i /etc/X11/Xwrapper.config

wget -O /usr/share/pixmaps/kodi-symbol.png \
https://kodi.wiki/images/8/8e/Thumbnail-symbol-transparent.png

echo "[Desktop Entry]
Version=1.0
Type=Application
Categories=AudioVideo;Player;Recorder;
Name=Kodi
GenericName=Media Center
Comment=Media Center
Exec=/usr/local/bin/kodi_X
Icon=/usr/share/pixmaps/kodi-symbol.png
Terminal=true
StartupNotify=false" > /usr/share/applications/kodi.desktop

Hier nun noch das Script

echo "#!/bin/bash
/usr/bin/chvt 1
sleep 1
/usr/bin/xinit /usr/bin/dbus-launch --exit-with-session \
/opt/kodi/bin/kodi-standalone -- :1 -nolisten tcp
/usr/bin/chvt 7" > /usr/local/bin/kodi_X

chmod 755 /usr/local/bin/kodi_X

Jetzt sollte unter dem Menupunkt "Multimedia" im Desktop Menu der Eintrag "Kodi" stehen. Klickt man diesen an, schaltet das Script auf eine virtuelle Console und startet einen X-Server(in der Regel dann VT8) mit Kodi.

Ich habe bei mir xfce4.6 installiert, unter anderen Desktops kann es sein, das man das Menu selbst anpassen muß.

 

Hier noch ein SystemD Script um Kodi ohne Desktop direkt zu starten.

# Service für Autostart (ohne Login und Windowmanager)
echo "[Unit]
Description = Kodi Media Center
After = systemd-user-sessions.service network.target sound.target

[Service]
User = kodi
Group = kodi
Type = simple
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /opt/kodi/bin/kodi-standalone -- :1 -nolisten tcp vt8
Restart = on-abort
RestartSec = 5

[Install]
WantedBy = multi-user.target" > /etc/systemd/system/kodi.service

systemctl enable kodi

Achtung in dem Script wird ein User angegeben, der natürlich existieren muß, also entweder einen Benutzer kodi anlegen und auch alle benötigten Rechte (Gruppen) zu weisen. Oder halt Euren Benutzernamen eintragen.

 

 

 

klaus
Autor: klaus
Diese Seite dient als Speicher für mein Linux Wissen, das ja doch nach einiger Zeit in Vergessenheit gerät. Vielleicht hilft es ja auch dem Ein oder Anderem ein Problem zu lösen.