Artikelkategori: Program
Skriven av minime 2020-04-06 14:39
url: 
Redigerad av: minime  2023-04-24 21:09:13

Installera Kodi-18.9 (Leia) på Slackware Current (15.0) i*86/64

Jag har kommit fram till att detta inte går överhuvudtaget på Slackware 14.2 p.g.a. flera olika anledningar.
Den främsta anledningen till att det inte fungerar är p.g.a. att Slackware 14.2 har så gamla och föråldrade paket så som Doxygen (Kanske skulle kunna fungera med den versioen som 14.2 nu har) och måste i regel uppdateras för att det skulle fungera.
Försöker man att göra detta och mätta diverse beroenden till andra paket så måste man även börja uppgradera GCC paket som är så pass föråldrad.
Sedan utöver det så saknar även Slackware 14.2 meson, wayland med mera.
Kanske går att lösa om man ex. uppdaterar vissa paket så som mesa och installerar dess beroenden och andra paket från current som 14.2 saknar, som nämt tidigare då meson, wayland, wayland-protocols och även libglvnd som har beroenden till den mesa versionen som current använder sig av.

Gjorde ett tappert försök i 14.2 under c:a två veckors period, men gav upp efter alla timmars hårslitande då kompileringen stannade helt utan någon konkret felmeddelande.
Installerade Slackware-Current istället och tänkte skriva lite kort hur jag gick tillväga för att installera det hela.
Även knåpat ihop ett slackbuild-script som jag tänkte dela med mig av till er.

Följande paket från SBo (Slackbuilds) behövs för att kompilera Kodi:

  • jdk
  • libass
  • tinyxml
  • libmicrohttpd
  • yajl
  • rapidjson
  • pycryptodomex
  • simplejson
  • libnfs
  • libdvdcss
  • platform
  • libcec

Installera jdk

JDK kan du inte installera så enkelt via sbopkg p.g.a att man måste logga in på oracles sida för att kunna ladda ner källkoden.

Ladda ner paket här:

jdk-8u371-linux-i586.tar.gz (32-bit)
jdk-8u371-linux-x64.tar.gz (64-bit)

Gör sedan följande för att packa upp, skapa och installera JDK:
# cd /usr/src
# wget https://slackbuilds.org/slackbuilds/15.0/development/jdk.tar.gz
# tar -xf jdk.tar.gz
# rm -rf jdk.tar.gz
# cd jdk

Notis (username), vilken användare du är inloggad som och laddade ner jdk source med.
OBS! I jdk.SlackBuild filen är det angivet version 8u321, redigera jdk.SlackBuild och ange 8u371 i stället.

# mv ~username/Downloads/jdk-8u371-linux-*.tar.gz ./
# ./jdk.SlackBuild
# installpkg /tmp/jdk-8u371-*-1_SBo.tgz

Skapa java miljön och kolla att java är installerat på systemet:
# export JAVA_HOME=/usr/lib64/java
# export MANPATH="${MANPATH}:${JAVA_HOME}/man"
# export PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"
# java -version

Systemet ska då visa något liknande:
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b02, mixed mode)

Resterande paket kan enkelt installeras med hjälp av sbopkg som finns att ladda ner här.
Obeservera att SBo officiellt inte är supporterat för current, men fungerar utan problem för just detta ändamål.
Ett alternativ är att man installerar dessa beroende separat och även kör de senaste versionerna.

Installera SBopkg

Gå först in i "/usr/src"

# cd /usr/src

Laddar vi ner sbokpg:

# wget https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz

och installera sbopkg:

# installpkg sbopkg-0.38.1-noarch-1_wsr.tgz

Ladda ner och installera paket från SBo

# sbopkg -i "libass tinyxml libmicrohttpd yajl rapidjson pycryptodomex simplejson libnfs libdvdcss platform libcec"

Bygg, skapa kodi-paketet och installera kodi

Ladda ner kodi buildscript:

# wget https://www.slackwarelinux.se/slackbuilds/kodi-18.9.tar.xz

Packa upp buildscriptet:

# tar -xf kodi-18.9.tar.xz

Städa upp lite:

# rm -rf kodi-18.9.tar.xz

Gå in i kodi mappen:

# cd kodi

