Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:htpc

Linux HTPC mit Steam, XBMC und XBox Controller

Installation von XBMC und Steam auf einem Mini Ubuntu mit Xbox 360 Wireless Controller Unterstützung

Einleitung

Seit Jahren benutze ich auf meinem HTPC Openelec, bin aber immer wieder an die Grenzen des Systems gestoßen.
Sobald Openelec außerhalb der für sich relevanten Bereiche erweitert bzw. modifiziert werden soll, hat man ohne umständliches neu kompilieren keine Chance.
Als eigenständige Softwareappliance für den alleinigen Zweck als Media Center ist Openelec dennoch meine erste Wahl.
Da ich aber mittlerweile mehr mit meinem HTPC machen möchte, musste ein vollwertiges Linux her.

Anforderungen

Folgende Anforderungen musste meine neue HTPC Installation erfüllen:

  • XBMC
  • Steam (primär für In-Home Streaming)
  • XBMC soll sich bei Absturz neu starten
  • XBox 360 Wireless Controller in Steam und XBMC nutzbar
  • HDMI CEC nutzbar

Verwendete Software

Zu dieser Anleitung

  • Soweit nicht anders angegeben wird, jede Konfiguration per SSH getätigt
  • Es wird primär im Kontext des Benutzers xbmc gearbeitet
  • Alle hier dokumentierte Schritte bauen aufeinander auf

Systeminstallation

Als Grundsystem wird ein Ubuntu Minimal 14.04 64Bit installiert.
Da es schon genug Installationsanleitungen gibt, werde ich hier nicht näher drauf eingehen.
Beispielhaft sei die Anleitung von Damien hier verlinkt: http://www.maketecheasier.com/install-a-minimal-ubuntu-on-old-laptop/,
die mit den unten genannten Einstellungen bis zur Post Installation, aber nicht einschließlich Post Installation, genutzt werden kann.
Mein Ubuntu Minimal habe ich über das Bios (nicht UEFI) von USB-Stick starten und installieren lassen.

Zu beachtende Einstellungen:

  • Username: xbmc
  • Do not install updates
  • Nur den OpenSSH Server selektieren

Während der Installation von Grub kann es passieren, dass der USB-Stick als /dev/sda gemountet ist.
Warum auch immer will das Ubuntu Setup den Bootsektor von Grub ausschließlich auf /dev/sda schreiben,
selbst wenn das System auf /dev/sdb installiert wurde.
Um das Problem zu vermeiden, empfehle ich, den USB-Stick direkt nach dem Start der Installation zu entfernen.
Das Setup ist zu diesem Zeitpunkt komplett in den Arbeitsspeicher geladen und lädt alle relevanten Pakete aus dem Internet nach.

XBMC

Um mir die Arbeit zu erleichtern habe ich die XBMC Installation mit Hilfe des Skriptes von Hack_kid durchgeführt:
http://forum.xbmc.org/showthread.php?tid=189241
Das Skript installiert für ein funktionierendes XBMC automatisch alle benötigten Pakete und stimmt diese aufeinander ab.
Am Ende dieser Installation wird XBMC ohne Desktop und Window Manager automatisch über den Displayserver X gestartet.

mkdir -p /home/xbmc/bin
sudo -i
cd /home/xbmc/bin
wget https://github.com/Albinoman887/xbmc-ubuntu-minimal/raw/master/12.10/xbmc-ubuntuniversal-minimal-installer.sh
chown xbmc:xbmc ./xbmc-ubuntuniversal-minimal-installer.sh
bash ./xbmc-ubuntuniversal-minimal-installer.sh

Zu beachtende Einstellungen:

In meinen ersten Tests hatte ich zusätzlich OS-based NFS Support installiert.
Da ich aber ausschließlich SMB nutze um auf die Shares von meinem NAS zuzugreifen, installiere ich es nicht mehr mit.

Falls nach einem Neustart nur ein Anmeldebildschrim zu sehen ist, XBMC aber nicht startet, kann es an der Grub Option 'nomodeset' liegen.
Für einen Fix siehe hier.

Sprache ändern

Nachdem XBMC mit Hilfe des Skriptes installiert wurde, ist das System inklusive Tastaturlayout und Zeit auf Englisch eingestellt.
Ich bevorzuge es allerdings in englischer Sprache, mit deutschem Tastaturlayout und deutscher Zeit.

