Compartir mouse/teclado en Raspberry Pi con Synergy

Synergy es un software libre y de código abierto que permite a múltiples ordenadores compartir un ratón y un teclado. Uno de los equipos en donde se conecta el ratón y el teclado se convierte en servidor de Synergy. Los otros equipos se convierten en clientes de Synergy. Todo esto se hace en red. Así que si tu Raspberry Pi está conectado a la red de alguna manera (a través de Ethernet o Wi-Fi), puedes configurar tu Raspberry Pi como un cliente de Synergy para que puedas controlar de forma remota tu Raspberry Pi desde otro equipo.

También puedes utilizar tu Raspberry Pi como un servidor de Synergy, pero esto no es recomendable. Una razón es que Synergy no es perfecto, ciertas teclas o teclas especiales no funcionan. Algunos teclados y ratones tienen funciones especiales que requieren controladores especiales, que Synergy y Linux podrían no soportar.

Aunque una versión de Synergy compilada para ARM (Raspberry Pi utiliza ARMv6) está disponible a través del gestor de paquetes de Raspbian, no es la versión más reciente de Synergy. Los usuarios existentes de la Synergy pueden haber actualizado su instalación de servidor. Los cambios de protocolo entre las diferentes versiones de Synergy significa que se debe ejecutar la misma versión del cliente y servidor. Por lo tanto, hay que recompilar Synergy desde el código fuente en el Raspberry Pi.

Configuración de un servidor de Synergy

Tú debes instalar primero Synergy en el equipo principal. Sólo tienes que descargar la última versión desde el sitio web de Synergy, selecciona el que corresponda a tu sistema operativo. Instalarlo como normal. Echa un vistazo a la página de ayuda de Synergy. Antes de iniciar el servidor, configura el servidor para aceptar conexiones de un equipo llamado “pi”.

Configura los hot-keys (teclas de acceso rápido) como desees.

Synergy en Windows

Compilación de Synergy para Raspbian

Aunque puedes conseguir Synergy a través del gestor de paquetes, es una versión más antigua que puede ser incompatible con las versiones de servidor de Synergy más nuevas. Nos vemos obligados a compilar Synergy nosotros mismos para asegurarnos de que se está utilizando el último protocolo y que puede ser capaz de correr en el procesador de Raspberry Pi ARMv6.

Descarga el archivo de código fuente de la página de descarga de Synergy, debe ser el archivo tar.gz. Guárdalo en /home/pi/downloads (asegúrate de que existe la carpeta primero)

[button style=”download” link=”http://synergy-project.org/download/?list”]Descargar última versión del código fuente de Synergy[/button]

Podemos usar alternativamente wget a través de la terminal para crear el directorio y descargar el archivo:

cd
mkdir downloads
cd downloads
sudo wget -O synergy-1.5.0-r2278-Source.tar.gz http://synergy-project.org/files/packages/synergy-1.5.0-r2278-Source.tar.gz

Extraemos el archivo .tar

sudo tar -xzf synergy-1.5.0-r2278-Source.tar.gz

Raspbian no viene con algunas de las herramientas necesarias para el proceso, utiliza el gestor de paquetes APT para instalar las herramientas necesarias. El siguiente comando tomará algún tiempo y comerá algo de espacio en disco.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y gcc cmake libx11-dev libxtst-dev curl libcurl4-openssl-dev

Navega hacia el directorio del código fuente

cd synergy-1.5.0-Source/

Para poder compilar correctamente Synergy en Raspberry Pi, se deben realizar algunos cambios en el archivo CMakeList.txt.

sudo nano CMakeList.txt

Utiliza el editor de texto nano para buscar la siguiente línea:

set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/local/include")

Y reemplaza con:

set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/include")

para cerrar nano utiliza CTRL-X, y luego confirma guardar cambios.

Luego extrae estos archivos en sus respectivos directorios:

sudo unzip ./ext/cryptopp562.zip -d ./ext/cryptopp562
sudo unzip ./ext/gmock-1.6.0.zip -d ./ext/gmock-1.6.0
sudo unzip ./ext/gtest-1.6.0.zip -d ./ext/gtest-1.6.0

Hemos realizado todos estos pasos para evitar los errores que se generan al compilar los archivos por defecto. Ahora podemos usar cmake para configurar nuestro makefile.

sudo cmake .

Esto tomará algún tiempo … Después de que finalice, saldrá esto:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/download/synergy-1.5.0-Source

Aquí se  comprueban  todos los archivos necesarios, y las herramientas que están disponibles. Utiliza esta información para generar un makefile

sudo make

Esta vez se tardará un par de horas, así que tomate un café o mira un película mientras tanto. Cuando finaliza sin errores, debe existir un nuevo directorio en synergy-1.5.0-Source/bin, y en el interior debe haber varios archivos ejecutables. Estos se instalan mediante el comando copy para copiar los archivos en el directorio /usr/bin

sudo cp -a ./bin/. /usr/bin

Configuración de Cliente de Synergy para autoinicio

Ahora que se ha compilado e instalado Synergy para Raspberry Pi, es probable que se desee que se inicie de inmediato cada vez que inicie el LXDE.

Es necesario crear un archivo de inicio automático para LXDE, o agregar el comando si este ya existe, haz lo siguiente a través de la terminal

sudo mkdir -p ~/.config/lxsession/LXDE
sudo touch ~/.config/lxsession/LXDE/autostart
sudo nano ~/.config/lxsession/LXDE/autostart

Esto abrirá el archivo de inicio automático, agrega la siguiente línea al final del archivo

~/.startsynergy.sh

Lo que esto hace es iniciar el script llamado .startsynergy.sh siempre que comienza LXDE

Tenemos que escribir el script .startsynergy.sh, de nuevo, abre el archivo con nano

sudo nano ~/.startsynergy.sh

El contenido del script deben ser este

#!/bin/bash
 
killall synergyc
sleep 1
synergyc --name pi 192.168.0.16
exit 0

Cambia la IP anterior con la dirección de IP de tu servidor de Synergy!

Cierra nano con CTRL-X y guarda los cambios.

Ahora tenemos que asegurarnos de que el script tiene permiso de ejecutarse, utiliza el comando chmod

sudo chmod 777 ~/.startsynergy.sh

y está casi terminado, asegúrate de que el servidor de Synergy se está ejecutando, y reinicia tu Raspberry Pi, puedes usar el siguiente comando:

sudo reboot

Cuando LXDE se inicia de nuevo, el Raspberry Pi se convierte en un cliente de Synergy y conecta con el servidor de Synergy automáticamente :).