HOW-TO:Autostart Kodi for Linux: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
Line 121: Line 121:
</pre>
</pre>


Insert this text into the new file. Use CTRL + O + Enter + X to save the file.
Insert this text into the new file. Use CTRL + O + Enter + X to save the file.  


<pre>
<pre>
#!/bin/sh
#!/bin/sh
/usr/bin/kodi &
/usr/bin/kodi  
</pre>
</pre>


Line 132: Line 132:
<pre>
<pre>
#!/bin/sh
#!/bin/sh
/usr/bin/kodi &
blackbox &
blackbox &
/usr/bin/kodi
</pre>
</pre>


Set permissions to make it executable.
Set permissions to make it executable. Use the ampersand to run an application in the background, such as a WM you only need to for the purpose of launching Kodi but not if you don't want to use the WM itself. Kodi will not launch without a DE or WM, but placing the ampersand "&" at the end of the command makes it run in the background where it can do its job out of sight. Also, make sure to start a WM or DE before running an application in the foreground. This is not necessary for apps running in the background.


<pre>
<pre>

Revision as of 08:37, 28 April 2018

Any or all or any combination of these methods can be used to configure a Debian-based X Window System to boot directly to Kodi. This should work on any Linux using the X Window System, but these instructions are particular to Debian derivatives, such as Ubuntu. A server edition is best for running only Kodi, but this page assumes booting into a desktop OS, not a server distro. However, the instructions here can be used for a server distro with even less configuration than for a desktop. Experiment inside VirtualBox before you apply any of these to your system and make a backup.

Switch to root

su

or

sudo su

Create a Kodi user

To use Kodi full-screen, you only have to create a standard user.

adduser kodi

To remove the password use:

passwd -d kodi

Customize LightDM to autologin

You can utilize the ability to customize LightDM data manager by changing the builtin custom configuration file 50-myconfig.conf using nano or another text editor. If you have no DE or WM you can install lightdm, but should make sure to do a bit of research before you do. Most versions of Linux use LightDM, but many server versions do not. For Ubuntu Server with no DE, for example, installing lightdm is okay and necessary. Changing the behavior of LightDM is done using a custom 50-myconfig.conf configuration file.

To see if you have lightdm use which.

which lightdm

If not, install it with apt.

apt install lightdm

Create a custom configuration file called 50-myconfig.conf using nano or other CLI text editor.

mkdir /etc/lightdm/lightdm.conf.d/
nano /etc/lightdm/lightdm.conf.d/50-myconfig.conf

Inside this new file add the following text.

[SeatDefaults]
autologin-user=kodi

Configure Kodi to autostart

Configure Kodi to autostart.

mkdir -p ~/.config/autostart
ln -s /usr/bin/kodi ~/.config/autostart

This method of autostart requires a desktop environment or DE. This is done a bit differently by each DE. Some helpful links can easily be found in today's Web search using any search engine.

Autostart Apps in XFCE

The Raspberry Pi is a bit more of a tweak, but these are excellent links that will tell you how. The first link is the most helpful to making sure Kodi autostarts in Pi. There are many settings on the Pi that control boot, and the first link gives the best most trouble-free way to boot directly to Kodi. The others facilitate more tweaks and settings relevant to other uses of the X Window System.

LAMP stack on Raspberry Pi with Kodi running at startup

Enable X Window System on PiScreen

Remove boot messages all text in Raspbian - Raspberry Pi Stack Exchange

How to prevent or allow autologin of GUI - Raspberry Pi Stack Exchange

Auto running programs LXDE - Raspberry Pi Projects

And, if you would rather, it is easier to follow the process provided by this link to modify the Raspbian image before installing it onto the microSD card.

Modifying Raspbian with qemu-user-static

The above link describes removing the DE from a Raspbian image, though Raspbian Lite is a much better starting point for using Qemu for this purpose.

On Raspbian, you configure LightDM differently for autologin, which is necessary to boot directly to Kodi.

nano /etc/lightdm/lightdm.conf

Uncomment the following line.

#autologin-user=

And add the user you want to autologin and autostart Kodi. The user is named kodi in this example.

autologin-user=kodi

If Kodi is not installed at the standard path, find it using the which command.

which kodi

You can also use the X11 Window System to autostart Kodi.

nano /etc/X11/Xsession.d/startup-local

Insert this text into the new file. Use CTRL + O + Enter + X to save the file.

#!/bin/sh
/usr/bin/kodi 

If you have a WM, such as Blackbox you can add it here as well.

#!/bin/sh
blackbox &
/usr/bin/kodi 

Set permissions to make it executable. Use the ampersand to run an application in the background, such as a WM you only need to for the purpose of launching Kodi but not if you don't want to use the WM itself. Kodi will not launch without a DE or WM, but placing the ampersand "&" at the end of the command makes it run in the background where it can do its job out of sight. Also, make sure to start a WM or DE before running an application in the foreground. This is not necessary for apps running in the background.

chmod 755 /etc/X11/Xsession.d/startup-local

This feature is available on X Window System operating systems without upgrading to Xserver. Most Linux distributions use the X Window System.

Disable / enable the login prompt

You can disable the graphical login prompt.

systemctl set-default multi-user.target

To enable it again use.

systemctl set-default graphical.target

If you are using an autologin method associated with your DE or WM, you do not want to disable the graphical login.

Even if you are using something like Kodi Standalone Service, you still need use a WM or a DE that installs the x-window-manager software package.

To ensure you have this installed use the which command.

which x-window-manager

If there is no such package, you can use apt to search your Linux distributions repository.

apt-cache search x-window-manager