sudo mv -f /etc/environment.bak /etc/environment
sudo locale-gen de_DE.UTF-8
sudo dpkg-reconfigure locales
sudo dpkg-reconfigure keyboard-configuration
sudo sh -c "echo LC_TIME=\\\"de_DE.UTF-8\\\" >> /etc/default/locale"

Openbox

Für Steam benötigen wir später zwingend einen Window Manager!
Meine Wahl viel auf den genügsamen Openbox.

sudo apt-get install openbox

Ab jetzt soll Openbox automatisch starten und XBMC in der Openbox Session.
Sollte XBMC crashen sorgt die hier vorgeschriebene Vorgehensweise zusätzlich dafür, dass XBMC wieder neugestartet wird.

Vorhandenen XBMC Autostart anpassen

sudo sed -i 's/.*env USER=xbmc.*/&\nenv DISPLAY=':0'/' /etc/init/xbmc.conf
 
sudo sed -i '/start on/i \
start on (net-device-up IFACE!=lo and started openbox) \
stop on (runlevel \[016\] or stopped openbox)' /etc/init/xbmc.conf
 
sudo sed -i '15 s/^/#/' /etc/init/xbmc.conf
sudo sed -i '16 s/^/#/' /etc/init/xbmc.conf
sudo sed -i '25 a\  exec su -c "\/usr\/bin\/xbmc" $USER' /etc/init/xbmc.conf
sudo sed -i '27 s/^/#/' /etc/init/xbmc.conf

Openbox Autostart hinzufügen

sudo sh -c "echo 'start on (started dbus and started mountall)
stop on runlevel [016]
respawn
respawn limit 10 5
limit nice 21 21
script
exec su -c \"xinit /usr/bin/openbox-session -- -bs -nocursor :0\" xbmc
end script' > /etc/init/openbox.conf"

Steam

Steam ist in den offiziellen Ubuntu Repositories enthalten. wmctrl wird später für das XBMC AddOn Steam Launcher benötigt.

sudo apt-get install steam wmctrl
sudo reboot

Nach dem Neustart startet jetzt automatisch XBMC.

Für alle die wissen möchten, welche Pakete mit Steam installiert werden

Für alle die wissen möchten, welche Pakete mit Steam installiert werden

aspell aspell-en enchant gcc-4.8-base:i386 gcc-4.9-base:i386 glib-networking glib-networking-common glib-networking-services gsettings-desktop-schemas gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-x hunspell-en-us libaa1 libaspell15 libavc1394-0 libc6:i386 libcanberra-gtk3-0 libcanberra-gtk3-module libcanberra0 libcdparanoia0 libcgmanager0:i386 libdbus-1-3:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libdv4 libelf1:i386 libenchant1c2a libexpat1:i386 libffi6:i386 libgcc1:i386 libgeoclue0 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libgpm2 libgstreamer-plugins-base1.0-0 libgstreamer-plugins-good1.0-0 libgstreamer1.0-0 libharfbuzz-icu0 libhunspell-1.3-0 libicu52 libiec61883-0 libjack-jackd2-0 libjavascriptcoregtk-3.0-0 libllvm3.4:i386 libnih-dbus1:i386 libnih1:i386 libnotify4 liborc-0.4-0 libpciaccess0:i386 libproxy1 libraw1394-11 libsecret-1-0 libsecret-common libshout3 libsoup2.4-1 libspeex1 libstdc++6:i386 libtheora0 libtinfo5:i386 libtxc-dxtn-s2tc0:i386 libudev1:i386 libvisual-0.4-0 libvisual-0.4-plugins libwavpack1 libwebkitgtk-3.0-0 libwebkitgtk-3.0-common libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxshmfence1:i386 libxxf86vm1:i386 notification-daemon sound-theme-freedesktop steam:i386 zenity zenity-common zlib1g:i386

Steam Launcher

