Synergy ( is a free and open source software that allows multiple computers to share a mouse and keyboard. If your Raspberry Pi is connected to the network somehow (via Ethernet or WiFi), you can setup your Raspberry Pi as a Synergy client.
Synergy ( is a free and open source software that allows multiple computers to share a mouse and keyboard. If your Raspberry Pi is connected to the network somehow (via Ethernet or WiFi), you can setup your Raspberry Pi as a Synergy client.
Last updated on 2013-12-11 11:45:30 AM EST 2 3 4 5 8 Guide Contents Guide Contents Intro: What is Synergy? Setting up a Synergy Server Compiling Synergy for Raspbian Setup Synergy Client Autostart Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 2 of 9 Intro: What is Synergy? Synergy (http://adafru.it/d1c) is a free and open source software that allows multiple computers to share a mouse and keyboard. One of the computers that the keyboard and mouse is connected to becomes a Synergy server. The other computers becomes Synergy clients. All of this is done over the network. So if your Raspberry Pi is connected to the network somehow (via Ethernet or WiFi), you can setup your Raspberry Pi as a Synergy client so you can remotely control your Raspberry Pi from another computer. Other ways of remote controlling the Raspberry Pi are VNC (http://adafru.it/d1d) and SSH (http://adafru.it/cag). VNC requires transmitting large amounts of data because it involves transmitting screen images, thus it is slower than Synergy over a slow network. SSH is great for command line work but not for a GUI environment. Synergy requires very little data but it does mean that the Raspberry Pi needs to be connected to a computer monitor. You can also use the Raspberry Pi as a Synergy server, but this is not recommended. One reason is that Synergy isn't perfect, certain keys or special keys do not work. Some keyboards and mice have special functions that require special drivers, which Synergy and Linux might have trouble supporting. Although a version of Synergy compiled for ARM (Raspberry Pi uses ARMv6) is available through Raspbian's package manager, it is not the latest version of Synergy. Existing users of Synergy may have updated their server installation. The protocol changes between different versions of Synergy means that you must run the same version of the client and server. Thus, we must recompile Synergy from the source code on the Raspberry Pi.
Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 3 of 9 Setting up a Synergy Server You should first install Synergy on your main computer. Simply download it from Synergy's website (http://adafru.it/d1e), select the one appropriate for your operating system. Install it as normal. Check out Synergy's help page (http://adafru.it/d1f). Before starting the server, configure the server to accept connections from a computer named "pi". Configure the hot-corners or hot-keys as you desire.
Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 4 of 9 Compiling Synergy for Raspbian Although you can get Synergy through the package manager, it is an older version that may be incompatible with newer Synergy server versions. We are forced to compile Synergy ourselves to ensure that it is using the latest protocol and runs on Raspberry Pi's ARMv6 processor. Download the source code tarball from Synergy's download page, it must be the .tar.gz file. Save it to /home/pi/downloads (make sure that folder exists first) Download Download Synergy 1.4.15 Synergy 1.4.15 Beta Source Code Beta Source Code Tarball Tarball http://adafru.it/d1g Alternatively, use wget (http://adafru.it/d1h) through the terminal Extract the tarball (http://adafru.it/d1i) Raspbian does not come with some of the tools you might need, use the APT (http://adafru.it/d1j) package manager to install the required tools. The following command will take some time and eat up some disk space. Navigate into the source code directory Right now, what you should be doing is running cmake (http://adafru.it/d1k), which should generate a makefile. But at this point, cmake will fail with an error regarding not being able to find some header files. An error like "Missing header: X11/Xlib.hX11/XKBlib.h" might show up. This is because Synergy's CMakeList.txt file is looking for header files inside /usr/local/include , but in Raspbian, it should be looking inside /usr/include. We'll fix that by editing CMakeList.txt. cd /home/pi/downloads sudo wget http://synergy.googlecode.com/files/synergy-1.4.15-Source.tar.gz sudo tar -xzf synergy-1.4.15-Source.tar.gz sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install gcc cmake libx11-dev libxtst-dev cd synergy-1.4.15-Source Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 5 of 9 Use the nano text editor (http://adafru.it/d1l) to look for the line and change it to and close nano, the hot-key for closing nano should be CTRL-X It will ask you to save before closing, you must save it Inside the directory synergy-1.4.15-Source/tools , there is a zip file called cryptopp562.zip containing the Crypto++ library (http://adafru.it/d1m), which you must extract into the directory synergy-1.4.15-Source/tools/cryptopp562 , if you don't do this, you will eventually run into an error looking for the files inside. Do this from the terminal There's a bit of strangeness inside the synergy-1.4.15-Source/tools/CMakeList.txt file, it wants the C compiler to compile for the native architecture, but this will cause an error when the compiler doesn't understand what the word native means. We need to change this to ARMv6 since we are on a Raspberry Pi. Open the file using nano Look for the line and edit it to and close nano, the hot-key for closing nano should be CTRL-X It will ask you to save before closing, you must save it We have now done all of the steps to preemptively prevent the errors you will face. sudo nano CMakeList.txt set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/local/include") set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/include") sudo unzip ./tools/cryptopp562.zip -d ./tools/cryptopp562 sudo nano ./tools/CMakeList.txt set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv6zk") Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 6 of 9 Now we can use cmake to configure our makefile build This will take a while... grab a coffee. After it finishes, it should say: What it did was check over your system to see if you have all of the required files, and see what kind of tools are available. It uses this information to generate a makefile for you. Now you can use make (http://adafru.it/d1n) to build the source code according to the makefile This time, nuke some popcorn and watch a movie, this literally took a few hours. Nobody claimed that the 700MHz Raspberry Pi was very fast. When it finishes with no errors, a new directory at synergy-1.4.15-Source/bin should exist, and inside should be several executables files. Install these by using the copy command to copy the files into the /usr/bin directory
sudo cmake . -- Configuring done -- Generating done -- Build files have been written to: /home/pi/download/synergy-1.4.15-Source sudo make sudo cp -a ./bin/. /usr/bin Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 7 of 9 Setup Synergy Client Autostart Now you've compiled and installed Synergy for the Raspberry Pi, you probably want it to start right away whenever you start the LXDE (http://adafru.it/d1o). You need to create an autostart file for LXDE, or add to it if it already exists, do the following through the terminal This will open the autostart file, add the following line to the bottom of the file What this does is start the script named .startsynergy.sh whenever LXDE starts We need to write the .startsynergy.sh script, again, open the file using nano The script contents should be Change the IP above to whatever your Synergy server's IP is! Close nano, the hot-key for closing nano should be CTRL-X It will ask you to save before closing, you must save it Now we need to make sure the script has permission to execute, use the chmod (http://adafru.it/d1p) command sudo mkdir -p ~/.config/lxsession/LXDE sudo touch ~/.config/lxsession/LXDE/autostart sudo nano ~/.config/lxsession/LXDE/autostart ~/.startsynergy.sh sudo nano ~/.startsynergy.sh #!/bin/bash killall synergyc sleep 1 synergyc --name pi 192.168.0.16 exit 0 sudo chmod 777 ~/.startsynergy.sh Adafruit Industries http://learn.adafruit.com/synergy-on-raspberry-pi Page 8 of 9 and you are pretty much done, make sure the Synergy server is running, and reboot the Raspberry Pi. When LXDE starts again, the Raspberry Pi becomes a Synergy client and connect with the Synergy server automatically.
Adafruit Industries Last Updated: 2013-12-11 11:45:31 AM EST Page 9 of 9