Archive for the ‘Software’ Category

NetworkManager Can Ignore VPN DHCP

Friday, August 6th, 2010

Connecting to a VPN that has DHCP settings configured can be rather frustrating if it breaks your regular network settings. The biggest problem I’ve had with this in Ubuntu is with resolv.conf losing my DNS settings in favour of the VPN DNS settings.

For a long time I’ve tolerated the workaround of setting the immutable attribute on resolv.conf (ie. chattr +i /etc/resolv.conf). This will prevent anything from updating the file and thus you will not lose your DNS settings when the VPN connection takes place. This is fine for a desktop machine on a local network where resolv.conf is likely to stay static, but no good for a laptop or other mobile device.

This week I searched around for a better solution. Something new I found was vpnc connect and post-connect scripts. This looked like a possible solution, something similar to what I did when using the vpnc client for KDE. The KDE client had a post-connect script option, and from that I would restore my old resolv.conf. I tried creating the vpnc scripts to back up resov.conf and restore it afterwards, but it seems that those scripts don’t even get run by NetworkManager because nothing happened for me.

Then by luck I noticed something in my search results about a setting called ignore-auto-dns. Seems that the interface doesn’t support the setting, but you can specify it for the connection using gconf-editor. The specs for the setting are here… http://projects.gnome.org/NetworkManager/developers/settings-spec-08.html

So to apply this setting, open gconf-editor and find your VPN connection under system/networking/connections (all connections are just numbered under there). There should be an ipv4 key in there. Now just create the boolean value ignore-auto-dns and set it to true. Shortly after discovering this solution, I found another technique which lists this same setting but in a network configuration file… https://help.ubuntu.com/community/NetworkManager0.7. I’ve not tried the method listed there because I’m not actually convinced that it’s a better option than modifying this gconf setting.

Eee PC Clicking Sound

Wednesday, June 16th, 2010

I’ve noticed that on battery power the hard disk makes a clicking sound every 20 seconds or so. This symptom has been reported particularly by laptop and netbook users, including those that use Windows (though I gather it’s much less of a problem with Windows users).

A quick summary of the situation. If your Eee PC has a SATA hard disk, chances are you’ve noticed this problem. The simple solution is just to disable Advanced Power Management on the hard disk all together and then get on with your life. There are plenty of other power saving features that work, but it seems that the APM is not well suited to Lucid Lynx (or vice versa).

Ubuntu is telling the hard disk to take it easy and not to chew too much power. But this is really just to lull it into a false sense of security as it doesn’t actually cut the drive any slack. In fact, Lucid has some services which appear to be very demanding on the hard disk. The hard disk keeps trying to take a break but Lucid keeps accessing it. The result is a drive that constantly sleeps and wakes up again (causing the click to be heard, as the disk heads park and then move back into working position again). Luckily this action was actually audible, otherwise I’d have been none the wiser, oblivious to the performance hits until my hard disk finally died from excess wear.

A quick search revealed the following command to instantly stop the clicking:

$ sudo hdparm -B 254 /dev/sda

Where “sda” is your SATA hard disk device of course. That command will buy you some time to figure out what’s really happening. Unless you are feeling adventurous, you’ll probably reach the same conclusion that I have. But lets work through this anyway for the sake of actually understanding a little more about what’s actually going on here.

The following command will tell you lots of stuff about your hard drive that you probably don’t want to have to care about:

$ sudo hdparm -I /dev/sda

You can find just the line we are interested in with this one:

$ sudo hdparm -I /dev/sda | grep "Advanced power management"

Which should yield this, since we ran hdparm with the -B 254 option…

Advanced power management level: 254

This is what we want. But if you reboot and run that command you will see it reverts back to level 128. In fact, if you plug the power back in and then remove it, theoretically it should revert to APM level 128.

To find out what the hard drive has been up to, install the smartmontools package using synaptic or sudo apt-get install smartmontools. Then you can run this command (make sure your terminal window is nice and wide or maximised):

$ sudo smartctl -a /dev/sda

Cool huh? More stuff you don’t want to have to care about. But just have a look at the section titled “Vendor Specific SMART Attributes with Thresholds”. On my Eee PC I had very high “RAW_VALUE” for “Load_Cycle_Count” row.

“Load_Cycle_Count” was 3150 and “Power_On_Hours” was only 56. So I’m assuming this means the drive has averaged one “load cycle” per minute of it’s life. Which is about right, since the clicking only happens on battery power and then it happens about every 20 seconds during this time. So if the clicks coincide with these “load cycle” thingamajigs, this would suggest it’s lived on batteries less than 1/3rd of it’s life, which is about right.