Um Steam bequem über XBMC starten zu können, hat teeedubb ein Program AddOn geschrieben, dass eine Verknüpfung in XBMC hinzufügt: Steam Launcher.
Ich empfehle für automatische AddOn Updates sein Repository über das Program AddOn Repository Installer zu installieren.
Überpüft nach der Installation in den Einstellungen des Steam Launcher den Pfad zu Steam.
Bei mir wurde Steam nach /usr/games/steam installiert, das AddOn hat es aber unter /usr/bin/steam erwartet. Um zu erfahren, wo euer Steam installiert ist, gebt folgendes ein:

which steam

Den Steam Launcher so einstellen, dass XBMC nicht geschlossen wird.
Leider habe ich noch keine Möglichkeit gefunden, wie ich, während Steam läuft, den automatischen Neustart von XBMC temporär deaktivieren kann ohne, dass sich das steam-launch.sh script beendet. Weiteres dazu siehe im Anhang unter Steam Launcher und automatischer XBMC Neustart.

Führt das AddOn kurz aus. Es wird eine Fehlermeldung kommen, dass das Script noch nicht ausführbar ist.
Bestätigt diese Meldung mit No. Das AddOn musste einmalig gestartet werden, damit es das Shell Script an seinen richtigen Platz kopieren konnte
und wir es jetzt ausführbar machen können.

chmod +x /home/xbmc/.xbmc/userdata/addon_data/script.steam.launcher/scripts/steam-launch.sh

Jetzt Steam nicht über das AddOn starten. Für die Ersteinrichtung im Big Picture Mode benötigt Steam den Network Manager.
Da wir den Network Manager ansonsten nicht benötigen, und somit seine unzähligen Abhängigkeiten vermeiden können,
werden wir Steam einmalig im Desktop Modus starten und uns dauerhaft einloggen.

DISPLAY=:0 /usr/games/steam

Dieser Teil der Einrichtung ist etwas tricky da in Steam kein Mauszeiger ist. Ich empfehle sich am Mauszeiger des im Hintergrund laufenden XBMC zu orientieren. Die Schaltflächen von Steam bekommen eine leuchtende Umrandung wenn der unischtbare Mauszeiger sie berührt. Sobald wir in Steam eingeloggt sind, schließen wir es wieder.
Jetzt starten wir Steam über das AddOn in XBMC und wechseln in Steam nach Settings –> System um die Installation von Steambetas zu aktivieren. Die Aufforderung zu einem Steamneustart bestätigen wir mit Ok. Die Betas erhöhen die Performance für In-Home Streaming. Alle im Netzwerk befindlichen Steam Versionen müssen diese Option aktiviert haben da Steam-Client und Steam-Host, von dem aus das Spiel gestreamt wird, sich auf der selben Version befinden müssen. Nach der Aktualisierung Steam wieder schließen.

Für eine weitere Erhöhung der Performance sollte auf dem Steam-Host unter Settings –> In-Home Streaming –> Advanced Host Options der Netzwerkverkehr priorisiert werden.

Steam In-Home Streaming Network Shaping

XBox 360 Wireless Controller

Unter Linux gibt es für die XBox Controller den im Kernel mitgelieferten XPad und den im Userspace laufenden xboxdrv Treiber.
Ich habe mich für den xboxdrv entschieden da ich es nicht geschafft habe, den Controller mit XPad direkt nach einem Systemstart in XBMC nutzen zu können.
Mir wäre die Nutzung des XPad Treiber lieber da Steam und XBMC offiziell den XPad Treiber unterstützen und für eine nahtlose Interaktion
in XBMC und Steam mit dem xboxdrv die Benutzerrechte des Kontos xbmc deutlich erweitert werden müssen.

XBoxdrv Treiber

Die Installation des XBoxdrv Treiber wurde weitesgehend aus dem Beitrag XBMC.org - Linux - [HOW-TO][FRODO] Configure XBOX 360 Wireless Controller von Firas.AlShafei übernommen.
Ich habe nur den Service angepasst, sudo vor die rmmod und modprobe Befehle gesetzt, das Argument --mimic-xpad-wireless angehangen
und das Keymap File entfernt um eine größtmögliche Kompatibilität zwischen Steam und XBMC herzustellen.

sudo sh -c "echo blacklist xpad >> /etc/modprobe.d/blacklist.conf"
sudo apt-get install xboxdrv

Benutzerrechte anpassen:

