Friday, July 15, 2011

Gnome Panel Slow to Appear

I have a single gnome panel at the top of my screen that holds all the applets I need.  It started taking ages to appear (tens of seconds) after logging in.  I tried deleting various applets in the hope that one of them was responsible for the issue but nothing worked.

Some Googling lead me to Bug #593226 in Launchpad.  I opened the Passwords & Encryption tool (in Applications > Accessories) and found that my passwords included two for Desktop Couch.  I deleted both - problem solved.

Tuesday, June 28, 2011

How to Delete an Invisible Panel Applet

Something went wrong with my Weather Report applet.  It had disappeared from its panel but was still present as it kept displaying a warning message about its inability to connect with the weather server.

I added a second Weather Report applet, configured it and it worked properly.  So, how to delete the faulty one?  I couldn't right-click and remove it as it wasn't visible.

The panel's applets are represented in the file system in

~/.gconf/apps/panel/applets 

and are (usefully) named applet_0, applet_1, ... 

I could have opened each one's XML configuration file and examined it to locate the Weather Report applet but a quicker alternative was to run gconf-editor and examine each applet's configuration directly.

This also gave me the opportunity to compare the configurations of the working and broken Weather Report applets but other than their locations in the panel their configurations were identical.

It turned out that applet_13 was the the malfunctioning one, so I deleted it from ~/.gconf/app/panel/applets.

Wednesday, August 11, 2010

InstallShield Wizard Fails With OpenJDK

I tried installing software packaged using InstallShield but each time I ran the installer it would fail with the message:

could not load wizard specified in /wizard.inf (104)

The problem turned out to be that after recently installing Lucid Lynx the JRE is OpenJDK, even though I had installed the Sun Java packages (sun-java6-*) I hadn't updated my Java alternatives. All that was needed was to switch to the Sun JRE, thus:

sudo update-java-alternatives -v -s java-6-sun

In fact, I subsequently removed all OpenJDK-related packages.

Thursday, August 05, 2010

External Monitor as Primary/Default Display

I recently installed Lucid Lynx on my Dell Inspiron 9400. One niggling annoyance was that the Dell's LCD screen was the primary display, whereas I wanted my external monitor (BenQ T2200D via DVI) to be the primary display.

Ultimately, the solution was simple:
  1. run the NVidia X Server Settings tool (gksudo nvidia-settings)
  2. in the X Server Display Configuration I made sure the Dell's display (Seiko) was disabled
  3. when saving to the X Configuration file, i.e. /etc/X11/xorg.conf, I chose not to merge with existing file
  4. restart X

Installing Lucid Lynx 10.04 on Dell Inspiron 9400

After successfully installing Lucid on a Compaq Evo 510s and a Fujitsu-Siemens Lifebook T4020 I decided to get serious and upgrade my workhorse Dell Inspiron 9400 from Hardy to Lucid.

I decided to do a clean install rather than an upgrade as I've generally had better success doing so in the past, and the result is usually cleaner as I only reinstall packages that I need rather than upgrading packages that I might no longer use. The downside is that it can take considerably longer.

The installation went smoothly and I have only a couple of unresolved problems:
  1. I have an external monitor (BenQ T2200HD) connected to the Dell via DVI. Whenever X-windows (re-)starts (e.g. boot, logout) the display switches back to the Dell's LCD display, so I have to manually switch to the BenQ (Fn+F8 twice) before logging in. Switching displays after logging in results in the LCD's display resolution being applied to the Benq, which is annoying.
  2. If I switch users and then logout of the second user account the display goes irretrievably blank/black rather than displaying the first user's screen-saver (locked). This appears to be a known bug.

Sunday, May 30, 2010

Lucid Lynx cifs support needs smbfs package

After a recent upgrade to Lucid Lynx I attempted to mount a network drive using mount -t cifs ... It failed each time with the following in dmesg:

CIFS VFS: cifs_mount failed w/return code = -22

Ultimately, the solution was to install the smbfs package.

Saturday, May 22, 2010

No XDMCP in Lucid Greeter

I recently upgraded a Compaq Evo 510s from Hardy to Lucid. The Evo is essentially a thin-client via XDMCP. However, after upgrading I found that the gdm greeter in Lucid no longer offers an option to remotely connect to another X-server.

