¿Cansado de mover tu ordenador cada vez que quieres utilizar GIMX?
Te contamos como puedes aprovechar tu Raspberry Pi para ahorrártelo.
Ya has conseguido utilizar por medio de GIMX tus controladores obsoletos en tu nueva videoconsola siguiendo nuestro anterior post o con nuestro adaptador ya listo para usar, pero cada vez que quieres echar una partida tienes que mover tu ordenador portátil, o lo que es peor, tu ordenador de sobremesa.
Como te contamos en el post de introducción a GIMX, se trata de un software libre disponible tanto para Windows como para Linux, y como también sabes de nuestro post sobre Raspberry, Raspbian no es más ni menos que una distribución basada en Linux Debian. ¿Ya ves por dónde van los tiros?
Instalando GIMX en Raspbian
Para empezar, comentaros que GIMX no necesita muchos recursos para funcionar correctamente, por tanto podremos utilizar cualquier modelo de Raspberry Pi (Zero, A, B, B+, 2, 3) para ejecutar GIMX.
En caso de querer utilizar el adaptador USB personalizado que creamos en el post anterior (Veremos más adelante que hay una forma de ahorrarnos ese puerto) y querer emular un volante en Playstation4, vas a necesitar al menos 3 puertos USB (Volante+DualShock4+Adaptador USB) por lo que, a no ser que tengas un HUB USB alimentado, te recomendamos utilizar los modelos de Raspberry Pi B+, 2 o 3 por la cantidad de puertos disponibles.
Vamos a partir de una instalación limpia de Raspbian Lite y, una vez instalado, entraremos en la Raspberry por medio de la terminal SSH para instalar y configurar los paquetes necesarios.
Recuerda que para esto necesitarás un cliente SSH como PuTTy, aunque en este caso te recomendamos MobaXterm ya que integra un XServer que nos permitirá acceder de forma gráfica tanto al GIMX Launcher como al GIMX Config.
El proceso de instalación de GIMX en Raspbian se encuentra detallado en la Wiki del desarrollador en este enlace, nosotros vamos a resumirte los pasos mínimos necesarios.
Una vez logado en Raspbian por SSH, vamos a comenzar instalando la versión del Kernel Linux verificada por la comunidad ejecutando los siguientes comandos y reiniciando el sistema:
sudo apt-get install rpi-update
sudo rpi-update 771a503cfc2a1130e2df2a4ddfc45ffa0f592b3f
sudo reboot
Cuando inicie el sistema de nuevo, deberías encontrarte con la versión 4.1.21 del Kernel.
Puedes comprobarlo con el comando uname:
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 4.1.21+ #873 Mon Apr 11 18:00:37 BST 2016 armv6l GNU/Linux
Para configurar y ejecutar de una forma más cómoda GIMX, vamos a instalar en Raspbian los paquetes XORG que nos permitirán abrir ventanas de la Raspberry Pi en nuestro ordenador, aprovechando el XServer integrado del MobaXterm.
Para ello, ejecutamos el siguiente comando y esperamos a que finalice la instalación:
sudo apt-get update
sudo apt-get -y install xorg lightdm xfce4 tango-icon-theme gnome-icon-theme
Ahora, procedemos con la instalación del software GIMX propiamente dicha.
Para ello, descargaremos el paquete gimx.deb y lo instalamos ejecutando los siguientes comandos:
wget https://gimx.fr/download/gimx-raspbian -O gimx.deb
sudo dpkg -i gimx.deb
sudo apt-get -f install
En el caso de que te encuentres específicamente (Podría haber otros) con un error del tipo «Dependency is not satisfiable: …» actualiza todos los paquetes de Raspbian a su ultima versión y vuelve a intentarlo:
sudo apt-get upgrade
sudo apt-get -f install
Con el fin de ahorrar recursos en nuestra Raspberry y que ésta pueda centrarse en la ejecución de GIMX, es recomendable detener y deshabilitar el servicio TriggerHappy, habilitado por defecto en Raspbian.
Ejecutaremos los siguientes comandos para este fin:
sudo service triggerhappy stop
sudo update-rc.d triggerhappy disable
A partir de este momento, ya podrías utilizar GIMX en tu Raspberry Pi de la misma forma que comentamos en el post anterior pero ejecutando manualmente el comando gimx-launcher a través de una sesión SSH. Una vez ejecutado, pasados unos segundos, el cliente SSH MobaXterm nos mostrará la ventana principal de GIMX que ya conocemos.
Descarga la configuración GIMX que necesites a través del GIMX Launcher, personalízala si quieres a través del GIMX Config (comando gimx-config), conecta todos los dispositivos a la Raspberry Pi y el adaptador USB a tu Playstation4. ¡Listo!
Automatizando GIMX a modo Plug and Play
Ya no necesitas tu ordenador para ejecutar GIMX, al menos no tienes que moverlo de sitio, pero cada vez que quieras utilizarlo debes conectarte a la Raspberry y ejecutar GIMX manualmente.
Es posible configurar GIMX como un servicio en nuestra Raspberry Pi y hacer que se ejecute automáticamente durante el arranque del sistema una vez tengamos la configuración inicial realizada. Esto evita que tengamos que iniciarlo manualmente desde la terminal cada vez que queramos usarlo.
Para configurar GIMX como servicio, una vez tengamos la configuración descargada y personalizada, debemos crear un fichero de texto llamado gimx.service donde vamos a indicarle a GIMX qué configuración utilizar y en que puerto está conectado nuestro ATMEGA32U4 con el firmware cargado.
Para crear este fichero de texto llamado gimx.service, ejecutamos el siguiente comando:
sudo nano /etc/systemd/system/gimx.service
Se nos abrirá nano, un editor de texto presente en prácticamente todas las distribuciones Linux y, en él, debemos pegar el siguiente contenido:
[Unit]
Description=GIMX
After=syslog.target network.target[Service]
User=pi
Type=simple
ExecStart=/usr/bin/gimx -p /dev/ttyUSB0 -c LogitechDrivingForceGT_G29.xml –nograb
Restart=always
RestartSec=5[Install]
WantedBy=multi-user.target
Para aplicar el cambio anterior a nivel de Raspbian, es necesario ejecutar los siguientes comandos para recargar la configuración:
sudo systemctl daemon-reload
sudo systemctl enable gimx && sudo systemctl start gimx
El fichero anterior le indica a GIMX que debe hacer uso de la configuración LogitechDrivingForceGT_G29.xml para utilizar el volante Logitech Driving Force GT como si fuese un Logitech G29.
Si en tu caso quieres utilizar otra configuración, ya sea para otro dispositivo o una configuración personalizada, debemos de cambiar el nombre del fichero de configuración a utilizar de LogitechDrivingForceGT_G29.xml (Como aparece en el ejemplo anterior) al deseado.
Para tu información, el parámetro /dev/ttyUSB0 le indica a GIMX que debe de utilizar el adaptador USB para comunicarse con la videoconsola.
Este parámetro también deberás modificarlo si quieres dejar libre ese puerto USB y utilizar en su lugar la interfaz de serie UART. Te contamos también como hacerlo en el siguiente punto.
Utilizando comunicación serie a través de la interfaz UART
Supongamos que tienes una Raspberry Pi Zero o una Raspberry Pi B con sólo dos puertos USB y quieres utilizar GIMX con tu antiguo volante en Playstation4. Cuando conectes el volante y el DualShock4 ya no te quedará ningún puerto libre para el adaptador USB que necesita el software. ¿Cómo podemos solucionar esto?
La opción más sencilla es la de añadir un HUB USB con alimentación propia y compatible con Raspberry Pi. La otra opción, más barata, ya que tampoco necesitarás comprar el adaptador USB-Serie CP2102, es la de utilizar la interfaz UART de la Raspberry, así que prepara de nuevo el estañador.
Lo primero será identificar los pines GPIO correspondientes a la interfaz UART de nuestro modelo de Raspberry Pi. Para el caso del modelo B y del modelo Zero, vamos a utilizar los pines 8 y 10, los cuales corresponden a nivel de sistema operativo con los pines GPIO14 y GPIO15 respectivamente.
El primero de ellos (Pin 8/GPIO14) corresponde con el pin de transmisión de datos (Tx) y el segundo de ellos (Pin 10/GPIO15) corresponde con el pin de recepción de datos (Rx).
Échale un vistazo a la siguiente imagen para verlo gráficamente:
Lo primero que se nos viene a la cabeza sabiendo esto es que deberíamos conectar el pin Tx del microcontrolador ATMEGA32U4 con el pin Rx de Raspberry Pi y el pin Rx del ATMEGA32U4 con el pin Tx de Raspberry Pi para establecer la comunicación entre ambos dispositivos. Pues bien, esta conexión directa dañaría nuestra Raspberry ya que la placa ATMEGA32U4 trabaja a 5 voltios mientras que estos pines de la Raspberry lo hacen a 3,3 voltios.
Para abordar este problema, la solución más sencilla pasa por montar un divisor de tensión entre el pin Tx del ATMEGA32U4 (5v) y el pin Rx de la Raspberry Pi (3,3v) con un par de resistencias.
Vamos a utilizar un par de resistencias de 2,2kΩ y 3,3kΩ como mostramos en la siguiente imagen:
La conexión entre el pin Rx de la placa ATMEGA32U4 y el pin Tx de la Raspberry Pi puede realizarse directamente de forma segura.
Además de estas dos conexiones, es necesario soldar entre sí los pines GND de ambos componentes.
El conexionado resultante es el siguiente:
Con esto ya tendremos nuestros dos componentes conectados correctamente, dejando un puerto USB libre que podremos utilizar para otro propósito.
Para finalizar, necesitamos realizar una serie de ajustes tanto a nivel de Raspbian como en GIMX.
Deshabilitar los mensajes de la consola
Por defecto, Raspbian utiliza la interfaz UART de la Raspberry Pi como interfaz de consola serie, pudiendo interferir con el uso que queremos darle.
Para indicarle que deje libre esta interfaz, utilizaremos el menú de configuración de Raspbian raspi-config:
sudo raspi-config
Interfacing Options -> Serial -> No -> Yes -> Ok -> Finish -> Yes
Además, la configuración por defecto no permite comunicaciones UART de alta frecuencia como la que necesita GIMX para el envío y recepción de datos.
Para modificar este comportamiento, debemos modificar el fichero /boot/config.txt:
sudo nano /boot/config.txt
Añadiendo al final del fichero la siguiente línea y reiniciando la Raspberry (Comando sudo reboot) para que los cambios hagan efecto:
init_uart_clock=8000000
Ahora ya podremos seleccionar la interfaz UART manualmente en el GIMX Launcher o, si has configurado GIMX como servicio, debes modificar el fichero gimx.service para indicarle que utilice esta nueva interfaz, reemplazando el parámetro /dev/ttyUSB0 por la interfaz UART que en Raspbian es nombrada como /dev/ttyAMA0.
El fichero gimx.service quedará de la siguiente forma:
[Unit]
Description=GIMX
After=syslog.target network.target
[Service]
User=pi
Type=simple
ExecStart=/usr/bin/gimx -p /dev/ttyAMA0 -c LogitechDrivingForceGT_G29.xml –nograb
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Al igual que cuando creamos el fichero gimx.service, debemos recargar la configuración para que el sistema aplique los cambios ejecutando los siguientes comandos:
sudo systemctl daemon-reload
sudo systemctl enable gimx && sudo systemctl start gimx
Con esto acabamos los pasos necesarios para utilizar el puerto UART en lugar de un puerto USB.
Para finalizar, una recomendación general cuando trabajamos con dispositivos Raspberry Pi. Las tarjetas de memoria SD son muy sensibles a las desconexiones forzadas de alimentación, es decir, si cuando acabas de utilizar GIMX desconectas directamente la Raspberry de la corriente, puede que un día te encuentres con que ésta no vuelve a arrancar más.
Para solucionar este problema, os recomendamos las siguientes soluciones:
- Instalar Raspbian en un dispositivo de almacenamiento USB
- Crear un backup como explicamos en el post de instalación de Raspbian y, en caso de problemas en el arranque, restaurarlo.
- Apagar la Raspberry Pi de forma controlada desde una terminal SSH mediante el comando «shutdown -h now»
- Soldar un pulsador que apague el sistema a los pines GPIO de Raspberry Pi que mande el comando de apagado al sistema cuando el pulsador se active (Este paso está explicado en la Wiki de GIMX)
Al igual que para el adaptador USB que tenéis disponible en nuestra tienda, ya se encuentra disponible en la tienda nuestra propia interpretación del adaptador basado en la placa Orange Pi Zero, GIMX Box v2.
¡Conectar y listo!
¡ACTUALIZACIÓN!
Debido al lanzamiento de Gran Turismo Sport para Playstation4, Pivi ha publicado en su canal de Youtube un gameplay con su volante Logitech G27 utilizando nuestro adaptador GIMX Box.
Os dejamos el video aquí debajo y aprovechamos para agradecer a Pivi la difusión 🙂
Lo pedí el domingo y ya lo tengo en casa.
Seriedad 100%.
Todavía no lo he probado, pero tengo una duda.
Si actualizan la versión de GIMX, como debería hacerlo yo, para tenerlo en la versión mas reciente?
Por cierto, que versión trae?
Gracias, con vuestro servicio, da gusto comprar online.
Un saludo.
Hola Eric, gracias por tu comentario.
Has recibido tu GIMX Box con el software GIMX versión 6.5 (Por privado te había dicho GIMX v.6.4, disculpa la confusión).
Como hablamos, a menos que sea imprescindible alguna de las funciones que incorpora GIMX periódicamente en sus actualizaciones, no te recomendamos actualizar la versión de GIMX. En caso de que quieras probar, antes de empezar con los siguientes pasos, crea una imagen de la tarjeta SD primero a modo de copia de seguridad en tu ordenador. De esta forma, si algo sale mal, siempre puedes volver al punto de partida.
Bien, una vez conectado el GIMX Box a la alimentación y a la red por medio de un cable Ethernet, localiza su IP y accede a ella mediante SSH usando como nombre de usuario «pi» y como contraseña «orangepi«.
Una vez en la terminal, comprueba tu versión actual de GIMX ejecutando:
gimx --version
Descargamos el último paquete disponible de GIMX para Raspbian:
wget https://gimx.fr/download/gimx-raspbian -O gimx.deb
Y lo instalamos en el sistema del mismo modo que comentamos en este post:
sudo dpkg -i gimx.deb
sudo apt-get -f install
Con estos pasos ya tendrás la última versión de GIMX instalado en tu GIMX Box. Puedes comprobarlo ejecutando de nuevo:
gimx --version
Un saludo!
muchas gracias por los consejos.problema resuelto.un saludo
Buenas noches, mi gimx Box me llegó muy rápido, un viernes justo a tiempo para probarlo y disfrutar de mi volante logitech Driving Force Pro durante el fin de semana. De momento funciona a la perfección, todos los botones y el Force feedback incluido. Un poco estricto el ritual de conexión, pero a la segunda vez esta aprendiendo.Muy contento me ha hecho mucha ilusión poder recuperar mi volante en la ps4. Me gustaría saber si hay opciones de poder conectar un joystick thrumaster T flight Stick X, genuino de ps3 que también tengo, en la ps4 a través del gimx Box. Muchas gracias y saludos
Hola fjmorente. Nos alegramos de que vuelva a disfrutar de su volante en PS4.
Desafortunadamente, el adaptador GIMX Box está orientado únicamente a volantes Logitech.
Un saludo!