sudo usermod -g root xbmc
sudo sh -c "echo KERNEL==\\\"uinput\\\", MODE=\\\"0660\\\", GROUP=\\\"root\\\" >> /etc/udev/rules.d/55-permissions-uinput.rules"
sudo sh -c "echo xbmc ALL=NOPASSWD:/sbin/modprobe,/sbin/rmmod >> /etc/sudoers"

Xboxdrv während der Laufzeit testen (funktioniert nur, während der unten angegebene Service nicht läuft):

xboxdrv --wid 0 -c /usr/share/doc/xboxdrv/examples/xbmc.xboxdrv --mimic-xpad-wireless

xboxdrv Service installieren:

sudo nano /etc/init.d/xboxdrv-rc

xboxdrv-rc

xboxdrv-rc

#! /bin/bash
### BEGIN INIT INFO
# Provides:          xboxdrv-rc
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: xboxdrv service script
#
# Description:
# A service script for the xboxdrv controller
# driver.
#
# Changelog:
# v1.1 - Draggy - 04/12/2011
# - Initial Version
#
# v1.2 - Firas AlShafei - 03/17/2013
# - Modified script to not need screen
# - Added ability to run as desired user
#   - xbmc can stop/start it if needed
# - Using PID files for process tracking
#
# v1.3 - Firas AlShafei - 03/21/2013
# - Renamed script to xboxdrv-rc
# - Added option flags add ability for
#   - keymap file assignment
#   - inline xboxdrv options
# - Added a startup delay when using restart|reload
# - Cleaned up code and added usage function
#
### END INIT INFO
 
#user that xboxdrv will run under
USER="xbmc"
GROUP="xbmc"
 
# driver binary
DRV=xboxdrv
 
# wireless controllers
WIRELESS=(0 1)
 
# Wired Controllers
WIRED=()
 
# xboxdrv configuration file
#KEYMAP_FILE="/home/xbmc/.xbmc/userdata/keymaps/MyXBMC.xboxdrv"
 
# xboxdrv options
INIT_XD_OPTIONS="--silent --quiet --mimic-xpad-wireless"
 
# Arguments
function set_args()
{
#   ARGS="$INIT_XD_OPTIONS -c $KEYMAP_FILE $XD_OPTIONS"
    ARGS="$INIT_XD_OPTIONS $XD_OPTIONS"
}
 
# start
start()
{
   # Load uinput if it isnt loaded already
   if [ -z "$(lsmod | grep uinput)" ]; then
      echo "Loading uinput module"
      sudo /sbin/modprobe uinput
   fi
 
   # Load joydev if it isnt loaded already
   if [ -z "$(lsmod | grep joydev)" ]; then
      echo "Loading joydev module"
      sudo /sbin/modprobe joydev
   fi
 
   # Unload xpad if its loaded
   if [ -n "$(lsmod | grep xpad)" ]; then
      echo "Unloading xpad module"
      sudo /sbin/rmmod xpad
   fi
 
   for i in ${WIRELESS[@]}
   do
      ps -p `cat /tmp/.$DRV.WS.$i.pid` >& /dev/null
      if [ $? = 0 ];then
         echo "Wireless Controller #$i is already running"
      else
         echo "Starting Wireless Controller #$i"
         if [ $(whoami) = $USER ]; then
            $DRV --wid $i $ARGS &
            echo $! > /tmp/.$DRV.WS.$i.pid
         else
            su - $USER -c "$DRV --wid $i $ARGS & echo \$! > /tmp/.$DRV.WS.$i.pid"
            bg=$(</tmp/.$DRV.WS.$i.pid)
         fi
      fi
   done
 
   for i in ${WIRED[@]}
   do
      ps -p `cat /tmp/.$DRV.WD.$i.pid` >& /dev/null
      if [ $? = 0 ];then
         echo "Wired Controller #$i is already running"
      else
         echo "Starting Wired Controller #$i"
         if [ $(whoami) = $USER ]; then
            $DRV --wid $i $ARGS &
            echo $! > /tmp/.$DRV.WD.$i.pid
         else
            su - $USER -c "$DRV --id $i $ARGS & echo \$! > /tmp/.$DRV.WD.$i.pid"
            bg=$(</tmp/.$DRV.WD.$i.pid)
         fi
      fi
   done
}
 
