Dtrace means that Solaris wins
Sun’s Java Desktop System has had some reasonable press recently and, having only briefly played with a beta release, I figured that it was time that I had a look.
The installation (from 3 CDs) was mostly SuSE standard fare, meaning that it works well and isn’t any cause for concern. An oddity arose with a USB keyboard and mouse that threw me for a while, more of which later.
Once installed everything works well, including the bundled StarOffice 7, Evolution and Mozilla. The Sun branded Gnome theme is perhaps not quite as appealing to the eye as the Redhat version, but it’s easily replaced if something else is preferred. Hooking up Evolution to my Sun calendar required asking a question on #snt, but Dave Miner had the answer to hand and it was easy.
The USB keyboard and mouse problem was quite irritating. Most times
the machine is booted the keyboard and mouse drivers are not
correctly loaded and plumbed together, meaning that when the gdm
login screen is displayed it’s not possible to log in or switch to
another screen to try and sort things out. It seems to be some kind
of a timing problem, as disconnecting the relevant hub from the
machine, waiting a moment and then reconnecting usually brings it all
back. By strange coincidence I happened to be installing a recent
testing version of Debian on a similar
machine and it has similar problems. The hotplug system on the
Debian system somehow gets stuck and I’m left with half a dozen
copies of /sbin/hotplug
sitting around repeatedly running sleep 5
. Maybe the two problems are different - that’s for another day.
To gain access to SWAN from the JDS machine I had to install the cisco VPN 3000 software. This comes in part-source/part-binary form - the source component allowing you to ensure that it will correctly glue into whatever linux kernel you choose. In the past I’ve had no problem getting the VPN 5000 software running, but this was a different story.
Building it was easy - there’s a shell script provided. Loading the module meant re-building, as there was an argument about kernel version naming, but it was easy to solve. Actually making it work currently has me stumped.
The user-level control interface for the software is a utility called
vpnclient
. From watching it with strace
I can see that it opens a
raw IP socket and then attempts to talk to the kernel code using
SIOCDEVPRIVATE
ioctls (the kernel code creates a fake NIC interface
to facilitate this). Unfortunately the ioctl from the user-level code
never reaches the interceptor driver, resulting in the whole process
failing. If I had Solaris
then dtrace would mean
that solving this problem would be easy. I know that the
interceptor driver is being loaded, as I can see it in ifconfig
output and printk
s added to the module init
function work, but
nothing ever reaches the ioctl routine. Without dtrace I’m stuck
re-building the linux kernel a few times to track the path of the
ioctl using more printk
s. That takes ages and, at the moment, it’s
easier just to revert to Solaris 10 and get on with what I have to do.