====== Ubuntu 24.04 ====== Installeer Ubuntu met de **Ubuntu Server 24.04 LTS ISO**, maak een gebruiker **kodi** aan met als wachtwoord **kodi** en selecteer bij de installatie alleen **SSH server** ====== Software installeren ====== apt update apt upgrade apt install flatpak openbox lightdm samba wsdd lm-sensors mc binutils build-essential subversion git unzip xterm dkms cec-utils ntpdate Select lightdm as default display manager flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak install flathub tv.kodi.Kodi -y ====== Tijd/tijdzone goed zetten ====== apt install ntpsec-ntpdate timedatectl set-local-rtc 1 ntpdate nl.pool.ntp.org timedatectl set-timezone Europe/Amsterdam ====== Samba Configureren ====== Maak een /etc/samba/smb.conf aan mcedit /etc/samba/smb.conf en zet hier het volgende in #======================= Global Settings ===================================== [global] unix charset = UTF8 workgroup = Blaat netbios name = eXcyle-MCE server string = hosts allow = hosts deny = security = user encrypt passwords = yes max log size = 0 create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 # start windows 10 stuff usershare allow guests = yes guest ok = yes guest account = kodi #map to guest = bad user #map to guest = bad password #username map = /etc/samba/usermap.conf # end windows 10 stuff wins support = yes local master = yes os level = 2 preferred master = yes name resolve order = wins lmhosts bcast printcap name = /etc/printcap load printers = no unix extensions = no follow symlinks = yes wide links = yes #ntlm auth=true server min protocol = SMB2 client min protocol = SMB2 #log level = 2 #======================= Shares ============================================== [Roms] path = /home/kodi/ROMs read only = no guest ok = yes force user = kodi force group = kodi maak vervolgens een SMB user aan en zet een wachtwoord smbpasswd -a kodi ====== Geluid Configureren ====== De user kodi audio rechten geven usermod -G cdrom,video,audio,plugdev,users,dialout,dip,input,netdev,games kodi usermod -G cdrom,video,audio,plugdev,users,dialout,dip,input,netdev,games root ====== LIRC Configureren ====== Moderne versie van lirc lijken niet goed / anders te werken, hierom gaan we lirc installeren vanaf een losse DEB file. de deb files staan hier in de wiki: {{ :linux:ubuntu_24.04:liblircclient0_0.9.0-0ubuntu6_amd64.deb |}} {{ :linux:ubuntu_24.04:lirc_0.9.0-0ubuntu1_amd64.deb |}} download deze en installeer ze apt install setserial libusb-0.1-4 libftdi1 libportaudio2 dpkg -i liblircclient0_0.9.0-0ubuntu6_amd64.deb dpkg -i lirc_0.9.0-0ubuntu1_amd64.deb apt-mark hold lirc apt-mark hold liblircclient0 Maak een /etc/lirc/hardware.conf aan mcedit /etc/lirc/hardware.conf en zet hier het volgende in # /etc/lirc/hardware.conf # #Chosen Remote Control REMOTE="Home-brew (16x50 UART compatible serial port)" REMOTE_MODULES="" REMOTE_DRIVER="" REMOTE_DEVICE="/dev/lirc0" REMOTE_SOCKET="" REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf" REMOTE_LIRCD_ARGS="" #Chosen IR Transmitter TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="" TRANSMITTER_DEVICE="" TRANSMITTER_SOCKET="" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS="" #Enable lircd START_LIRCD="true" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD="false" #Try to load appropriate kernel modules LOAD_MODULES="true" # Default configuration files for your hardware if any LIRCMD_CONF="" #Forcing noninteractive reconfiguration #If lirc is to be reconfigured by an external application #that doesn't have a debconf frontend available, the noninteractive #frontend can be invoked and set to parse REMOTE and TRANSMITTER #It will then populate all other variables without any user input #If you would like to configure lirc via standard methods, be sure #to leave this set to "false" FORCE_NONINTERACTIVE_RECONFIGURATION="false" START_LIRCMD="" Maak een /etc/lirc/lircd.conf aan mcedit /etc/lirc/lircd.conf en zet hier het volgende in #This configuration has been automatically generated via #the Ubuntu LIRC package maintainer scripts. # #It includes the default configuration for the remote and/or #transmitter that you have selected during package installation. # #Feel free to add any custom remotes to the configuration #via additional include directives or below the existing #Ubuntu include directives from your selected remote and/or #transmitter. #No default remote configuration was included for Home-brew (16x50 UART compatible serial port) #You will need to include your own custom configuration for #this remote, and file a bug at https://bugs.launchpad.net/ubuntu/ source/lirc/ filebug begin remote name Harmony bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9036 4442 one 610 1620 zero 610 511 ptrail 610 repeat 9032 2187 pre_data_bits 16 pre_data 0x77E1 gap 107881 min_repeat 4 toggle_bit_mask 0x0 begin codes Up 0xD069 Down 0xB069 Left 0x1069 Right 0xE069 Ok 0x2069 ChannelUp 0x5079 ChannelDown 0x3079 VolumeUp 0x5019 VolumeDown 0x3019 1 0x50E9 2 0x30E9 3 0x90E9 4 0x60E9 5 0x9019 6 0x6019 7 0x1099 8 0xE099 9 0x1059 0 0xE059 Clear 0x2059 Enter 0x4099 Red 0x10F9 Green 0xE0F9 Yellow 0x20F9 Blue 0x40F9 Mute 0xA019 Back 0xA019 Exit 0x50D9 Guide 0xA0B9 Menu 0x4069 Info 0xD099 Rec 0x30D9 Rew 0xD059 Fwd 0xB059 Pause 0xC019 Play 0xC0E9 Skip 0xB005 Replay 0xD005 Stop 0xA0E9 Prev 0xB099 Aspect 0x50B9 F1 0x90D9 F10 0x6079 F11 0xA079 F12 0xC079 F13 0x90B9 F14 0x60B9 F2 0x60D9 F3 0xA0D9 F4 0xC0D9 F5 0x1005 F6 0xE005 F7 0x2005 F8 0x4005 F9 0x9079 LargeDown 0xB0F9 LargeUp 0xD0F9 PwrToggle 0xC0B9 Queue 0x30B9 Sleep 0x4059 end codes end remote Om kodi goed te laten reageren op de lirc commando's moet je de XBMC lirc map aanpassen maak eerst wat verplichte mappen aan voor kodi mkdir -p /home/kodi/.var/app/tv.kodi.Kodi/data/userdata mkdir -p /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/keymaps Maak een /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/lircmap.xml aan mcedit /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/lircmap.xml en zet hier het volgende in Up Down Left Right Menu ChannelUp ChannelDown VolumeUp VolumeDown Clear Enter Red Green Yellow Blue Mute Back Exit Guide Prev Info Rec Rew Fwd Pause Play Skip Replay Stop Aspect F1 F10 F11 F12 F13 F14 F2 F3 F4 F5 F6 F7 F8 F9 LargeDown LargeUp PwrToggle Queue Sleep 1 2 3 4 5 6 7 8 9 0 Maak een /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/keymaps/harmony.xml aan mcedit /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/keymaps/harmony.xml en zet hier het volgende in SubtitleSearch ToggleWatched SendClick(25,14) Powerdown ContextMenu XBMC.EjectTray() PreviousMenu UpdateLibrary(video) CleanLibrary(video) ActivateWindow(SubtitleSearch) SubtitleDelay NextSubtitle AudioNextLanguage Powerdown ContextMenu XBMC.EjectTray() PreviousMenu ====== Kodi configureren ====== ===== CPU temp ===== Maak een /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/advancedsettings.xml aan mcedit /home/kodi/.var/app/tv.kodi.Kodi/data/userdata/advancedsettings.xml en zet hier het volgende in echo "$(sensors -u coretemp-isa-0000 | head -n10 | grep temp2_input | awk '{print $2 }' |awk '{printf("%d\n",$1 + 0.5);}') C" Draai vervolgens sensors-detect En laat alle sensors detecteren en aan het einde de modules autoloaden. ===== Autostart ===== Download en installeer Kodi-Openbox Xsession wget -O openbox-kodi-master.zip https://github.com/lufinkey/kodi-openbox/archive/master.zip unzip openbox-kodi-master.zip cd kodi-openbox-master sed -i -e 's/Depends: bash, openbox, kodi/Depends: bash, openbox/g' ./kodi-openbox/DEBIAN/control bash ./build.sh dpkg -i kodi-openbox.deb Maak een /etc/lightdm/lightdm.conf aan mcedit /etc/lightdm/lightdm.conf en zet hier het volgende in [Seat:*] autologin-user=kodi autologin-session=kodi-openbox ===== Wacht op netwerk ===== Het wil wel eens voorkomen dat kodi al gestart wordt voordat het netwerk klaar is. Om dit te voorkomen kan je onderstaande toevoegen aan het begin van "/usr/bin/kodi-openbox-session" # Dirty hack to wait for network before starting kodi maxwait=20 sleeptime=3 i=0 while [ $i -lt $maxwait ] do numip=`ip address show dev eno1 | grep inet | grep -v inet6 | wc -l` if [ $numip == '1' ]; then totalwait=$(($i*$sleeptime)) echo "Slept for $totalwait seconds" break fi echo "Sleeping for $sleeptime seconds" sleep $sleeptime ((i++)) done #End of dirty hack ====== Workaround voor crashende nmbd bij shutdown ====== Maak een /etc/systemd/system/before-shutdown.service aan mcedit /etc/systemd/system/before-shutdown.service en zet hier het volgende in [Unit] Description=Do stuff before shutdown [Service] Type=oneshot RemainAfterExit=true ExecStop=/usr/bin/killall -9 nmbd [Install] WantedBy=multi-user.target en laat deze automatisch starten systemctl daemon-reload systemctl enable before-shutdown.service pas de max timeout bij afsluiten aan mkdir /etc/systemd/system.conf.d printf '[Manager]\nDefaultTimeoutStopSec=10s\n' | tee -a /etc/systemd/system.conf.d/faster-shutdown.conf ====== Workaround voor cec startup loop ====== maak een /usr/local/sbin/shutdowncec.sh aan mcedit /usr/local/sbin/shutdowncec.sh en zet hier het volgende in #!/bin/bash /bin/echo "standby 0" | /usr/bin/cec-client -s -d 1 en maak deze uitvoerbaar chmod +x /usr/local/sbin/shutdowncec.sh Maak een /etc/systemd/system/shutdowncec.service aan mcedit /etc/systemd/system/shutdowncec.service en zet hier het volgende in [Unit] Description=Shutdown TV before shutdown Requires=network-online.target After=network-online.target [Service] Type=oneshot RemainAfterExit=true ExecStart=/bin/true ExecStop=/usr/local/sbin/shutdowncec.sh [Install] WantedBy=multi-user.target en laat deze automatisch starten systemctl daemon-reload systemctl enable shutdowncec.service --now ====== Rechten ====== Als laatste zette we nog even de juiste rechten op alle config bestanden chown kodi:kodi /home/kodi -R