# stop
stop() {
   for i in ${WIRELESS[@]}
   do
      ps -p `cat /tmp/.$DRV.WS.$i.pid` >& /dev/null
      if [ $? = 0 ];then
         echo "Stopping Wireless Controller #$i"
         if [ $(whoami) = $USER ]; then
            kill -9 `cat /tmp/.$DRV.WS.$i.pid`  >& /dev/null
         else
            su - $USER -c "kill -9 $PID  >& /dev/null"
         fi
      else
         echo "Wireless Controller #$i is not running"
      fi
   done
 
   for i in ${WIRED[@]}
   do
      ps -p `cat /tmp/.$DRV.WD.$i.pid` >& /dev/null
      if [ $? = 0 ];then
         echo "Stopping Wired Controller #$i"
         if [ $(whoami) = $USER ]; then
            kill -9 `cat /tmp/.$DRV.WD.$i.pid`  >& /dev/null
         else
            su - $USER -c "kill -9 $PID  >& /dev/null"
         fi
      else
         echo "Wired Controller #$i is not running"
      fi
   done
}
 
# status
status() {
   for i in ${WIRELESS[@]}
   do
      ps -p `cat /tmp/.$DRV.WS.$i.pid` >& /dev/null
      if [ $? = 0 ];then
         echo "Wireless Controller #$i is running"
      else
         echo "Wireless Controller #$i is not running"
      fi
   done
 
   for i in ${WIRED[@]}
   do
      ps -p `cat /tmp/.$DRV.WD.$i.pid` >& /dev/null
      if [ $? = 0 ];then
         echo "Wired Controller #$i is running"
      else
         echo "Wired Controller #$i is not running"
      fi
   done
}
 
function usage()
{
    echo "USAGE: "
    echo "    xboxdrv-rc [start|stop|restart|status] [OPTIONS]"
    echo
    echo "OPTIONS:"
    echo "    -k [FILE], --keymap-file [FILE]"
    echo "          Provide an alternate xboxdrv key file to use"
    echo "          Full path to the file must be provided"
    echo
    echo "    -x [XD-OPTS], --xboxdrv-opts [XD-OPTS]"
    echo "          Provide inline xboxdrv options. Options provided have to be enclosed in quotes"
    echo "          Please refer to the xboxdrv man page for options"
    echo
    echo "    -h, --help"
    echo "          Print this usage information"
    echo
    echo "EXAMPLES:"
    echo "    xboxdrv-rc start"
    echo "    xboxdrv-rc restart --xboxdrv-opts \"--ui-buttonmap guide=key::KEY_ESC:2000\""
    echo "    xboxdrv-rc start   --keymap-file /home/xbmc/zsnes.xboxdrv --xboxdrv-opts \"--ui-buttonmap guide=key::KEY_ESC:2000\""
    echo
}
 
### main logic ###
 
# Create Wireless PID files
for i in ${WIRELESS[@]}; do ( touch /tmp/.$DRV.WS.$i.pid && chown $USER:$GROUP /tmp/.$DRV.WS.$i.pid ); done
 
# Create Wired PID files
for i in ${WIRED[@]}; do ( touch /tmp/.$DRV.WD.$i.pid && chown $USER:$GROUP /tmp/.$DRV.WD.$i.pid ); done
 
# Get user input
PARAMS=`getopt -o "k:x:h" -l "keymap-file:,xboxdrv-opts:,help"  -- "$@"`
 
# If no input is provided echo usage statement
if [ $? -ne 0 ]; then
   usage
   exit 1
fi
 
# A little magic
eval set -- "$PARAMS"
 
# Go through all the options
while true;
do
  case "$1" in
    # The keymap-file parameter
    # Check if the file exists - print an error message and exit if it doesnt
    -k|--keymap-file)
      if [ -n "$2" ]; then
        KEYMAP_FILE="$2"
        if [ ! -f $KEYMAP_FILE ];then
           echo Error: Invalid keymap file $KEYMAP_FILE specified.
           echo "       Ensure the file exists and provide the absolute path." && echo
           usage
           exit 1
        fi
      fi
      shift 2
    ;;
 
    # The xboxdrv options parameter
    # Cant check this - if the input is bad we'll have to wait for the error from xboxdrv
    -x|--xboxdrv-opts)
      if [ -n "$2" ]; then
        XD_OPTIONS="$2"
      fi
      shift 2
    ;;
 
    # Help parameter
    # Calls the usage function and exits
    -h|--help)
       usage
           exit 0
    ;;
 
    --)
       shift
       break
    ;;
  esac
