====== Installing Kodi 20.1 on GNU/Linux Debian 12 ====== This is an updated recipe to install Kodi as a media center on a Debian machine. The service will start automatically at bootstrap and will run under an unprivileged user. A login manager (e.g. LightDM) and a window system (e.g. X11 or Wayland) are not required. * **kodi 20.1 Nexus** * **Linux kernel 6.1.0** ===== Installing without X, Wayland, LightDM or whatever ===== During the Debian install, the **tasksel** will ask you what environment do you want to install. Deselect all the Debian desktop environments and enable only the SSH server. Debian packages to install: * **kodi** - Depends on **kodi-bin** and **kodi-data**. * **kodi-inputstream-adaptive** - Required e.g. by the YouTube addon. * **kodi-peripheral-joystick** - Requied if you want to control Kodi e.g. with a SNES controller. * **kodi-repository-kodi** - The official Kodi repository addon. * **kodi-visualization-spectrum** * **acpi-support** - Required to support e.g. power button actions. ===== Starting Kodi as unprivileged user ===== It is advisable to run the Kodi media player under an unprivileged user, it is common practice to create the user **kodi**: adduser kodi Add the user to the standard Debian groups, to allow using the hardware (mainly the **video** and the **input** groups): cdrom:x:24:kodi floppy:x:25:kodi audio:x:29:kodi dip:x:30:kodi video:x:44:kodi plugdev:x:46:kodi users:x:100:kodi input:x:102:kodi netdev:x:106:kodi You can start Kodi from a console virtual terminal just executing **kodi-standalone**; the script will launch the program without a window manager and the windowing method will be the **Generic Buffer Manager** (GBM), because we did not install X11 nor Wayland. ===== Power off System and Reboot options in the Exit menu ===== There is an **[[..:hardware:raspberrypi_nas_kodi#kodi_power_options|obsolete recipe]]** that suggests to install **Kodi as a systemd service** under the control of the kodi user. Using **polkit** and **acpi-support** you should be able also to enable the **Power off System** and **Reboot** options in the Kodi exit menu. This seems no longer possibile, because the **systemd-logind.service** imposes that you have a full terminal session to do things like poweroff the system. This means that if you run Kodi as a systemd service under the kodi user, you cannot give enough permissions to the process to let the Power off System and Reboot options appear in the **Exit menu** of Kodi. So the recommended way to run Kodi as a startup service and as unprivileged user, is to enable the **aoutlogin** of the kodi user on a **virtual terminal** of the console and create a **.profile** script that will launch the **kodi-standalone** program. ===== Start at bootstrap ===== **/etc/systemd/system/getty@tty1.service.d/autologin.conf** [Service] ExecStart= ExecStart=-/sbin/agetty --autologin kodi --noclear %I $TERM The first ''ExecStart='' line will clear the eventually existing definition inherited by the ''getty@.service'' service. The second ''ExecStart=-'' (with the dash) instructs systemd to execute the program **agetty** and threat any error as non fatal. The **%%%I%%** placeholder is replaced by the terminal name (tty1 in our example). Finally the environment variable ''$TERM'' is passed to agetty, hopely it is initailized by the system to the correct value. **/home/kodi/.profile** # Start the Kodi media center, only if text console on VT1. if [ -z "$DISPLAY" -a "$(tty)" = "/dev/tty1" ]; then while true; do kodi-standalone echo "Sleeping 15 seconds before restarting Kodi; press Ctrl-C to interrupt..." sleep 15 done fi ===== Installing Kodi 21 Omega on Debian 12 Bookworm ===== * **[[https://fostips.com/install-kodi-debian-bookworm/|How to Install The Latest Kodi 21.2 in Debian 12 Bookworm]]**