This appears to be a bone of contention for many users, me included. Several options exist to work-around this problem. Ultimately, I chose to install kdm, whose greeter does include an option to use XDMCP to connect to a remote X-server.

X unstable running Lucid on a Compaq Evo 510s

I recently upgraded a Compaq Evo 510s from Hardy to Lucid. The first problem I encountered was instability running X-windows. The display would go black with a few white stripes.

It seems I wasn't alone - other Lucid users with Intel's integrated graphics chip were reporting similar problems. Several solutions have been proposed. I went with the simplest - switching to the VESA video driver. This solves the problem at the expense of losing hardware accelerated graphics. However, as the Evo is essentially a thin-client this wasn't a problem.

Installing Lucid Lynx 10.04 on a Compaq Evo 510s

I have a policy of only installing Ubuntu's LTS releases, so with the release of Lucid Lynx it was time to migrate from Hardy. I started with an aging Compaq Evo 510s. I used the upgrade path via the update-manager.

Things went smoothly aside from a couple of warnings regarding the flashplugin-nonfree package. I dismissed these, however, at the completion of the upgrade the warning became an error and the upgrade process exited before clean-up and completion.

Upon rebooting the Evo appeared to have Lucid installed but it was very unstable (a separate issue). Fortunately, the Evo is little more than a (XDMCP) thin-client. So, I burned a Lucid ISO and performed a fresh installation. This time the installation completed successfully.

Wednesday, March 18, 2009

Java Plug-In Next Generation with Firefox 3.0

I wanted to use Sun's Java Plug-In "Next Generation" (NG) with Firefox 3.0. However, at the time of writing the latest packages available in Ubuntu's repositories are sun-java6-*, which correspond to Java 6.0 update 7. This contains the "classic" plug-in; the NG plug-in was introduced in Java 6.0 update 10.

So, I downloaded the latest Sun JDK - v6.0 update 12 - and installed it in /opt/java. Then I performed the following steps:
  1. Create a symbolic link from /usr/lib/jvm to the installed JDK
    cd /usr/lib/jvm
    sudo ln -s /opt/java/jdk1.6.0_12 java-6u12-sun

  2. Created /usr/lib/jvm/.java-6u12-sun.jinfo. I simply copied .java-6-sun and editted (see below).
    Note, that in order to use the NG rather than "classic" plug-in, I specified /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so for the *-javaplugin.so alternatives. I also needed to add an entry for firefox-3.0-javaplugin.so, which is missing from .java-6-sun.jinfo.
  3. Installed alternatives for /usr/lib/jvm/java-6u12-sun. For each line of .java-6u12-sun.jinfo I ran update-alternatives --install, e.g.
    sudo update-alternatives --install \
    /usr/bin/firefox-3.0-javaplugin.so \
    firefox-3.0-javaplugin.so \
    /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so \
    64
    
    Doing this manually is a bit tedious, so I created a Perl script to do - see below.

  4. Selected the java-6u12-sun jav alternative, i.e.
    sudo update-java-alternatives -s java-6u12-sun
The /usr/lib/.java-6u12-sun.jinfo I created in step 2.
name=java-6-sun-1.6.0.12
alias=java-6u12-sun
priority=64
section=non-free