If you don’t like my science, or you have a different interpretation of your own threshold table then you might want to have a look at the SATA known issues wiki page. Meanwhile, on with the show…

With a default Lucid Lynx installation, the APM level 128 setting is triggered by a htparm power management script that lives here… /usr/lib/pm-utils/power.d/95hdparm-apm. If you have another power management package installed such as laptop-mode-tools then your on your own.

The configuration for this and possibly other power management tools lives in /etc/hdparm.conf. To basically disable APM when running on battery power, add the following to the end of the config file…

/dev/sda {
	apm = 254
	apm_battery = 254
}

This tells hdparm to keep the drive at APM level 254 even when it’s running on battery power. Unfortunately, this seems to be the simplest option when running Lucid Lynx on an Eee PC. Apparently Lucid Lynx just doesn’t want to stop molesting the hard disk. Just disable APM for now. Hopefully future UNE releases will address this rather major issue.

I’m planning to test the battery life of the OEM Windows 7 and then compare it with Lucid Lynx without APM. I expect it to be a bit of a hit, but I get the impression it’s not worth the effort to make Lucid Lynx APM friendly. If you are feeling masochistic though, perhaps you can pick up from where this guy left off.. http://forum.eeeuser.com/viewtopic.php?id=85230

I see this as an unfortunate trade off between power consumption and performance. The performance improvement of Ubuntu still far out weighs this issue. To be fair, I first found out how to fix this problem from Windows users. Someone has ported a lot of the functionality of hdparm to a tool called quietHDD to solve this for the Windows platform. At least our solution is supported and bundled with the operating system. I found it interesting anyway to know a bit more about how power management works in Ubuntu.

References:
man hdparm.conf

KDE or not KDE? That is the question…

Tuesday, September 1st, 2009

I’ve been gradually catching up with a lot of the rants on the net with respect to KDE3.5 vs. KDE4. Some less sane than others. I came to the debate quite late it seems, and it’s something I’m not pleased with even having to care about to tell the truth. Suddenly now I find my self having to understand the developers philosophies and getting to know some of the more vocal egos on both sides of the fence. After grasping a better idea of what’s happened, I don’t think I’ll ever be completely sold on KDE4. But after reading some more compassionate words on the topic today, I think I’ve finally come to terms with the situation.

In the KDE developers defence, I don’t think it’s possible for complete overhauls of software to ever be embraced whole heartedly by the userbase. Particularly not right away. I will continue to resent the fact that Kubuntu took up KDE4 so soon. I liked KDE3.5 because it was a work of art, but also because it was fully functional and intuitive for anyone who is used to MS Windows. At that time I couldn’t understand why Ubuntu picked Gnome for the flagship considering KDE3.5 was so much more suited winning over the users afflicted by Bug #1. My first impression when KDE4.1 was thrust upon me was of some retarded mutant desktop environment from a future that I don’t care to participate in. KDE4 turned my entire desktop experience inside out!

I’m not going to pretend that I’m not a stubborn person. I like to work in a particular way which I’ve refined over years, dating back to MS DOS and Windows 3.1. I switched to Linux because some of the more restrictive and intrusive features in Windows Vista had well and truly crossed the line as far as I was concerned. I wanted to get back to a basic desktop without all the useless eye-candy. KDE3.5 was the best fit for me at the time.

I’m quite busy as well. I soon learnt with Linux distro’s, every time there is a distribution upgrade to postpone it for at least a month and ensure I dedicate a couple days after it to get myself settled back in. With KDE4 it was more like a couple of weeks of pointless frustration. Wrestling with KDE4 just proved to be too much hassle for me at work and I’ve now fully switched over to Gnome. I found it easier to customise to my liking than KDE4. At home I’m still on KDE4.2 because it doesn’t matter so much if I’m spending 6 hours trying to figure out how to customise the desktop theme in vein, and I still hold out for a glimmer of hope that the developers may resolve some of my issues with it.

KDE4 is not easy or intuitive to use. I don’t like this widget based desktop paradigm and I don’t understand how it’s useful in anyway. Most of the time my desktop is hidden by windows anyway. I have to wonder if KDE4 was ever designed for using or if it’s just for looking at. KDE4 is a contradiction in my eyes. To be a desktop environment which gets in the way of letting users do what they want, yet to do so in the name of flexibility is bizarre. It makes me anxious and I don’t like it.

I still see KDE4 as the lavalamp of the desktop environment world. It chews a lot of power and looks pretty, but it’s not all that useful. You also have to be careful about touching it because you might get burnt. I have a feeling it’s the new development philosophy that’s flawed, but I can’t quite put my finger on what that flaw is as yet. I think I’ve reached a turning point in my thinking about KDE4 now though, and I find my self walking peacefully in the opposite direction.

