Guacamole is a clientless remote desktop gateway. After successful implementation of this system on some PCs, now I want to use this on a Raspberry Pi 3 B+. Following is how I do the installation on Raspbian system.
OS Version: Raspbian GNU/Linux 9 (stretch)
- Upgrade the system:
$ sudo apt-get update $ sudo apt-get upgrade
- Install the required dependencies:
$ sudo apt-get install libcairo2-dev $ sudo apt-get install libjpeg62-turbo-dev $ sudo apt-get install libpng12-dev $ sudo apt-get install libossp-uuid-dev
- Install the optional packages:
$ sudo apt-get install libavcodec-dev libavutil-dev libswscale-dev $ sudo apt-get install libpango1.0-dev $ sudo apt-get install libssh2-1-dev $ sudo apt-get install libtelnet-dev $ sudo apt-get install libvncserver-dev $ sudo apt-get install libpulse-dev $ sudo apt-get install libssl-dev $ sudo apt-get install libvorbis-dev $ sudo apt-get install libwebp-dev
- Download Guacamole Server and Client packages:
$ wget http://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.14.tar.gz $ wget http://sourceforge.net/projects/guacamole/files/current/source/guacamole-client-0.9.14.tar.gz
- Build and install the server:
$ tar xzf guacamole-server-0.9.14.tar.gz $ cd guacamole-server-0.9.14 $ ./configure --with-init-dir=/etc/init.d $ make $ sudo make install $ sudo update-rc.d guacd defaults $ sudo ldconfig
- Build the client:
$ sudo apt-get install maven $ tar xzf guacamole-client-0.9.14.tar.gz $ cd guacamole-client-0.9.14 $ mvn package
- Install jetty9 servlet container:
$ sudo apt-get install jetty9
- Deploy Guacamole:
$ sudo cp guacamole/target/guacamole-0.9.14.war /var/lib/jetty9/webapps/guacamole.war $ sudo mkdir -p /etc/guacamole/extensions $ sudo cp extensions/guacamole-auth-noauth/target/guacamole-auth-noauth-0.9.14.jar /etc/guacamole/extensions/.
- Copy following text and save it as “/etc/guacamole/guacamole.properties”
# Guacamole - Clientless Remote Desktop # Copyright (C) 2010 Michael Jumper # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # Hostname and port of guacamole proxy guacd-hostname: localhost guacd-port: 4822 # Auth provider class (authenticates user/pass combination, needed if using the provided login screen) auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider basic-user-mapping: /etc/guacamole/user-mapping.xml # NoAuth properties noauth-config: /etc/guacamole/noauth-config.xml
- Copy following text and save it as “/etc/guacamole/noauth-config.xml”
<configs> <config name="pi" protocol="vnc"> <param name="hostname" value="localhost" /> <param name="port" value="5900" /> </config> </configs>
- Copy following text and save it as “/etc/guacamole/user-mapping.xml”. The password is “raspberry”.
<user-mapping> <authorize username="pi" password="b89749505e144b564adfe3ea8fc394aa" encoding="md5"> <connection name="pi"> <protocol>vnc</protocol> <param name="hostname">localhost</param> <param name="port">5900</param> <param name="swap-red-blue">false</param> <param name="enable-audio">true</param> </connection> </authorize> </user-mapping>
- Install x11vnc VNC-Server:
$ sudo apt-get install x11vnc
- Copy following text and save it as “~/.config/autostart/x11vnc.desktop”
[Desktop Entry] Name=X11 VNC Comment=Remotedesktop Server Exec=x11vnc -forever -nopw -rfbport 5900 -display :0 Terminal=false Type=Application X-MATE-Autostart-enabled=true Comment[de_DE]=Remotedesktop Server
- Restart Raspberry Pi:
$ sudo reboot
At this point guacamole should be automatically started at system boot. You can try to open it from a web-browser, the address is “<ip-address>:<port>/guacamole”. On my network it looks like this “192.168.178.100:8080/guacamole”.
In case you use headless system (Raspberry Pi without display attached) and you have poor display resolution, you can set the parameters in “/boot/config.txt” from this:
#framebuffer_width=1280 #framebuffer_height=720 #hdmi_force_hotplug=1
to this (for full HD resolution):
framebuffer_width=1920 framebuffer_height=1080 hdmi_force_hotplug=1
Restart the system and that’s it. Have fun!
Reference: http://www.m-opensolutions.com/?p=936