If, like me, you’ve Googled around looking for a solution to get Cisco WebEx working in Ubuntu and nothing really explained it properly, or you ended up with a messed up system, then I am here to help!
Most of the stuff I’ve seen requires a 32-bit installation of Firefox, which doesn’t help me much since I use a 64-bit OS, so I decided to put it all in a container (which is good practice anyway for anything that installs binaries).
Here, I’m installing my container as root as it removes a load of hassle later. You can install them as a regular user but you need more configuration, which overcomplicates things. I’ll leave it as an exercise to the reader to figure that out.
Create a 32-bit container, I’m calling mine “webex”:
sudo lxc-create -n webex -t download
It’ll prompt you for details, answer ‘ubuntu’, ‘trusty’, ‘i386’. and
Edit the config at /var/lib/lxc/webex/config and add these lines:
lxc.cgroup.devices.allow = c 116:* rwm
lxc.mount.entry = /dev/snd dev/snd none rw,bind,create=dir 0 0
These allow the container to access the host’s sound device.
Now start up the container and access its console:
sudo lxc-start -n webex
sudo lxc-attach -n webex
The first thing I do is install openssh-server
sudo apt-get install openssh-server
and then install firefox and a java plugin. Some blogs say you need Oracle Java, but I find that OpenJDK works fine.
sudo apt-get install firefox icedtea-7-plugin openjdk-7-jre
At this point, go ahead and set a password for the ubuntu user:
Log out of the root console and now you can SSH into the ubuntu account like this:
ssh -Y ubuntu@webex
(I’ve left out the bit where ‘webex’ resolves to a real machine, just add it to your ssh config)
The -Y tells ssh to forward Xserver connections back to the host.
Now, we can test the sound to make sure that the config worked, try something like this:
If you hear the test sound, then it’s all good. If you don’t hear it, and get an error, then you’ll have to Google. In my case, the command was working without any error but there was no sound. I fixed this by adding a custom .asoundrc in the ubuntu user’s home directory:
It’s highly likely you may have to edit this for your sound hardware, but then again it may work. I’m not an ALSA expert, do some Googling if there’s still no sound, you just need to find the right device. You can test more quickly with a line like this:
aplay -D plughw:1,0 /usr/share/sounds/alsa/Front_Center.wav
Vary the device numbers of 1,0. Hopefully you’ll get it working eventually.
Now start up firefox and visit the test WebEx site:
Start up a test meeting – and then close down firefox straight away. You did this step to get a .webex directory created, but it needs fixing. In the .webex directory you’ll see some files like this:
ubuntu@webex:~/.webex$ ls -F
1524/ remembercheckbox.bak tmpfile/
The numbered directory may be a different number, but you will have one nonetheless. Change into the directory and you’ll see some files, some of which are .so files. The problem lies in that these files depend on other libraries which are not present in Ubuntu’s latest releases (they were installed with the ia32-libs package which no longer exists). However, we can work out what’s needed and just install the packages manually.
First, we need to install a helper to find the files:
sudo apt-get install apt-file
sudo apt-file update
Now find the files that are missing:
ldd *.so | grep "not found" | sort -u
Now review what’s missing, you will see output like this (it may not be exactly the same):
libasound.so.2 => not found
libjawt.so => not found
libXmu.so.6 => not found
libXtst.so.6 => not found
libXv.so.1 => not found
Now for each missing file, we use apt-file to find out which package will install it:
apt-file search libXmu.so.6
And then install with:
sudo apt-get install -y libxmu6
After you finish this for each file, you should be all set. Start up firefox again and visit the test WebEx meeting. With any luck, the audio buttons will now be active and you can start your WebEx meeting!
Note, I am still missing a file that provides libjawt.so, but things still work for me. Go figure …