VPNC Android GUI Package

Wednesday, July 22nd, 2009

Forget my post about running VPNC from the G1 terminal. Wmealing has just released the Android package that does it all in GUI form. Grab the get-a-robot-vpnc package now.

Not much to add, except “oh the awesome!”. Here’s a little screen shot of the add connection GUI…

If you have trouble figuring out what to enter into those fields, check out my old get-a-robot-vpnc post for some hints.

Cupcake update pushed to JFv1.51 US/UK

Wednesday, July 22nd, 2009

This morning I checked my phone only to find a message about updates downloaded and ready to install. That’s an odd thing, since I’ve got modded firmware that should have disabled such behaviour to prevent conflicts. I was a bit worried, but an ADP G1 wielding colleague pointed me to this notice… http://andblogs.net/2009/07/otas-in-jfv1-51/

I followed JF’s 2nd and 3rd suggestion and so far so good. Here’s the exact steps I took to disable the update.

  1. Download and extract JFv1.51 ADP firmware and copy build.prop to the sdcard. Or use this build.prop (freshly extracted for your convenience).
  2. Mount /system on the G1 as read/write. Two simplest ways to do this is either install “DroidSans Tweak Tools” or run “mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system” in a terminal.
  3. Replace build.prop and make the permissions the same as the old one with something like:
    $ su
    # mv /system/build.prop build.prop.bak
    # cp /sdcard/build.prop /system
    # chmod 644 /system/build.prop
  4. Find the update in the /cache directory and “chmod 000″ it…

    Disable Cupcake OTA update screenshot

  5. Now I actually clicked on the “restart and install” option on the update dialog. The phone rebooted, and the update failed. I rebooted with Home+Back and haven’t had the update prompt as yet.

So far so good. One odd thing I noticed is the update is gone from the /cache directory.

Browse for Android apps without the eye strain

Wednesday, July 1st, 2009

The Cyrket website is an “Android Application Browser” for the desktop. Makes it much easier to search for applications and works especially well in conjunction with “Barcode Scanner” app installed on the handset.

Now why didn’t Google just do that in the first place?

Android MarketEnabler

Wednesday, June 17th, 2009

Looks like some Italians figured out a way to access paid applications on the Android Market. Check out this English translation which contains a link to the MarketEnabler app they wrote. I’ve tested it out and it stills work quite well.

KDE3 on Jaunty

Tuesday, June 16th, 2009

Just a quick follow up. The plans to maintain my KDE3 addiction worked, but it wasn’t a smooth ride. I don’t recommend it for anyone who isn’t keen to tinker. During the KDE3 installation some packages wanted to overwrite KDE4 files, which caused all sorts of issues with my package manager. I had to use dpkg to force a couple packages to install before I could remove the KDE4 ones and then re-installed the KDE3 ones just to be sure. I ended up culling a fair few of the default KDE4 packages to make sure I didn’t have any more problems like this. I can still login to KDE4, but some of the nicer stuff like Compiz is gone.

I had issues with Compiz in particular, there are problems with the latest nVidia drivers. The latest Compiz has a workaround for this, but it’s not available for the KDE3 version. I found the simplest solution was just to switch back to the 177 driver version and then it was all good.

So yeah, I recommend just switch to Gnome, or try KDE4 on Jaunty and enable the folder view desktop. It seems like pointless overhead to me, the folder view is just a full screen widget. Note also that it doesn’t span screens, so if you have a dual screen setup and you want some icons spattered on the second screen you’re out of luck. KDE3′s days are numbered so eventually I’ll have to face reality and move on. I’ve prolonged it for about another year now I reckon, but eventually I’m going to have to face the music.

I wanted to post this sooner, but the recent Word Press update broke my WYSIWYG. Luckily it was just a javascript conflict with one of my plugins, some people had much worse issues with the update. Still it’s embarrassing since I was just bragging to my mate the other day about how fantastic this application is, particularly the update management. Bloody updates, they are the bane of my life!

The KDE4 Desktop “Visionary”

Thursday, June 11th, 2009

While searching around to find out why-oh-why I’m not allowed to have files on my Desktop in KDE4 (and hopefully how to re-enable it), I found this… http://aseigo.blogspot.com/2008/05/no-more-desktop-icons-in-41.html

This looks to me like the root of the problem. This KDE developer, in all his infinite wisdom, just simply ripped out the code that supports file icons on the desktop. Apparently it just doesn’t look nice to him or something. Too bad if you don’t like the whole widget based desktop experience, this guy has just forced us to either take it up or switch to Gnome. Suffice to say, when I read his article I was fairly taken aback by the action.

