Voy a intentar resumir los pasos que he dado para llevar a cabo la configuración de RetroPie junto con Kodi en Kodibuntu.
Me basé en el turorial de este post:
Crear un nuevo usuario para ejecutar retropie
sudo adduser retropie
Iniciar como usuario retropie
su retropie
Instalar RetroPie
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
sudo ./retropie_setup.sh
Una vez en el instalador ejecutar basic-install y esperar. Va a descargar el código y compilarlo. Este proceso tarda bastante.
Para poder ejecutar RetroPie, lo vamos a hacer sobre OpenBox.
Instalamos:
sudo apt-get install openbox
Configuramos OpenBox para ejecutar RetroPie al iniciar sesión:
mkdir -P .config/openbox
cd .config/openbox
vi autostart.sh
Dentro de autostart.sh:
#!/bin/bash
xsetroot -solid black &
gnome-terminal -e emulationstation &
/usr/local/bin/SwitchToKodi.sh &
Hacemos el script ejecutable:
chmod +x autostart.sh
Lanzamos emulation station sobre gnome-terminal ya que RetroPie muestra menus y solicita contraseña a través de tty Este script, una vez terminado emulationstation ejecutará /usr/local/bin/SwitchToKodi.sh que pasaremos a configurar:
sudo vi /usr/local/bin/SwitchToKodi.sh
Y su contenido:
#!/bin/bash
until [[ $(pidof emulationstation) ]] ; do
sleep 1
done
while [[ $(pidof emulationstation) ]] ; do
sleep 1
done
dm-tool switch-to-user kodi Kodi
until [[ $(pidof kodi.bin) ]] ; do
sleep 1
done
pkill -KILL -u retropie
Aquí usamos dm-tool para cambiar la sesión de usuario a kodi. Una vez abierta, matamos los procesos del usuario retropie.
También tenemos que generar el fichero /usr/local/bin/SwitchToRetroPie.sh para lanzar RetroPie desde Kodi:
sudo vi /usr/local/bin/SwitchToRetroPie.sh
Y su contenido:
#!/bin/bash
dm-tool switch-to-user retropie RetroPie
until [[ $(pidof openbox) ]] ; do
sleep 1
done
pkill -KILL -u kodi
Igual que al lanzar Kodi, este script cambia la sesión de usuario a retropie y cuando está lista mata los procesos del usuario kodi.
Estos dos nuevos scripts los tenemos que hacer ejecutables:
sudo chmod +x /usr/local/bin/SwitchTo*
Para que esto funcione tenemos que crear una nueva sesión de lightdm para RetroPie
sudo vi /usr/share/xsessions/retropie.desktop
Contenido de retropie.desktop:
[Desktop Entry]
Name=RetroPie
Comment=Log in using the Openbox window manager
Exec=/usr/bin/openbox-session
TryExec=/usr/bin/openbox-session
Icon=openbox
Type=Application
Tambien tenemos que hacer que LightDM no requiera contraseña modificando el fichero /etc/lightdm/lightdm.conf
[SeatDefaults]
xserver-command=/usr/bin/X -bs -nolisten tcp
pam-service=lightdm-autologin
autologin-user=kodi
autologin-user-timeout=0
user-session=kodi
greeter-session=lightdm-gtk-greeter
allow-guest=false
default-user=kodi
Y también que RetroPie no nos pida permisos de root cada dos por tres. Ejecutamos sudo visudo y añadimos al final:
retropie ALL=(ALL) NOPASSWD:ALL
Por último y para poder lanzar ReetroPie desde Kodi, añadimos un favorito de la siguiente manera:
su kodi
vi .kodi/userdata/favourites.xml
Y lo dejamos así en caso de no tener más favoritos
<favourites>
<favourite name="RetroPie">System.ExecWait("/usr/local/bin/SwitchToRetroPie.sh")</favourite>
</favourites>
Reiniciamos y en kodi lanzamos el favorito RetroPie. Si todo va bien deberiamos ver emulationstation.