October 15th, 2008 |
Sugar on LTSP Ubuntu Intrepid Ibex with ejabberd and collaboration
With the announcement that the Sugar packages were finally up to date in Ubuntu, it was time to try something I've been wanting to do for a while, run a sugar environment on Ubuntu LTSP terminals with collaboration. With the help of some sugar devs I managed to get it all working quite nicely:
Installing Sugar
The base sugar and activities all seem to work wonderfully, although at the time of writing some of the other sugar activties are not working yet. By the time Intrepid is released this will probably be fixed.
sudo apt-get install sugar sugar-activities
You can search for what other sugar activites you can install like this:
sudo apt-cache search sugar
Then change the default session to sugar like this:
sudo nano /home/$username/.xsession
(where $username is the user for whom you want sugar to be the default shell.)
And add the following to the .xsession file:
export SUGAR_LOGGER_LEVEL=debug export GABBLE_DEBUG=all export GABBLE_LOGFILE=/home/$user/.sugar/default/logs/telepathy-gabble.log export PRESENCESERVICE_DEBUG=1 export LM_DEBUG=net exec ck-launch-session dbus-launch --exit-with-session sugar-shell
A quick explanation of the file is in order. The export lines are actually for debugging, and aren't needed if you don't intend to look at the log files. Remember $user should be the user home folder. The ck-launch-session is for making sugar exit properly when exiting from the menu. The --exit-with-session is for making sure there are no lingering sessions on ctrl-alt-backspace, currently the only way to exit, as ck-launch-session doesn't seem to work.
Finally, make sure you have your server hostname in place of olpc.collabora.co.uk:
sudo sed -ie "s/olpc.collabora.co.uk/hostname/" /home/username/.sugar/default/config
There are now 2 ways to install ejabberd, as the ejabberd packages in debian are up to date so installing ejabberd from scratch only really helps for non debian distros.
Installing Ejabberd from the repositories
sudo apt-get install ejabberd sudo dpkg-reconfigure ejabberd
You need to add the user (usually admin) and the fully qualified domain name where ejabberd will be running. You can find what this is by doing hostname -f.
Patch /etc/ejabberd.cfg by downloading the olpc based patch and applying it:
wget http://dev.laptop.org/~morgan/ejabberd/ejabberd.cfg.patch sudo patch /etc/ejabberd/ejabberd.cfg ejabberd.cfg.patch sudo /etc/init.d/ejabberd restart
skip the installing ejabberd from source and continue where it says installing the SSL certificate
Installing Ejabberd from source
The first step involves downloading the source package like this:
mkdir ejabberd cd ejabberd wget http://www.process-one.net/downloads/ejabberd/2.0.0/ejabberd-2.0.0.tar.gz tar xfz ejabberd-2.0.0.tar.gz
We then need to download the patches from olpc that allow ejabberd to perform proper collaboration, and install the patches:
wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/shared_roster_push2.diff wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/shared_roster_recent.diff wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/shared_roster_online.diff wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/mod_ctlextra.diff wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/ejabberd.cfg cd ejabberd-2.0.0/ patch -p1 ../shared_roster_push2.diff patch -p1 ../shared_roster_recent.diff patch -p1 ../shared_roster_online.diff patch -p1 ../mod_ctlextra.diff
cd src ./configure make sudo make install
We also edit /etc/ejabberd/ejabberd.cfg and replace jabber.laptop.org with the actual server hostname and the user "jtest" with "admin" (although u can use a different user if you like):
cd ../..
sudo cp ejabberd.cfg /etc/ejabberd/
sudo sed -ie "s/{hosts, ["jabber.laptop.org"]}./{hosts, ["hostname"]}./" /etc/ejabberd/ejabberd.cfg
sudo sed -ie "s/{acl, admin, {user, "jtest","jabber.laptop.org"}}./{acl, admin, {user, "admin","hostname"}}./" /etc/ejabberd/ejabberd.cfgRemember to change hostname for the actual server hostname.
Installing the SSL certificate
You must also install an SSL certificate, which is required for collaboration to work (this is an important step.)
openssl req -newkey rsa:1024 -keyout ejabberd.pem -nodes -x509 -days 3650 -out ejabberd.cer echo "" >> ejabberd.pem cat ejabberd.cer >> ejabberd.pem sudo cp ejabberd.pem /etc/ejabberd/ejabberd.pem sudo chown ejabberd:ejabberd /etc/ejabberd/ejabberd.pem sudo chmod 400 /etc/ejabberd/ejabberd.pem
Finally we add the user@hostname to /etc/ejabberd/ejabberdctl.cfg remembering to change hostname for your real server hostname:
echo "ejabberd@hostname" | sudo tee -a /etc/ejabberdctl.cfg /dev/null
Then you can turn ejabberd on with
sudo ejabberdctl start
See if ejabberd is running properly:
sudo ejabberdctl status
which should produce the following output:
Node ejabberd@hostname is started. Status: started
ejabberd is running
Then add the admin user:
sudo ejabberdctl register admin hostname xx
This should now allow you to login to the web ejabberd control panel:
Go to http://yourserver:5280/admin/
Log in as your ejabberd's administrative user. Your username is a Jabber address e.g. "admin@yourserver".
Select Virtual Hosts, then your server hostname, then Shared Roster
Add a group called Online with the following settings:
o Name: Online
o Members: @online@
o Displayed Groups: Online
It is recommended you register a user via your favorite jabber program and as the sugar users log in, you'll be able to see them in the Online group.
If you run into problems you can check the logs in /var/log/ejabberd/ to see what could be wrong. And for Sugar logs, you can look at /home/$user/.sugar/default/logs/
Enjoy your terminal session sugar experience!







October 20th, 2008 | ep - Sugar Digest 2008-10-20
...ert an existing networked lab to Sugar without installing any software on the client terminals. See LTSP Sugar on Ubuntu Intrepid for a step-by-step guide. It should be easily replicated on other distributions by using a distro-s...
October 22nd, 2008 | Fresco 2.0 » Blog Archive » Sugar on Ubuntu 8.04
...ily replicated on other
distros using the distro specific package manager. Here is a howto I
wrote:
http://www.nubae.com/sugar-on-ltsp-ubuntu-intrepid-ibex
Kind Regards,
David Van Assche
www.nubae.com
Ne...
October 28th, 2008 | Guillaume Desmottes
Note that if you are using a recent Debian based distribution, you don't have to build ejabberd yourself. The Debian package should have all the needed patch..
See http://wiki.laptop.org/go/Installing_ejabberd/deb
October 31st, 2008 | nubae
Thanks Guillame,
I've now updated the entry to reflect that change...
David Van Assche
March 10th, 2009 | David Robert Lewis
I followed your instructions and now have a very nice sugar desktop on Hardy 8.04. Unfortunately I can't seem to follow what you say about editing the .xsession file.
I've tried editing the sugar.desktop file but this doesn't seem to work. Where is the .xsession file and how do i edit it? Thanks