Scriptet laddar själv ner hela source koden från git, så detta behöver du inte göra själv.
Observera dock att sourcen ligger på över 700 MB så det är ganska mycket data.
Varför inte ta ner tar filern istället? Det verkar som om addons är borttagen från tar filen.
Så vill du bygga ex. inputstream.adaptive addons är detta smidigast så.
inputstream.adaptive behövs för att kunna se på stream, så som netflix och C-More.

Kompilera och bygg kodi paketet:

# ./kodi.SlackBuild

När byggandet är klart så är det bara att installera kodi:

# installpkg /tmp/kodi-18.9-*-1_SBo.tgz
# installpkg /tmp/kodi-addons-18.9-*-1_SBo.tgz

Tweak

En del enheter kan ha problem med att ljudet ibland inte alltid synkar eller bilden halkar efter och laggar.
Själv hade jag väldiga problem med att titta på streams med netflix.
Med dessa inställningarna så flöt det hela på bättre för min del.

Gå in i ~ditt_användarnamn/.kodi/userdata, ex:

~$ cd
~$ cd .kodi/userdata
~$ nano advancedsettings.xml

Och lägg sedan till följande rader:

<advancedsettings>
 <cache>
    <memorysize>104857600</memorysize>
  </cache>
</advancedsettings>

Spara och starta om kodi.

Med buffermode satt till 2 så talar vi om för kodi att enbart buffra internet protokoll, så som stream, http ext.
Kodi´s standard värde här är 0.

Med memorysize så talar vi om för kodi hur mycket RAM som cachen ska få använda, i detta fallet 100 MB, 100 x 1024 x 1024 = 104857600
(vilket kräver 300 MB ledigt RAM-minne. d.v.s 1/3 av ledigt minne)
Kodis standard värde här är 20971520 (20MB).

Kodi´s readfactor är satt till 4 som standard värde, denna ska vi inte behöva ändra.

Lite information vad de olika variablarna betyder och gör finns här.

Ändra inställningarna för inputstream adaptive.
I kodi's huvudmeny, Klicka på kugghjulet.
Klickar sedan på "Add-ons".
Välj "My add-ons" och "VideoPlayer InputStream".
Högerklicka på "InputStream Adaptive" och klicka sedan "Settings".
Sätt "Max. Resolution secure decoder" till 720p eller lägre beroende på din hårdvara.
Klicka sedan "OK".

Nu ska stream från ex. netflix flyta på utan ljudsyncs problem eller lagg.

Tips

Om System informationen inte visar CPU eller GPU Temperature, så kan ni prova att lägga till dessa rader i
för CPU (CPU information som ska visas) alternativt för GPU (GPU Information som ska visas).
Dessa rader lägger ni in mellan och taggarna.
Exempel:

<advancedsettings>
  <cputempcommand>sensors|sed -ne "s/CPU Temperature: \+[-+]\([0-9]\+\).*/\1 C/p"</cputempcommand>
  <gputempcommand>nvidia-smi -q -d temperature|sed -n "s/[[:blank:]]*GPU Current Temp[[:blank:]]*\: *\([0-9]*\) *C/\1 C/p"</gputempcommand
</advancedsettings>

Problem och lösningar

Kompilerings problem

Första gången du försöker att bygga och kompilera Kodi
Kan det ev. stå att den funnit libplist, men den finner ej något versions nummer, för att undvika kompilerings problem så
får man länka libplist bibliotek till rätt lib.
Detta gör du genom att logga in som root eller via su:

# ln -s /usr/lib64/libplist.so /usr/lib64/libplist-2.0.so.3.3.0

Uppdaterings problem

Efter att man uppdaterat xorg-server så blir libglx drivarna överskrivna då man använder sig av nvidias egna drivrutiner.
Lösningen på detta är helt enkelt att avinstallera nvidia drivrutinera och ta bort libglx drivrutiner som även finns med i xorg-server.

# rm -rf /usr/lib64/xorg/modules/extensions/libglx.so

Och sedan installerar/kompilerar man om nvidias drivrutiner.

Slackbuild scritet för kodi-18.9 finns även på github.

Tack till Larry Hajali slackbuildscript för kodi-17.6, Arch Linux, http://axes2solution.com.

×