HOW-TO:Autostart Kodi for Linux: Difference between revisions
(http://wiki.xbmc.org/index.php?title=HOW-TO:Install_XBMC_for_Linux&oldid=76586) |
m (Robot: Changing Category:XBMC Manual to Category:Manual; cosmetic changes) |
||
Line 76: | Line 76: | ||
*NOTE*: This is a security hole as it autologins a dedicated xbmc user without asking for a password! | * NOTE*: This is a security hole as it autologins a dedicated xbmc user without asking for a password! | ||
Line 115: | Line 115: | ||
This method works well under Debian. The current configuration is a HTPC running Debian Squeeze, with no window manager installed. The main goal here is to start an Xserver only for XBMC. It allows also to specify which user will start / own the XBMC process. This method will '''not work''' if you have a window manager installed (however, it should not be hard to modify the script to suit your needs) | This method works well under Debian. The current configuration is a HTPC running Debian Squeeze, with no window manager installed. The main goal here is to start an Xserver only for XBMC. It allows also to specify which user will start / own the XBMC process. This method will '''not work''' if you have a window manager installed (however, it should not be hard to modify the script to suit your needs) | ||
*Create a new script under '''/etc/init.d/'''. Call it '''xbmc''' | * Create a new script under '''/etc/init.d/'''. Call it '''xbmc''' | ||
*Change the rights, in order to allow it to be executable. | * Change the rights, in order to allow it to be executable. | ||
<pre># chmod a+x /etc/init.d/xbmc</pre> | <pre># chmod a+x /etc/init.d/xbmc</pre> | ||
*copy the code under in the file. Modify the variables to suit your configuration: | * copy the code under in the file. Modify the variables to suit your configuration: | ||
<pre>#! /bin/sh | <pre>#! /bin/sh | ||
Line 181: | Line 181: | ||
exit 0</pre> | exit 0</pre> | ||
*Test the script by trying to start / stop XBMC with it. | * Test the script by trying to start / stop XBMC with it. | ||
<pre># /etc/init.d/xbmc start | <pre># /etc/init.d/xbmc start | ||
........ | ........ | ||
# /etc/init.d/xbmc stop</pre> | # /etc/init.d/xbmc stop</pre> | ||
*If all is ok, you can add the script to your configuration, by issuing a "update-rc.d" | * If all is ok, you can add the script to your configuration, by issuing a "update-rc.d" | ||
<pre># update-rc.d xbmc defaults</pre> | <pre># update-rc.d xbmc defaults</pre> | ||
*If XBMC does not start, you may need to allow X to start from non-consoles. | * If XBMC does not start, you may need to allow X to start from non-consoles. Under Debian/Ubuntu, run: | ||
<pre># dpkg-reconfigure x11-common</pre> | <pre># dpkg-reconfigure x11-common</pre> | ||
and choose "Anyone". | and choose "Anyone". | ||
*You can now reboot the server, XBMC should be started just after the boot sequence. | * You can now reboot the server, XBMC should be started just after the boot sequence. | ||
[[Category:Linux]] | [[Category:Linux]] | ||
[[Category:How-to]] | [[Category:How-to]] | ||
[[Category: | [[Category:Manual]] |
Revision as of 21:17, 17 November 2014
Linux | HOW-TO:Autostart Kodi for Linux |
How to automatically start up in XBMC using various Linux distributions.
Upstart init script
Create a /etc/init/xbmc.conf
with following contents.
# xbmc-upstart # starts XBMC on startup by using xinit. # by default runs as xbmc, to change edit below. env USER=xbmc description "XBMC-barebones-upstart-script" author "Matt Filetto" start on (filesystem and stopped udevtrigger) stop on runlevel [016] # tell upstart to respawn the process if abnormal exit respawn script exec su -c "xinit /usr/bin/xbmc --standalone -- -nocursor :0" $USER end script
Note: -- -nocursor
option kills all X cursor on XBMC startup and does not interfere with mouse use/operation
You may have to edit /etc/X11/Xwrapper.config
and replace the last line that says:
allowed_users=console
to
allowed_users=anybody
XBMC will now auto-start on boot and restart/respawn if killed or crashed.
Modify the inittab
This was tested on Arch Linux.
To automatically start xbmc on your system, do the following:
First you need to make some changes to /etc/inittab
. Comment out (add a #) to this line:
id:3:initdefault
to
#id:3:initdefault
and uncomment
id:5:initdefault
Then add this line to the bottom:
x:5:wait:login -f <YOUR_XBMC_USERNAME> </dev/tty7 &>/dev/tty7
Using wait instead of respawn means that you can exit out of xbmc into the console.
- NOTE*: This is a security hole as it autologins a dedicated xbmc user without asking for a password!
Now that we have the user logged in we need it to auto start XBMC.
In ~/.xinitrc
add the following to the end of the file
(after removing/commenting any other exec lines that start a windowmanager):
exec ck-launch-session xbmc
Add this line to your ~/.bash_profile
[[ $(tty) = "/dev/tty7" ]] && exec startx </dev/null &>/dev/null
And create a hushlogin file to suppress login messages.
touch ~/.hushlogin
Lastly, for the magic sauce that makes this work, add dbus to your daemons in /etc/rc.conf
.
DAEMONS=(... dbus ...)
You're finished. Next time you reboot you should be greeted with XBMC.
Add a new init script
This method works well under Debian. The current configuration is a HTPC running Debian Squeeze, with no window manager installed. The main goal here is to start an Xserver only for XBMC. It allows also to specify which user will start / own the XBMC process. This method will not work if you have a window manager installed (however, it should not be hard to modify the script to suit your needs)
- Create a new script under /etc/init.d/. Call it xbmc
- Change the rights, in order to allow it to be executable.
# chmod a+x /etc/init.d/xbmc
- copy the code under in the file. Modify the variables to suit your configuration:
#! /bin/sh ### BEGIN INIT INFO # Provides: xbmc # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts instance of XBMC # Description: starts instance of XBMC using start-stop-daemon and xinit ### END INIT INFO ############### EDIT ME ################## # path to xinit exec DAEMON=/usr/bin/xinit # startup args DAEMON_OPTS=" /usr/local/bin/xbmc --standalone -- :0" # script name NAME=xbmc # app name DESC=XBMC # user RUN_AS=sterfield # Path of the PID file PID_FILE=/var/run/xbmc.pid ############### END EDIT ME ################## test -x $DAEMON || exit 0 set -e case "$1" in start) echo "Starting $DESC" start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS ;; stop) echo "Stopping $DESC" start-stop-daemon --stop --pidfile $PID_FILE ;; restart|force-reload) echo "Restarting $DESC" start-stop-daemon --stop --pidfile $PID_FILE sleep 5 start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
- Test the script by trying to start / stop XBMC with it.
# /etc/init.d/xbmc start ........ # /etc/init.d/xbmc stop
- If all is ok, you can add the script to your configuration, by issuing a "update-rc.d"
# update-rc.d xbmc defaults
- If XBMC does not start, you may need to allow X to start from non-consoles. Under Debian/Ubuntu, run:
# dpkg-reconfigure x11-common
and choose "Anyone".
- You can now reboot the server, XBMC should be started just after the boot sequence.