How to get webex to work on Linux?
A company I work for is using webex for audio/video conferencing. Webex say they support linux and more specifically Ubuntu 10x, Red Hat (5/6), Open SuSE (11.3/11.4) and Fedora (13/14) with Firefox 3.x, 4.x, 5.x. As I am using Arch Linux and I don't want to use a virtual machine, I have been trying to get it to work on it. As we all know, any linux distributions is pretty much the same thing so if it works on 1 distribution it should be possible to get it to work on any other. So let's see how to get webex to work on Linux in general and Arch Linux in particular.
- 1. What you need to know?
- 2. Setup 32 bits environment within 64 bits install
- 3. Get firefox / java / java plugin to work
- 4. Troubleshot
What you need to know?
This post, on top of detailing what is required to get webex to work on linux is mainly for me to fix one problem I encountered when trying to use webex on linux: The Audio Device is Unaccessible Now.
First thing to know is that webex on Linux works exclusively on 32 bits. So if you have a 64 bits distribution installed you will need to get firefox and java in 32 bits. I believe it's the case of most folks out there now.
Although webex states they support firefox 3.x, 4.x and 5.x, I have it working on Firefox 15 which is the latest at the time I write these lines.
Setup 32 bits environment within 64 bits install
Now I went for the option of setting up a 32 bits environment within my 64 bits installation, there are plenty of other ways to get firefox 32/java 32 running within your 64 bits install. The following is for arch only, I'll let you dig through google on how to do this on your distribution.
I won't put the explanation for the commands, there is an excellent page on the arch wiki where it's all explained: Install bundled 32-bit system in Arch64
mkdir /opt/arch32
sed -e 's/\$arch/i686/g' /etc/pacman.d/mirrorlist > /opt/arch32/mirrorlist
sed -e 's@/etc/pacman.d/mirrorlist@/opt/arch32/mirrorlist@g' /etc/pacman.conf > /opt/arch32/pacman.conf
mkdir -p /opt/arch32/var/{cache/pacman/pkg,lib/pacman}
You need to edit /opt/arch32/pacman.conf to have:
Architecture=i686
Then
pacman --root /opt/arch32 --cachedir /opt/arch32/var/cache/pacman/pkg --config /opt/arch32/pacman.conf -Sy
pacman --root /opt/arch32 --cachedir /opt/arch32/var/cache/pacman/pkg --config /opt/arch32/pacman.conf -S base base-devel
Uncomment some mirrors in /opt/arch32/etc/pacman.d/mirrorlist
Edit /opt/arch32/etc/pacman.conf and change Architecture=auto into Architecture=i686
Create a arch32 script in /etc/rc.d/arch32
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
# Add '/var/run /var/lib/dbus' to the list to enable pulseaudio.
dirs=(/dev /dev/pts /dev/shm /tmp /home)
case $1 in
start)
stat_busy "Starting Arch32 chroot"
for d in "${dirs[@]}"; do
mount -o bind $d /opt/arch32$d
done
mount -t proc none /opt/arch32/proc
mount -t sysfs none /opt/arch32/sys
add_daemon arch32
stat_done
;;
stop)
stat_busy "Stopping Arch32 chroot"
for (( i = ${#dirs[@]} - 1; i >= 0; i-- )); do
umount "/opt/arch32${dirs[i]}"
done
umount /opt/arch32/{proc,sys}
rm_daemon arch32
stat_done
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
exit 0
Make it executable
chmod +x /etc/rc.d/arch32
Copy some files over
cd /opt/arch32/etc
cp /etc/passwd* .
cp /etc/shadow* .
cp /etc/group* .
cp /etc/rc.conf .
cp /etc/resolv.conf .
cp /etc/localtime .
cp /etc/locale.gen .
cp /etc/profile.d/locale.sh profile.d
cp /etc/vimrc .
cp /etc/mtab .
Start the arch32 script
/etc/rc.d/arch32 start
Get firefox / java / java plugin to work
Now get java, I used the latest jdk (just a note that it didn't work on java 6 for me due to class cast exception but I'll come back to that later on how to troubleshot)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Put the downloaded file in /opt/arch32/opt/
Chroot into the arch32
chroot /opt/arch32
Setup pacman-key
pacman-key --init
pacman-key --populate archlinux
Install some required packages (it will pick up necessary dependencies as well, if you don't install this then it won't work)
pacman -S libxmu xorg-fonts-misc
Install firefox
pacman -S firefox
Install java
cd /opt/
chmod +x jdk...
./jdk...
mv jdk1... javaX
Edit /etc/profile to add java to your path with something like
PATH=$PATH:/opt/javaX/bin
export PATH
Create a user for webex
useradd -m webex
passwd webex
Add the java plugin to firefox for webex user
su - webex
cd .mozilla/plugins/
ln -s /opt/javaX/jre/lib/386/libnpjp2.so .
Now very important (and that's what took me a while to figure out), you need to export LD_LIBRARY_PATH to add the libs for java so that the webex java applet finds them.
export LD_LIBRARY_PATH="/opt/java7/jre/lib/i386"
If you want to check wether java plugin is working or not, you can visit this page: Test Java Plugin is working
Run firefox and try webex (note that you should set your default input/output audio devices before because you can't change them within webex)
firefox
If you can't run X apps from the webex user because of permission then make that you can run X app into your currently running X (from your user running the X session)
xhost +
That's it you are all done.
Troubleshot
If you still don't have webex working then don't worry, you can troubleshot, find out why it doesn't work and fix it. To do so, you will use the Java Console. Here is how.
Run jcontrol, go in the Advanced tab and choose Java Console -> Show Console. Restart firefox. Now when the webex java applet will start, the Java Console will popup and you'll be able to see all the errors and why it doesn't work.
7 comments