This will general a list of packages containing x-window-manager, which cannot be installed alone. If you are not using a DE, you need to use a WM. And, you can also use a compositing WM like Compiz, for fast 3D effects.

Compiz - ArchWiki

A note on using Kodi Standalone Service, this package runs Kodi as a systemd service and disables the login for user kodi and will not work when autologin is enabled. In fact, it will break the login process if you autologin user kodi and run Kodi Standalone Service at the same time. This package is installed automatically with the standard Kodi package when you install Kodi on Raspbian, but must be configured manually for all other Linux distributions. You can run the which command to find this package as well.

which kodi-standalone

Be advised, Kodi Standalone Service still launches the Kodi GUI and still requires a WM even though it is running as a systemd service. When you install a WM such as xfwm4 (the WM for XFCE4), the CLI will tell you if it provides the x-window-manager package.

Setting up xfwm4 (4.12.4-1) ...
update-alternatives: using /usr/bin/xfwm4 to provide /usr/bin/x-window-manager (x-window-manager) in auto mode

If you do not see this message at the end of the installation, the WM you selected does not provide this software package and may not actually be a complete WM itself but only part of a package containing a WM.

For a great example on exactly how you would do this with xfwm4, see this ArchWiki entry.

XFWM - ArchWiki

Create custom Xsession script

Most systems utilize the client version of the X11 software Kodi standalone service requires.

Upgrade to the server versions of the X Window System.

apt install xauth xorg xinit xserver-xorg-core xserver-xorg xserver-common

Create a custom Xsession script with a text editor.

nano ~/.xinitrc

To run Kodi full-screen make sure the text reads:

#!/usr/bin/env bash
/usr/bin/kodi -fs &
exec gnome-session

Replace the gnome-session with the DE or WM command you are using. See the last section for examples.

To make ~/.xinitrc executable use.

chmod +x ~/.xinitrc

Use sudo and the ~/.xinitrc file to configure ~/.xsession.

sudo -H -u kodi bash -c "ln -s ~/.xinitrc ~/.xsession"

You need to use sudo to run this command. If you do not have sudo, install it.

apt install sudo

If you create a symbolic link and want to remove it, simply remove the existing .xsession file you created.

rm /home/kodi/.xsession

Remember you can modify use and reuse the ~/.xinitrc file to configure ~/.xsession as often as you want. That is the purpose of the file. It does nothing on its own until you associate it with a user. On some systems using a DE such as Gnome, not all systems using Gnome, it may be necessary for .xsession to be .xsessionrc. Though this is more likely the case for organization network computers than a personal one, where configurations may vary on a diversity of machines. Most of the time, it will be .xsession rather than .xsessionrc that you want to create.

You must also autostart the X Window system, which differs somewhat from scenario to scenario. For most setups, all that is necessary is to edit the .bashrc file.

nano ~/.bashrc

Add the following as shown.

if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
  exec startx
fi

If you wish to remain logged in after quitting X, remove the exec from the above. Other configurations can be applied, but are irrelevant to autostarting Kodi.

Xinit Autostart X at login

Xsession to boot to app / WM / DE

You can use any window manager or desktop enviroment with a custom Xsession script as long as it is intalled.

You do this by creating ~/.xinitrc script that contains the command to start the WM or DE.

For instance, if you are using FluxBox?

#!/usr/bin/env bash
/usr/bin/kodi -fs &
exec fluxbox &

The -fs option is full-screen.

To start Gnome with Kodi full-screen:

#!/usr/bin/env bash
/usr/bin/kodi -fs &
exec gnome-session &

Use the ~/.xinitrc file to configure ~/.xsession to create a custom login for any user, not just Kodi.

sudo -H -u [username] bash -c "ln -s ~/.xinitrc ~/.xsession"

You must reconfigure Xserver for any user that is not a privileged user to be able to start a custom Xsession.

dpkg-reconfigure xserver-xorg-legacy

And / or...

dpkg-reconfigure xserver-xorg

If both packages are installed, you must reconfigure both. Not all systems will use or require the legacy package to allow non-root users to start X.

Add a custom Grub entry

If you want to boot to the CLI and manually launch an app or boot directly to Kodi without a DE or WM, add a custom grub entry.

The right way to add a custom grub entry is to copy the menu entry you want to change or duplicate.

Copy the default Grub configuration file and open it with a text editor on your desktop. If you use a text editor on the CLI, the text will be cut off by the window when copying and pasting.

cp /boot/grub/grub.cfg grub.cfg
gedit grub.cfg

Copy the menu entry and paste it into 40_custom with a text editor in the CLI.

nano /etc/grub.d/40_custom

Where the menu entry contains quiet splash change it to text instead.

You should also change the name of the entry!

I just appended mine with “CLI” for command line interface.

To update Grub:

update-grub

To launch a WM you can type its name. I use Enlightment 17 or Fluxbox. It must be installed.

fluxbox

You must have FluxBox installed. There are countless other window managers.

To launch a DE you enter the appropriate command. For Gnome desktop:

gnome-session

For KDE:

startkde

or

plasma-desktop

For XFCE:

startxfce4

For Mate:

mate-session

For LXDE:

startlxde

You can either manually launch your apps, boot right into them, or create an Xsession for each user. This is great when you want to create a Kodi user for running Kodi only, and for making sure you can still login to your DE with your regular user account. You can boot to any app full-screen this way, not just Kodi. You can create a custom Xsession script for any user, configured with any startup applications running in full-screen mode or normally.

By optionally creating a Grub menu entry, you can create a different Grub menu selection to boot only to the CLI and start an Xsession with a script or run commands manually.