done
 
# Set Argument Variable
set_args
 
# Call action function based on user input
case "$1" in
   start)
      start
   ;;
   stop)
      stop
   ;;
   status)
      status
   ;;
   restart|reload)
      stop
      sleep 1
      start
   ;;
   *)
      echo "Error: Invalid arguments or no arguments provided" && echo
      usage
 
      exit 1
   ;;
esac
 
exit 0


sudo chmod +x /etc/init.d/xboxdrv-rc
sudo update-rc.d xboxdrv-rc defaults
sudo reboot

Jetzt noch in XBMC unter Settings –> System –> Input devices die Option Enable joystick and gamepad support aktivieren und der Controller kann genutzt werden.

ToDos

Folgende Änderungen sind noch wünschenswert:
Während Steam läuft den automatischen Neustart von XBMC temporär deaktivieren um XBMC schließen zu können
Nutzung des XPad Kernel Treibers

Fazit

Das System lässt sich komplett über den XBox 360 Wireless Controller bedienen und verwalten.
Jetzt steht einem ein durchgehender Genuss von Filmen, Musik und Spielen zur Verfügung.
Ich bin gespannt wie sich das Setup die nächsten Wochen machen wird und wie die Herrin des Hauses es akzeptiert.

Anhang

Weitere Informationen, Referenzen und veraltete Bereiche

Steam Launcher und automatischer XBMC Neustart

Um alle Ressourcen des HTPC nutzen zu können, war meine Idealvorstellung, dass sich XBMC schließt wenn Steam gestartet,
und XBMC wieder startet sobald Steam geschlossen wird.
In dem hier beschriebenen Szenario wird Upstart genutzt um XBMC bei einem Crash automatisch neu starten zu lassen.
Damit XBMC nicht startet während Steam läuft, habe ich versucht das vom Steam Launcher mitgebrachte Script anzupassen und den Upstart Job
in dem Script zu beenden und wieder starten zu lassen. Leider hat der Upstart Job den ganzen XBMC Prozess beendet,
und da das Steam Launcher Script ein Subprozess vom XBMC Prozess ist, auch dieses. Bisher habe ich nicht herausgefunden
wie das Steam Launcher Script es schafft, XBMC zu schließen (was eigentlich dafür sorgen sollte, dass auch das Script beendet wird),
zu warten bis Steam geschlossen wird, und dann XBMC wieder zu starten.

XPad Treiber (veraltet)

Der Linuxkernel bringt mit XPad einen XBox 360 Treiber mit.
Valve hat allerdings in seinem SteamOS einen modifizierten XPad Treiber integriert in dem einige Fehler, wie das ewige Blinken der Start Taste auf dem Controller, behoben wurden.
Für die einfache Installation dieses Treibers unter Ubuntu hat Marc Deslauriers auf Launchpad ein Repository angelegt.

sudo add-apt-repository ppa:mdeslaur/steamos && sudo apt-get update && sudo apt-get install steamos-xpad-dkms

Schwarzer Bildschirm nach Start

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX den Befehl 'nomodeset' entfernen

sudo update-grub

Changelog

Der Guide wird von Zeit zu Zeit aktualisiert um alle neue Erfahrungen einzubringen.

1.1 (2014-06-14)

  • Fix: Vorhandenen XBMC Autostart anpassen: sed Zeilennummern waren falsch
  • Fix: Vorhandenen XBMC Autostart anpassen: XBMC hat sich nicht nach Openbox gestartet
  • Fix: Original /etc/environment wiederherstellen
  • Hinweis hinzugefügt: Bootsektor wird immer nach /dev/sda geschrieben
  • Hinweis hinzugefügt: XBMC startet wegen nomodeset nicht
  • Änderung: Openbox Autostart wartet nicht auf Netzwerk sondern XBMC Autostart
  • Änderung: xbmc-ubuntuniversal-minimal-installer.sh für den Benutzer xbmc verfügbar gemacht

Referenzen

linux/htpc.txt · Zuletzt geändert: 2014/06/15 18:23 von Madic