April 28, 2012

Remote BeagleBone GUI with Squeak and VNC

In my last post, I gave a brief demonstration of installing and using Squeak smalltalk on the BeagleBone.  In this post, I'd like to show you how to install VNC and configure the BeagleBone to automatically start Squeak on boot.  Squeak has a native smalltalk VNC client and server available, which gives you the ability to leave your graphical environment running after disconnecting from the BeagleBone.  By adding Squeak to the boot process, the programs we write will be automatically started and our development environment will always be available.


* If you don't have a working X11 desktop or just want to try the example from the previous demo using VNC, you can download a VNC enabled Squeak image here and skip the first step.  The default password is "beagle" (without the quotes).



Step 1: Install VNC in Squeak

Login to your BeagleBone using ssh and start Squeak as demonstrated in my previous post.  Once Squeak is running you can follow along with this video:

  




Step 2: Configure Squeak as a service

Now that the Squeak image has been prepared for VNC access, we can add it to Systemd so it will be started as a service.  Run the following commands from the BeagleBone CLI as root:

cd /lib/systemd/system
wget http://unthinkable.org/dl/squeak.service

Next we will configure the Squeak service to automatically start at boot time:

systemctl enable squeak.service

We can also start it on our currently running system:

systemctl start squeak.service



Step 3: Connect with a VNC client

The Squeak VNC server will now be running on your BeagleBone and you can connect with a VNC client.  I normally use the 2.0 release of cotvnc on OS X, but for this next demo I'll use Vinagre, which is installed by default on Ubuntu Linux:




VNC doesn't allow us to resize the remote GUI, but we can use the following procedure to resize with X11:
  1. save and quit from the VNC session
  2. login to the BeagleBone via ssh with X11 forwarding
  3. start Squeak as demonstrated in my previous post
  4. resize the GUI to the preferred dimensions
  5. save and quit
  6. run "systemctl start squeak.service" from the CLI to restart Squeak as a service

No comments:

Post a Comment