jre ControlPanel /usr/lib/jvm/java-6u12-sun/jre/bin/ControlPanel
jre java /usr/lib/jvm/java-6u12-sun/jre/bin/java
jre java_vm /usr/lib/jvm/java-6u12-sun/jre/bin/java_vm
jre javaws /usr/lib/jvm/java-6u12-sun/jre/bin/javaws
jre jcontrol /usr/lib/jvm/java-6u12-sun/jre/bin/jcontrol
jre keytool /usr/lib/jvm/java-6u12-sun/jre/bin/keytool
jre pack200 /usr/lib/jvm/java-6u12-sun/jre/bin/pack200
jre policytool /usr/lib/jvm/java-6u12-sun/jre/bin/policytool
jre rmid /usr/lib/jvm/java-6u12-sun/jre/bin/rmid
jre rmiregistry /usr/lib/jvm/java-6u12-sun/jre/bin/rmiregistry
jre unpack200 /usr/lib/jvm/java-6u12-sun/jre/bin/unpack200
jre orbd /usr/lib/jvm/java-6u12-sun/jre/bin/orbd
jre servertool /usr/lib/jvm/java-6u12-sun/jre/bin/servertool
jre tnameserv /usr/lib/jvm/java-6u12-sun/jre/bin/tnameserv
jre jexec /usr/lib/jvm/java-6u12-sun/jre/lib/jexec
jdk HtmlConverter /usr/lib/jvm/java-6u12-sun/bin/HtmlConverter
jdk appletviewer /usr/lib/jvm/java-6u12-sun/bin/appletviewer
jdk apt /usr/lib/jvm/java-6u12-sun/bin/apt
jdk extcheck /usr/lib/jvm/java-6u12-sun/bin/extcheck
jdk idlj /usr/lib/jvm/java-6u12-sun/bin/idlj
jdk jar /usr/lib/jvm/java-6u12-sun/bin/jar
jdk jarsigner /usr/lib/jvm/java-6u12-sun/bin/jarsigner
jdk java-rmi.cgi /usr/lib/jvm/java-6u12-sun/bin/java-rmi.cgi
jdk javac /usr/lib/jvm/java-6u12-sun/bin/javac
jdk javadoc /usr/lib/jvm/java-6u12-sun/bin/javadoc
jdk javah /usr/lib/jvm/java-6u12-sun/bin/javah
jdk javap /usr/lib/jvm/java-6u12-sun/bin/javap
jdk jconsole /usr/lib/jvm/java-6u12-sun/bin/jconsole
jdk jdb /usr/lib/jvm/java-6u12-sun/bin/jdb
jdk jhat /usr/lib/jvm/java-6u12-sun/bin/jhat
jdk jinfo /usr/lib/jvm/java-6u12-sun/bin/jinfo
jdk jmap /usr/lib/jvm/java-6u12-sun/bin/jmap
jdk jps /usr/lib/jvm/java-6u12-sun/bin/jps
jdk jrunscript /usr/lib/jvm/java-6u12-sun/bin/jrunscript
jdk jsadebugd /usr/lib/jvm/java-6u12-sun/bin/jsadebugd
jdk jstack /usr/lib/jvm/java-6u12-sun/bin/jstack
jdk jstat /usr/lib/jvm/java-6u12-sun/bin/jstat
jdk jstatd /usr/lib/jvm/java-6u12-sun/bin/jstatd
jdk jvisualvm /usr/lib/jvm/java-6u12-sun/bin/jvisualvm
jdk native2ascii /usr/lib/jvm/java-6u12-sun/bin/native2ascii
jdk rmic /usr/lib/jvm/java-6u12-sun/bin/rmic
jdk schemagen /usr/lib/jvm/java-6u12-sun/bin/schemagen
jdk serialver /usr/lib/jvm/java-6u12-sun/bin/serialver
jdk wsgen /usr/lib/jvm/java-6u12-sun/bin/wsgen
jdk wsimport /usr/lib/jvm/java-6u12-sun/bin/wsimport
jdk xjc /usr/lib/jvm/java-6u12-sun/bin/xjc
plugin xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin firefox-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin firefox-3.0-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin iceape-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin iceweasel-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin mozilla-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin midbrowser-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so
plugin xulrunner-javaplugin.so /usr/lib/jvm/java-6u12-sun/jre/lib/i386/libnpjp2.so


The perl-script used in step 3. above. Copy-and-paste into /tmp/java6u12sun.pl then:
cd /tmp
chmod +x java6u12sun.pl
sudo ./java6u12sun.pl

-----
#!/usr/bin/perl

use strict;

# Read .jinfo file.
my @lines = ();
open(JINFO, '/usr/lib/jvm/.java-6u12-sun.jinfo')
or die "Can't open .jinfo file.";
@lines = ;
close(JINFO);

# Install alternatives.
for (@lines)
{
if ($_=~ m+/usr/lib/jvm/java-6u12-sun+)
{
my @split = split ' ', $_;
system "update-alternatives --install /usr/bin/@split[1]  @split[1]  @split[2] 64";
}
}

1;