In all fairness though, he doesn’t see it the way I do. Yes, this post was originally fueled by rage. I quickly changed my initially confrontational title of this post to something a little nicer. Aaron’s intention appears to be to create a more flexible experience for the user (by culling features?!?). My tinfoil hat keeps telling me it’s really just a Microsoft conspiracy (joking of course).

One of my machines was recently updated to KDE4 via the Kubuntu Intrepid distro upgrade. I’ve been using it everyday, but I haven’t been liking it. The version that came with Kubuntu Intrepid is not nearly mature enough. Personally, I love KDE3 and I’d like to stick with it as long as possible. I don’t need the new Plasma features and many old features seem to have been dropped. Thankfully, I found this… https://wiki.kubuntu.org/Kubuntu/Kde3/Jaunty which should allow me to keep my systems up to date without having to touch KDE4. I’ll try the process out tomorrow on my work Kubuntu 8.04 machine.

Update:

You can re-enable the normal desktop behaviour in Jaunty simply from a desktop right click menu. But not Intrepid. In Intrepid you could try editing $HOME/.kde/share/config/plasma-appletsrc replacing plugin=desktop with plugin=folderview, but that didn’t work for me.

Another Update:

You can’t drag and drop your icons on to multiple screens. It only works on the primary because it’s still some kind of crappy complete waste of resources full screen widget.

Connect to Cisco VPN from Android

Tuesday, June 2nd, 2009

Tested on:

Prerequisites:

  • VPN connection settings or a pcf file
  • If you need to decrypt enc_GroupPwd from pcf, Linux box with vpnc installed
  • Something to extract bz2 files
  • BusyBox (or alternative copy method that doesn’t use tar)
  • Get-a-robot-vpnc package
  • Root access!

First of all, this is an alternative version of instructions from xda-developers post by Phlogiston. I’ve included more complete details for those people who wouldn’t know the first thing about getting started with vpnc. Big win credit to wmealing for bringing vpnc to Android!

Extract the bz2 file (not on the phone yet). Note the directory structure is /data/data/org.codeandroid.vpnc/..., this is designed to be extracted directly to the root of the phone.

Open /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc.conf and place your VPN connection settings in there. Very important that you remove or comment out the line “IKE authmode hybrid” or later you will have errors about missing openssl components. If you are not sure about the vpnc.conf settings and you have the .pcf file, map the following values…

Typical .pcf vpnc.conf
Host IPSec gateway (lowercase)
GroupName IPSec ID
GroupPwd* IPSec secret
Username (usually omitted) Xauth username
UserPassword (usually omitted) Xauth password

You should know your user name and password. Of course I’m not going to recommend that you store them in plain text in this file, but it sure does make life a whole lot simpler.

*If GroupPwd is blank and instead you have enc_GroupPwd you need to use the cisco-decrypt tool that usually comes with a standard vpnc installation (in my distro it’s found at /usr/lib/vpnc/cisco-decrypt). Simply run:

/usr/lib/vpnc/cisco-decrypt <enc_GroupPwd hash>

Open /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc-script and change the first line to “#!/system/bin/sh” (replace bash with just sh).

Now you need to get it all on to your phone. Confirm you have the tar command on the phone by opening up the terminal app and typing “tar“. If you don’t have it, you might want to get BusyBox.

From the directory where you extracted the bz2 file, run the following to make a tarball:

$ tar -cvf vpnc.tar ./data/data

Copy that to the phone’s sdcard. While you have the sdcard mounted on your PC, create a directory called vpnc and create two empty files in there named go and prep (you can name them anything really).

Open go and paste the following (this is one single long line of text):

/data/data/org.codeandroid.vpnc/bin/vpnc /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc.conf --script /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc-script --pid-file /data/data/org.codeandroid.vpnc/etc/vpnc/vpnc-pid --no-detach --debug 1

Open prep and paste the following:

modprobe tun
lsmod
mkdir /dev/net
ln -s /dev/tun /dev/net/tun

These scripts will help you type less on the handset. Now unmount the sdcard and wait for the phone to check it. Open up a terminal and run the following:

$ su
# cp /sdcard/vpnc.tar /data
# cd /data
# tar xvf vpnc.tar
# rm vpnc.tar
# cd /sdcard/vpnc
# sh prep
# sh go

If all went well you should see the following happy little message!

vpnc on Android

… and to later kill the VPN connection, just press Ball+C. Note: You only need to run the prep script the first time during the session (when the phone reboots you’ll need to run it again).

If you want to undo it all and start from scratch, just do a recursive delete of /data/data/org.codeandroid.vpnc directory and reboot.