lego (12) Linux (39) pi (20) Thinkpads (4)

Thursday, 26 April 2012

Changing Default Browser in Linux

Whenever I have an application spawning a web page, it always either opened in winebrowser (which doesn't work, and just causes the machine to spike on cpu) or Firefiox (which I don't regularly use unless something doesn't work in chrome). For some reason clicking Make Google Chrome Default Browser in Chrome has no effect. So I ran sudo update-alternatives --config x-www-browser Which presented me some choices Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/google-chrome 200 auto mode 1 /opt/firefox/firefox 70 manual mode 2 /usr/bin/google-chrome 200 manual mode 3 /usr/bin/iceweasel 70 manual mode Chrome was already set but wasn't working. Perhaps the "auto mode" had something to do with it. I entered the choice 2 at the prompt and now chrome opens as the default browser.

Tuesday, 24 April 2012

Changing splash / lock screen

I'm not a big fan of the very white Linux Mint login / lock screen. So I decided to change it to match my desktop background, which is a typical dark thinkpad theme that I've been using on all my machines for years. Here's how to make the change: cd /usr/share/backgrounds/linuxmint sudo ln -sf .jpg default_background.jpg sudo ln -sf .jpg Talento-1.jpg sudo rm /var/lib/gdm3/.cache/wallpaper/* Not sure if you can use BMPs or other images. Since my background image is a BMP, I decided to play it safe and convert it to a JPG rather then find out the hard way.

Sunday, 22 April 2012

Current Status of Linux Installs (all systems)


X20 / X21X22 / X23 / X24X60X61X61T TouchX61T SXGAT420HP dv6900


architecture32bit32bit32bit64bit w/ VT64bit w/ VT64bit w/ VT64bit w/ VT64bit




distributions Ubuntu Server 10.10-Ubuntu Server 11.10-LMDE x64-LMDE x64LMDE x64


tested kernels2.6.x-2.6.x-3.2.x / 3.3.x-3.2.x / 3.3.x3.2.x / 3.3.x


fingerprint reader


pen digitizerubuntu - work
debian - doesn't work ABI mismatch
ubuntu - work
debian - doesn't work ABI mismatch


touchscreen / fingerubuntu - works but not calibrated
debian - doesn't work ABI mismatch


rotate buttonneeds scriptneeds script


wlanrequired 3rd party kernel modules


wlan power management (PM) supportbroken after 2.6.30


wlan model39004965?CentrinoRealTek


ethernetdisable PM or won't survive toggle


ultrabayneed scripts


hdpasmust manually patch


EC advanced battery function (stop / start charge)API broken, must use acpi_call


tp_smapimust patch


thinkfan (fan control)


Undervolting support
- PHC kernel
tested through liqorixtested through liqorixtested through liqorixtested through liqorix


stable PHC VIDs23 21 4 00 0 0 0


integrated graphics


stable integrated parametersi915i915i915i915


discrete graphicsrequires 3rd party kernel module








TP hotkeysn/a


wireless hotkeyneed script for bluetooth toggleneed script for bluetooth toggleneed script for bluetooth toggleneed script for bluetooth toggle



hibernate?battery charge deterioration unless method = shutdown?battery charge deterioration unless method = shutdown







cardbus eSATArandom kernel panics on SATA I/Orandom kernel panics on SATA I/O


expresscard eSATA


SD reader


CF reader



Freezing Linux Mint Debian Edition (LMDE) to Gnome2 (avoiding Update Pack 4)

To pevent accidental upgrade to Gnome 3.2, I've locked my repositories to Gnome 2. Planning on testing Gnome 3.2 at a later time. When I briefly used Linux Mint 12 (which uses Gnome 3.2), I was suffering the random X Server crashes and freezes that appears countless others (including official Ubuntu users) were as well:

Gnome 3.4 apparently fixes the stability issue experienced in Gnome 3.2.  I have not tested LMDE Gnome 3.2 (that is with Update Pack 4), but I am initially assuming the same problem exists with this distribution as with Linux Mint 12 that uses Gnome 3.2.  I will eventually test Gnome 3.2 unless Gnome 3.4 is released for testing or experimental use in the Debian repositories relatively soon.

Update /etc/sources.list to (obviously replacing the existing lines, where appropriate, not adding to):
deb debian main upstream import
deb-src debian main upstream import
deb testing main contrib non-free
deb testing/updates main contrib non-free
deb testing main non-free

Installing CheckPoint / SNX on Linux

CheckPoint / SNX

Instructions for 32bit and 64bit Debian and Ubuntu based distributions:  Last updated 2012-04

installed to - 

library info: =>  (0xf7737000) => /usr/lib32/ (0xf75fd000) => /lib32/ (0xf75e4000) => /lib32/ (0xf75d0000) => /lib32/ (0xf75cc000) => /lib32/ (0xf75c0000) => /lib32/ (0xf75a9000) => /usr/lib32/ (0xf74ee000) => /lib32/ (0xf7392000) => /usr/lib32/ (0xf7379000)
/lib/ (0xf7738000) => /lib32/ (0xf7347000) => /lib32/ (0xf7321000) => /usr/lib32/ (0xf7303000) => /usr/lib32/ (0xf7300000) => /usr/lib32/ (0xf72fb000)


install CheckPoint SNX:
sudo ./

Create the following ~/.snxrc:

server <IP>
username <email>

TIP - If you get the following error on starting:
/usr/bin/snx: symbol lookup error: /usr/bin/snx: undefined symbol: cerr
if required (should not be necessary on modern Debian / Ubuntu)
install  libstdc++5_3.3.6
sudo dpkg -i libstdc++5_3.3.6-17ubuntu1_i386.deb


(LD_PRELOAD=/usr/lib/ not necessary on modern Debian / Ubuntu)

LD_PRELOAD=/usr/lib/ snx -H
Check Point'S Linux SNX
build 600000013
use: snx -S <server> {-U <user>|-c <certfile>} [-L <ca dir>] [-p <port>] [-R] [-G] [-E <cipher>]
run SNX using given arguments
snx -F <cf> run the snx using configuration slips by
snx run the snx using the ~/.snxrc

snx -D disconnect has running SNX daemon

-S <server> connect to server <server>
-U <user> uses the username <user>
-C <certfile> uses the certificate file <certfile>
-L <ca dir> get trusted ca' S from <ca dir>
-p <port> connect using port <port>
-G enable debugging
-E <cipher> SSL cipher to uses: RC4 gold 3DES

Installing Lotus Notes 8.5.3 on 64-bit Linux

Instructions for 64bit Debian and Ubuntu based distributions:  Last updated 2013-01-28

This is for LMDE (Linux Mint Debian Edition) < Update Pack 6 (such as Update Pack 5) or lower and Debian < 7 (such as 6) or Ubuntu systems.  If you are using multiarch (only applied to 64-bit systems), found in LMDE Update Pack 6 or Debian 7, follow the instructions in .

If you need install instructions for a 32-bit Linux, refer to

Although the IBM Lotus Notes 8.5.3 was designed for GNOME 2 and has dependencies for GNOME 2 libraries, this install with the instructions provided below will result in IBM Lotus Notes install that will work with almost any window-manager.  I confirmed it works with Cinnamon, MATE, and GNOME 3.

startup - 
env LD_LIBRARY_PATH=/opt/ibm/lotus/notes/:/emul/ia32-linux/:/usr/lib32/:/usr/lib32/i386-linux-gnu/ /opt/ibm/lotus/notes/framework/../notes-wrapper %F

installed to - 

library info: =>  (0xf7752000) => /opt/ibm/lotus/notes/ (0xf526f000) => /usr/lib32/ (0xf521d000) => /usr/lib32/ (0xf5100000) => /lib32/ (0xf50e1000) => /opt/ibm/lotus/notes/ (0xf4f22000) => /lib32/ (0xf4f08000) => /lib32/ (0xf4ef4000) => /opt/ibm/lotus/notes/ (0xf4e5b000) => /opt/ibm/lotus/notes/ (0xf4e55000) => /opt/ibm/lotus/notes/ (0xf4a55000) => /usr/lib32/ (0xf4969000) => /lib32/ (0xf4942000) => /lib32/ (0xf47e6000) => /usr/lib32/ (0xf47c9000) => /opt/ibm/lotus/notes/ (0xf47c7000) => /lib32/ (0xf46fe000) => /opt/ibm/lotus/notes/ (0xf46de000) => /lib32/ (0xf46d5000) => /usr/lib32/ (0xf46cd000) => /usr/lib32/ (0xf46b6000) => /usr/lib32/ (0xf469d000)
/lib/ (0xf7753000) => /usr/lib32/ (0xf42c6000) => /usr/lib32/ (0xf4230000) => /usr/lib32/ (0xf4217000) => /usr/lib32/ (0xf41d3000) => /usr/lib32/ (0xf41cc000) => /usr/lib32/ (0xf41a5000) => /usr/lib32/ (0xf4167000) => /usr/lib32/ (0xf40f3000) => /usr/lib32/ (0xf40ae000) => /usr/lib32/ (0xf40a9000) => /usr/lib32/ (0xf403f000) => /usr/lib32/ (0xf402b000) => /usr/lib32/ (0xf3fb3000) => /usr/lib32/ (0xf3f84000) => /usr/lib32/ (0xf3f51000) => /usr/lib32/ (0xf3f05000) => /usr/lib32/ (0xf3efc000) => /usr/lib32/ (0xf3e64000) => /usr/lib32/ (0xf3d3a000) => /lib32/ (0xf3d06000) => /lib32/ (0xf3d02000) => /usr/lib32/ (0xf3cff000) => /usr/lib32/ (0xf3cfa000) => /usr/lib32/ (0xf3cef000) => /usr/lib32/ (0xf3ceb000) => /usr/lib32/ (0xf3ce8000) => /usr/lib32/ (0xf3ce3000) => /usr/lib32/ (0xf3cc7000) => /usr/lib32/ (0xf3c52000) => /usr/lib32/ (0xf3bb5000) => /usr/lib32/ (0xf3bb1000) => /usr/lib32/ (0xf3ba2000) => /usr/lib32/ (0xf3b99000) => /usr/lib32/ (0xf3b96000) => /usr/lib32/ (0xf3b88000) => /usr/lib32/ (0xf3b81000) => /usr/lib32/ (0xf3b6e000) => /usr/lib32/ (0xf3b5a000) => /usr/lib32/ (0xf3b42000) => /usr/lib32/ (0xf3b0c000) => /usr/lib32/ (0xf3aed000) => /lib32/ (0xf3ab3000) => /usr/lib32/ (0xf3a1b000) => /usr/lib32/i386-linux-gnu/ (0xf3a16000) => /usr/lib32/ (0xf3a09000) => /usr/lib32/ (0xf39f9000) => /lib32/ (0xf39f5000) => /usr/lib32/ (0xf3995000) => /usr/lib32/ (0xf3980000) => /usr/lib32/ (0xf392b000) => /usr/lib32/ (0xf391c000) => /lib32/ (0xf3911000) => /usr/lib32/ (0xf38eb000) => /usr/lib32/ (0xf38bc000) => /usr/lib32/ (0xf3809000) => /usr/lib32/ (0xf37e6000) => /lib32/ (0xf37e3000) => /usr/lib32/ (0xf376f000) => /usr/lib32/ (0xf3714000) => /usr/lib32/ (0xf36f1000) => /usr/lib32/ (0xf3698000) => /lib32/ (0xf3674000) => /usr/lib32/ (0xf3670000) => /usr/lib32/ (0xf3668000) => /lib32/ (0xf364d000) => /usr/lib32/ (0xf3646000) => /usr/lib32/ (0xf3636000) => /usr/lib32/ (0xf3631000) => /usr/lib32/ (0xf3628000) => /usr/lib32/ (0xf3600000) => /usr/lib32/ (0xf35fa000) => /usr/lib32/ (0xf35ec000) => /usr/lib32/ (0xf35e4000) => /usr/lib32/ (0xf35dc000) => /lib32/ (0xf35d9000) => /usr/lib32/ (0xf35d5000)


  1. install 32bit libraries with getlib (

    sudo apt-get install libgnomeprintui2.2-0 ia32-libs ttf-xfree86-nonfree t1-xfree86-nonfree 
    sudo getlibs -p libgnomeprintui2.2-0 libgnomeprint2.2-0 libgnomevfs2-0 libgnomeui-0 libxkbfile1 libstartup-notification0 libsepol1 libselinux1 libgsf-1-114 libgsf-1-dev librsvg2-2 librsvg2-common libavahi-client3 libavahi-common3 libavahi-glib1 libbonoboui2-0 libcroco3 libdbus-1-3 libdbus-glib-1-2 libgnome2-0 libgnomecanvas2-0 libgnome-keyring0 libgnome-menu2 libesd0 gtk2-engines libgnome-desktop-2-17 libmotif4 libmotif3 libgnome-desktop-3-0 libavahi-glib1 gtk2-engines-oxygen gtk2-engines-aurora gtk2-engines-qtcurve gtk2-engines-murrine gtk2-engines-equinox alsa-base alsa-utils iproute gnome-desktop-3-2 liborbit2 libbonobo2-0 libgconf2-4

  2. extract deb (ibm-lotus-notes-8.5.3.i586.deb) and remove the dependence in file UNPACK/DEBIAN/control (make it blank)
dpkg-deb -x ibm-lotus-notes-8.5.3.i586.deb <folder>
  1. create deb,
dpkg-deb -e ibm-lotus-notes-8.5.3.i586.deb <folder>/DEBIAN
  1. install the deb of lotus notes,

    sudo dpkg -i –force-all ibm-lotus-notes-8.5.3.i586.deb

  2. install gtk hack (from
    (validate permissions of
    • make chmod +x notes-wrapper sudo cp notes-wrapper /opt/ibm/lotus/notes/
  3. fix LotusNotes8.5.desktop file in /usr/share/applications
    • [Desktop Entry] Encoding=UTF-8 Name=Lotus Notes 8.5 Type=Application Exec=env LD_LIBRARY_PATH=/opt/ibm/lotus/notes/:/usr/lib32/:/usr/lib32/i386-linux-gnu/ /opt/ibm/lotus/notes/framework/../notes-wrapper %F Icon=/opt/ibm/lotus/notes/framework/shared/eclipse/features/ Terminal=false Categories=Application;Office;
  4. check for missing libraries:
    • LD_LIBRARY_PATH=/opt/ibm/lotus/notes/:/usr/lib32/:/usr/lib32/i386-linux-gnu/ LANGUAGE=zh_TW.UTF-8 ldd /opt/ibm/lotus/notes/framework/../lnotes
    • LD_LIBRARY_PATH=/opt/ibm/lotus/notes/:/usr/lib32/:/usr/lib32/i386-linux-gnu/ LANGUAGE=zh_TW.UTF-8 ldd /opt/ibm/lotus/notes/framework/../notes
    • LD_LIBRARY_PATH=/opt/ibm/lotus/notes/:/usr/lib32/:/usr/lib32/i386-linux-gnu/ LANGUAGE=zh_TW.UTF-8 ldd /opt/ibm/lotus/notes/framework/../notes2
  5. Xterm required for initial setup
    • When starting the application for the first time, you'll need to agree to a licensing agreement.  It appears not everyone has xterm installed as default, or perhaps had become removed.  Therefore, install xterm if not already installed
      • sudo apt-get install xterm

OPTIONAL: If you are missing the Microsoft fonts, install the following package:

Installing AT&T VPN Client on Linux

Instructions for 32bit and 64bit Debian and Ubuntu based distributions:  Last updated 2012-04

installed to - /opt/agns/bin

library info: =>  (0xf77d7000) => /lib32/ (0xf77a1000) => not found => not found => /lib32/ (0xf779d000) => /lib32/ (0xf7641000)
/lib/ (0xf77d8000)
agnclientd =>  (0xf776d000) => /opt/agns/lib/ (0xf774d000) => /lib32/ (0xf7734000) => /opt/agns/lib/ (0xf772b000) => /lib32/ (0xf75cf000)
/lib/ (0xf776e000) => /usr/lib32/ (0xf74a5000) => /lib32/ (0xf74a0000) => /usr/lib32/ (0xf748c000) => /lib32/ (0xf7466000)
agnLogd =>  (0xf773e000) => /lib32/ (0xf75c5000)
/lib/ (0xf773f000)

Starting the daemons (normally starts on boot up, but you can startup on demand instead):
(as root)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/agns/lib
export PATH=$PATH:.:/opt/agns/bin:/opt/agns/lib:/opt/agns/bin/skin
If you run into issues while connecting (you accidentally terminate a connection etc), restart the above services.

Connecting: for command line
agnclient gui
agnclientd daemon

I recommend using command line to connect.  Edit, in particular these three lines:


Make sure the AT&T IP is correct:

Ensuring the agnclientd and agnLogd are running;
(   ps -ef | grep agn
root      4287     1  0 Apr16 ?        00:01:02 agnclientd
root      4289     1  0 Apr16 ?        00:00:00 agnLogd
run (as user);

Installing AT&T VPN client on Linux Mint Debian Edition (or other Debian or Ubuntu based distributions)64bit:
1) installing 32bit compatibility package
sudo apt-get install ia32-libs
sudo apt-get install iceweasel ia32-libs ia32-libs-gtk
2) download the client from agnclient-2.0.1-ubuntu
3) sudo dpkg –force-all -i <package.deb>
- install agnclient 
- install gtk package
- install dev package
3) install necessary libraries
sudo getlibs -p libssl0.9.8
sudo ln -s /lib32/ /lib32/
sudo ln -s /lib32/ /lib32/
sudo ln -s /lib32/ /lib32/
sudo ln -s /lib32/ /lib32/
sudo ln -s /usr/lib32/ /usr/lib32/

TIP - If get stuck authenticating:

Run ldd on NetVPN and check if all library files are setup.

TIP - When running agnclient, if you run into a GTK error:

export GTK_PATH=/usr/lib32/gtk-2.0


sudo apt-get install tcl8.4
sudo dpkg -i  --force-architecture agnclient_1.0~
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/agns/lib
export PATH=$PATH:.:/opt/agns/bin:/opt/agns/lib:/opt/agns/bin/skin

/opt/agns/bin for command line
agnclient gui
agnclientd daemon

Wednesday, 18 April 2012

Meanwhile/Sametime in Pidgin Linux Fixed

I've been suffering through this bug for a while:

The issue is that when I initially log into Meanwhile/Sametime, I only see some online users, and not all online users.  If I know a certain user is online, I can ping them even though they show offline.  And likewise, they see me as online, and can ping me.  Eventually, after a prolonged period of logon activity, users who initially appeared offline begin to appear online.  However, if I restart Pidgin, the users will appear offline again.

I'm on the latest version of Pidgin (2.10.x).  This only occurs in the Linux version as I've been using Pidgin for Windows for years without encountering this issue.

The issue is really with the Meanwhile libraries.  On Windows, Pidgin comes with their own compiled DLL.  In Linux, Pidgin relies on the libraries installed by your Linux distribution, which means you are at the mercy of your distribution keeping up-to-date on the patches.

Since the issue was known since 2007, I would expect most distributions to have included the patches.  However, Debian testing and unstable repositories still don't have the patches (at least the Meanwhile 1.0.2-4 libraries don't have them).

I eventually found someone posted the source and patches here:

I downloaded
and the patches (ft_fix.diff, presence_fix_v2.diff, status_timestamp_workaround.diff).
1) Unzip/extract the source downloaded (meanwhile_1.0.2.orig.tar.gz)
2) Copy the .diff files into the extracted directory
3) patch -p1 < ft_fix.diff
4) patch -p1 < presence_fix_v2.diff
5) patch -p1 < status_timestamp_workaround.diff
6) ./configure
7) make

Then copy the src/.libs/ to /usr/lib/

Then start Pidgin.  It Meanwhile should be fully working (all online users should appear as online).