Kodi
Kodi (formerly XBMC) is an open source home theater application.
Installation
USE flags
USE flags for media-tv/kodi A free and open source media-player and entertainment hub
X
|
Add support for X11 |
airplay
|
enable AirPlay support |
alsa
|
Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture) |
bluetooth
|
Enable Bluetooth Support |
bluray
|
Enable playback of Blu-ray filesystems |
caps
|
Use Linux capabilities library to control privilege |
cec
|
Enable support for HDMI-CEC devices via libcec |
css
|
Enable reading of encrypted DVDs |
dbus
|
Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc) |
dvd
|
Enable optical (CD/DVD drive) support |
gbm
|
Use the Graphics Buffer Manager for EGL on KMS. |
gles
|
Enable support for GLES |
lcms
|
Add lcms support (color management engine) |
libressl
|
Use dev-libs/libressl instead of dev-libs/openssl when applicable (see also the ssl useflag) |
libusb
|
Use virtual/libusb for usb device hotplug support. This flag should only be enabled if you're running a non-Linux kernel or you don't want to use sys-fs/udev. |
lirc
|
Enable support for controlling Totem with a remote control using app-misc/lirc |
mariadb
|
Add MariaDB support |
mysql
|
Add mySQL Database support |
nfs
|
Enable NFS client support |
opengl
|
Add support for OpenGL (3D graphics) |
pulseaudio
|
Add support for PulseAudio sound server |
raspberry-pi
|
Enable support for the Raspberry Pi |
samba
|
Add support for SAMBA (Windows File and Printer sharing) |
system-ffmpeg
|
Use system ffmpeg instead of the bundled one |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
udev
|
Use sys-fs/udev rules to handle devices' permissions and hotplug support. Unless you know what you're doing do not disable this flag on Linux kernels. This is provided as an option for completeness. |
udf
|
Enable UDF support. Required for playing blurays. |
udisks
|
Enable storage management support (automounting, volume monitoring, etc) |
upnp
|
Enable UPnP port mapping support |
upower
|
Enable power management support |
vaapi
|
Enable Video Acceleration API for hardware decoding |
vdpau
|
Enable the Video Decode and Presentation API for Unix acceleration interface |
wayland
|
Enable dev-libs/wayland backend |
webserver
|
Enable internal webserver |
xslt
|
Enable XSLT support using dev-libs/libxslt |
zeroconf
|
Support for DNS Service Discovery (DNS-SD) |
Emerge
root #
emerge --ask media-tv/kodi
Configuration
Create user
First create the kodi user:
root #
useradd -m -G audio,cdrom,video,cdrw,usb,users kodi
To add support for HDMI CEC:
root #
gpasswd --add kodi dialout
Services
Using lightdm
Emerge
root #
emerge --ask x11-misc/lightdm
Configure
/etc/conf.d/xdm
DISPLAYMANAGER="lightdm"
/etc/lightdm/lightdm.conf
[Seat:*] autologin-user=kodi user-session=kodi session-wrapper=/etc/lightdm/Xsession
Service
OpenRC
Add dbus and xdm to the default runlevel if it needs to be started automatically:
root #
rc-update add dbus default
root #
rc-update add xdm default
root #
rc-service dbus start
root #
rc-service xdm start
systemd
root #
systemctl enable lightdm
root #
systemctl start lightdm
Using inittab
First create the kodi user (see above). This is based on the way the MythTV ebuilds enable the autostart of the MythTV frontend.
Define an .xinitrc file in kodi's home:
/home/kodi/.xinitrc
[ -x /usr/bin/nvidia-settings ] && /usr/bin/nvidia-settings -l /usr/bin/xset s noblank /usr/bin/xset s off /usr/bin/xset -dpms /usr/bin/evilwm & exec /usr/bin/kodi
Then create the login scripts:
/home/kodi/.bash_profile
case "`tty`" in *tty9) startx; logout ;; esac
Finally append an inittab entry which does the autologin:
/etc/inittab
# Start Kodi c9:2345:respawn:/sbin/mingetty --autologin kodi tty9
Gentoo Hardened
Running Kodi on a Hardened Gentoo installation is possible. To avoid grsecurity interfering with network connectivity, the CONFIG_GRKERNSEC_PROC_USER kernel option must not be enabled.
Should you require a restricted /proc filesystem, use CONFIG_GRKERNSEC_PROC_USERGROUP and set GRKERNSEC_PROC_GID to the ID of a group that the user running Kodi is a member of.
Usage
Shutdown
Allow the kodi user to issue an shutdown via polkit, resulting in a shutdown option in the Kodi menu:
/etc/polkit-1/rules.d/60-kodi.rules
polkit.addRule(function(action, subject) { if (( (action.id.indexOf("org.freedesktop.udisks.") == 0) || (action.id.indexOf("org.freedesktop.upower.")== 0) || (action.id.indexOf("org.freedesktop.consolekit.")== 0) ) && subject.user=="kodi") { return polkit.Result.YES; } });
Ensure the
udev
USE flag is set for shutdown to work.