Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/jfwells/jfwhome/wp-settings.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at /home/jfwells/jfwhome/wp-settings.php:18) in /home/jfwells/jfwhome/wp-includes/feed-rss2.php on line 8
JfwHome http://www.jfwhome.com Extraneous Thought Repository Thu, 02 Feb 2012 09:46:04 +0000 http://wordpress.org/?v=2.7.1 en hourly 1 Fixing problems with Dovecot - Postfix mail server after Ubuntu server upgrade to 11.10 http://www.jfwhome.com/2012/02/02/fixing-problems-with-dovecot-postfix-mail-server-after-ubuntu-server-upgrade-to-1110/ http://www.jfwhome.com/2012/02/02/fixing-problems-with-dovecot-postfix-mail-server-after-ubuntu-server-upgrade-to-1110/#comments Thu, 02 Feb 2012 09:45:14 +0000 admin http://www.jfwhome.com/?p=159 The thing that scares me most about server upgrades is the mail server… the thought of having to reconfigure the many interdependent servers and processes involved is horrible.

So I wasn’t pleased to find my postfix-dovecot installation dying on upgrade from 11.04 to 11.10. I couldn’t sent outgoing mail or receive inbound.

Fortunately I wasn’t an “early upgrader”… both issues were easy to find and fix.

Fixing inbound mail

Messages sent to my address were being returned as undeliverable with the following error:

            < my-server.com #5.3.0 x-unix; /usr/lib/dovecot/deliver: invalid option -- 'n' Usage:    dovecot-lda [-c ] [-a
] [-d ] [-p ] [-f ] [-m ] [-e] [-k]>


This is fairly self-explanatory: In the new version of Dovecot, the “n” option is no longer used. If you receive this error, type the following commands:

sudo postconf -e "mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-mail-stack-delivery.conf -m \"\${EXTENSION}\""
sudo service postfix restart

Done.

Fixing outbound mail

My errors were caused by the SASL authentication server, saslauthd. A bug report is here.

The problem can be fixed by rolling back saslauthd packages to a previous version, then “sticking” them so that they don’t get updated with regular system updates. Keep track of this so that you can remember to un-stick them when it comes time to upgrade.

First get the old packages. Replace “i386″ in the links below with “amd64″ if your server is 64-bit

mkdir ~/saslfixes
cd ~/saslfixes
wget http://archive.ubuntu.com/ubuntu/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.23.dfsg1-5ubuntu3_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/c/cyrus-sasl2/libsasl2-modules_2.1.23.dfsg1-5ubuntu3_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/c/cyrus-sasl2/libsasl2-dev_2.1.23.dfsg1-5ubuntu3_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/c/cyrus-sasl2/libsasl2-modules-sql_2.1.23.dfsg1-5ubuntu3_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/c/cyrus-sasl2/sasl2-bin_2.1.23.dfsg1-5ubuntu3_i386.deb

Then remove the old packages and install the new ones:

sudo /etc/init.d/saslauthd stop
sudo dpkg -r libsasl2-dev
sudo dpkg -r libsasl2-modules-sql
sudo dpkg -r sasl2-bin
sudo dpkg -r --force-all libsasl2-2 libsasl2-2:i386
sudo dpkg -r --force-all libsasl2-modules
sudo dpkg -i --force-all *.deb

Then restart the servers:

sudo /etc/init.d/saslauthd restart
sudo /etc/init.d/postfix restart

And finally “stick” the packages so they aren’t updated:

Type these commands as root (sudo su - will get you a root shell)

echo libsasl2-dev hold | dpkg --set-selections
echo libsasl2-modules-sql hold | dpkg --set-selections
echo libsasl2-2 hold | dpkg --set-selections
echo libsasl2-modules hold | dpkg --set-selections
echo sasl2-bin hold | dpkg --set-selections

]]>
http://www.jfwhome.com/2012/02/02/fixing-problems-with-dovecot-postfix-mail-server-after-ubuntu-server-upgrade-to-1110/feed/
IPSec/L2TP VPN on Linode Ubuntu server for iPhone/Android http://www.jfwhome.com/2012/01/29/ipsecl2tp-vpn-on-linode-ubuntu-server-for-iphoneandroid/ http://www.jfwhome.com/2012/01/29/ipsecl2tp-vpn-on-linode-ubuntu-server-for-iphoneandroid/#comments Sun, 29 Jan 2012 07:47:01 +0000 admin http://www.jfwhome.com/?p=150 It’s now easy to set up your own cheap VPN virtual private server that can be used with your mobile devices. Great for accessing resources on private networks, browsing securely, or accessing blocked sites.

This is now much easier than it used to be. Last time I tried to set up a VPN on an Ubuntu server, I had trouble with reconnections and had to manually compile OpenSwan. These all seem to be fixed.

Instructions are already all over the internet, but there are a few extra steps for a default Ubuntu linode in order to get routing to work.

These instructions are tested with Ubuntu 11.04 (Natty), but should also work on 11.10. We will set up an OpenSwan IPSec server with l2tp encryption provided by xl2tpd.

  1. Install everything:
    sudo apt-get install openswan ppp xl2tpd

  2. When OpenSwan installs, answer “No” to the question about certificates… on mobile devices you will use a shared secret rather than a certificate.
  3. Follow the rest of the directions in this post to set up the configuration files, up until it asks you to restart the three servers. Be sure to substitute the Ubuntu Server IP Address
    and your Gateway Internal IP with the Public IP and Default Gateway provided by Linode. These can be found on your Linode Manager under the “Remote Access” tab.

    When editing the /etc/xl2tpd/xl2tpd.conf file, you can choose any private subnet for “IP Range” and “local IP”. The “Local IP” will be assigned to the server, and clients will be assigned IPs from the “IP Range”. For example, I chose 192.168.0.2 - 192.168.0.20 for the range and 192.168.0.1 for the local IP.

    In addition, in the /etc/ppp/options.xl2tpd file, change the ms-dns line to point to your DNS name servers. You will probably want to use those provided by Linode too — you can add multiple ms-dns lines, one for each resolver.

  4. Now edit your /etc/rc.local file, and add the following, before the exit 0; line. Change the 192.168.0.0/24 IP range to match the IP range you chose above in the xl2tpd.conf file.

    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
    iptables -A FORWARD -j REJECT
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
    for each in /proc/sys/net/ipv4/conf/*
    do
        echo 0 > $each/accept_redirects
        echo 0 > $each/send_redirects
    done
    /etc/init.d/ipsec restart

  5. This sets up the necessary kernel routing options and firewall rules for traffic to be routed through to the Internet. The file will be executed at each boot.. but you can run it now without rebooting with sudo /etc/rc.local.
  6. Now restart all the servers:
    sudo /etc/init.d/pppd-dns restart
    sudo /etc/init.d/xl2tpd restart
    sudo /etc/init.d/ipsec restart

  7. Check that everything is working… you should get “OK” for everything other than “Opportunistic encryption” and RSA key:
    sudo ipsec verify
    

  8. All done! You can follow the directions for iPhone setup at the bottom of the same post
]]>
http://www.jfwhome.com/2012/01/29/ipsecl2tp-vpn-on-linode-ubuntu-server-for-iphoneandroid/feed/
How to use Apple bluetooth keyboard with multiple computers via a KVM http://www.jfwhome.com/2012/01/02/how-to-use-apple-bluetooth-keyboard-with-multiple-computers-via-a-kvm/ http://www.jfwhome.com/2012/01/02/how-to-use-apple-bluetooth-keyboard-with-multiple-computers-via-a-kvm/#comments Mon, 02 Jan 2012 13:16:13 +0000 admin http://www.jfwhome.com/?p=147 It’s easy to share traditional keyboards between multiple computers using a USB KVM. Obviously, with a bluetooth keyboard, things aren’t so simple.

I wanted to share my Apple bluetooth keyboard between my Mac mini and my desktop computer (running Ubuntu, but this would work with Windows).

First step was to get a USB bluetooth dongle and plug that into the KVM. Any USB dongle should do. When the KVM is switched to the Mac, the bluetooth dongle takes preference over the built-in Mac bluetooth receiver.

This works to share the keyboard, but the keyboard had to be disconnected and re-paired each time the KVM was switched — this is particularly problematic if you need to repair the keyboard at, for example, the login screen. It also requires you to enter a PIN code each time.

Fortunately this can be easily solved by sharing the generated link key between the two computers:

  1. Pair the keyboard in Ubuntu, then in OSX.
  2. In OSX, look at the bluetooth properties for your keyboard device to get the address.vThen open the terminal and type sudo defaults read /private/var/root/Library/Preferences/blued.plist. You will see something like the following:
    {
        LinkKeys =     {
            "00-aa-bb-cc-dd-ee" =         {
                "00-00-00-aa-aa-aa" = <81a83517 cc3c7afc fb8e99fc 5147fbf4>;
            };
        };
    }
    

    Here, the first code is the address of the bluetooth dongle. The second is the address of the keyboard, and the final, longer code is the link key.

  3. Convert the link key into a format suitable for Linux (or Windows), by reversing the endianness; simply reverse the order of the key, taking each pair of hexadecimal numbers as one value. So, the above key would be f4fb4751 fc998efb fc7a3ccc 1735a881. Easy…
  4. Use this link key in Linux or Windows. On Ubuntu the link key is at /var/lib/bluetooth/00:AA:BB:CC:DD:EE/linkkeys — the code is the address of the bluetooth dongle. Edit that file and replace the link key corresponding to the address of the bluetooth keyboard to the converted key, above.
  5. That’s it — restart Ubuntu, and the keyboard will work seamlessly as it is switched by the KVM.
  6. To change the link key in Windows, you need to edit the registry — I didn’t do this, but a search for “Windows bluetooth link key registry” should give the goods.

    Provided the keyboard doesn’t become unpaired, the setup should last indefinitely.

    ]]> http://www.jfwhome.com/2012/01/02/how-to-use-apple-bluetooth-keyboard-with-multiple-computers-via-a-kvm/feed/ Ubuntu (Lucid) on Gigabyte x58a-ud3r http://www.jfwhome.com/2010/08/09/ubuntu-lucid-on-gigabyte-x58a-ud3r/ http://www.jfwhome.com/2010/08/09/ubuntu-lucid-on-gigabyte-x58a-ud3r/#comments Mon, 09 Aug 2010 13:54:53 +0000 admin http://www.jfwhome.com/?p=134 I just upgraded my main desktop PC, running Ubuntu 10.04 (”Lucid Lynx”). After an 8-year hiatus, I’m back on Intel, with a nice new Core i7 930 and a Gigabyte x58a-ud3r.

    There’s not a great deal to write about compatibility, as everything “just worked” out of the box.

    The upgrade went well — one of the great things about Linux is how well it takes to a complete brain transplant. No HAL trouble or “repair install” nonsense that you get on Windows.

    Here are the things I had to do after the upgrade to get a 100% perfect system…

    Digital surround
    I use a digital coax conneciton to my AV receiver. This worked right out of the box, with the digital stereo option chosen in volume control -> Sound Preferences -> hardware. However, I was only getting stereo rather than 5-channel sound. To fix this, open: /etc/modprobe.d/alsa-base and add:
    options snd-hda-intel model=6stack-dig to the end, then restart.

    Suspend/Resume

    With S3 (Suspend to RAM/STR) enabled in BIOS, I still couldn’t get the system to sleep properly. As it turns out, the problem is due to the USB3 driver. I fixed this with a script that unloaded and reloaded the driver on suspend/resume. Follow these instructions on the Ubuntu Forums for creating this script.

    With this change it seems I can pretty much suspend and resume all day, without any ill effects.

    The icing on the cake was resuming from suspend with my USB keyboard. By default no USB devices will wake the system — you have to use the power button. To fix this, you first need to find out which bus your USB device is running on. Type lsusb, find your device, and note the bus number.

    If, for example, your USB keyboard is running on Bus 5, then you’d use the following command to enable resume:

    echo "USB5" > /proc/acpi/wakeup

    Add that command to your /etc/rc.local file, before the final “exit 0;”, then log out and in again.

    Other than updating my /etc/network/interfaces with a new ethX device (since I use manually-configured static networking), that’s pretty much all I had to do to complete the brain transplant.

    ]]>
    http://www.jfwhome.com/2010/08/09/ubuntu-lucid-on-gigabyte-x58a-ud3r/feed/
    What is better than Bing? http://www.jfwhome.com/2010/06/30/what-is-better-than-bing/ http://www.jfwhome.com/2010/06/30/what-is-better-than-bing/#comments Wed, 30 Jun 2010 13:38:29 +0000 admin http://www.jfwhome.com/?p=130 Easy: betterbing.com

    ]]>
    http://www.jfwhome.com/2010/06/30/what-is-better-than-bing/feed/
    VMWare Player Vs. VirtualBox in Ubuntu: Decided in 1 minute http://www.jfwhome.com/2010/06/30/vmware-player-vs-virtualbox-in-ubuntu-decided-in-1-minute/ http://www.jfwhome.com/2010/06/30/vmware-player-vs-virtualbox-in-ubuntu-decided-in-1-minute/#comments Wed, 30 Jun 2010 13:33:58 +0000 admin http://www.jfwhome.com/?p=122 I’ve been using VirtualBox for a few years, and I like it. I thought I would try out the latest VMWare Player to compare and see how it has moved on since the last time I used it — from what I’ve heard, the seamless mode in Player is now very good.

    However, it all came to naught — VMWare fail. Miserably. Why? Because I can’t download the thing.

    VirtualBox provides nice direct download links, and — even better — an Ubuntu repository.

    What about WMWare? They provide… this:

    VMWare... What the hell?

    VMWare... What the hell?

    Problem solved — there’s no way I want to hand over this kind of data. Sure, I could just fill in nonsense data (and I started to)… but then what happens when I need an update, or even upgrade to a paid version? VMWare: What the hell are you thinking, asking for all this personal information? The bounce rate for your software must be hideous — what a great way to send people to your competitors.

    If you’re here because you’re searching for a “direct link to VMWare Player” in Google: Sorry, try this, much better link, instead.

    ]]>
    http://www.jfwhome.com/2010/06/30/vmware-player-vs-virtualbox-in-ubuntu-decided-in-1-minute/feed/
    Looking for a great Linux PHP editor? Try Geany. http://www.jfwhome.com/2009/12/09/looking-for-a-great-linux-php-editor-try-geany/ http://www.jfwhome.com/2009/12/09/looking-for-a-great-linux-php-editor-try-geany/#comments Wed, 09 Dec 2009 14:53:15 +0000 admin http://www.jfwhome.com/?p=116 I’ve never been one of the vi or emacs brigade — when editing code (mainly PHP and Python), I’ve always found it easiest using a lightweight editor (together with a local server).

    Since moving to Linux full-time several years ago, I’ve been on the look-out for an editor I really liked. On Windows, I liked Notepad++ — it did everything I needed with panache, and never got in the way.

    On Ubuntu, I’ve stuck with gedit, with several plugins, including the Symbol Browser from Micah Carrick. I tried, at various times, jEdit, gPhpEdit, and even Eclipse — but they all just ‘got in my way’ too much. gPhpEdit came close, but I found the function list wasn’t always accurate.

    However, three things prompted me to look elsewhere again: First, it was choking on some sql dumps I was editing; Second, the symbol browser stopped working in Karmic; and Third, I still hate the shortcuts. I still prefer ctrl-Y for “redo” rather than “ctrl-shift-Z”, and I really, really need a shortcut (ctrl-D) for “duplicate this line”.

    So, I just came across Geany — it’s great. It’s fast, configurable, stable, has a great symbol browser, has the shortcuts just right, and doesn’t get in my way.

    Geany

    It seems that Geany’s been around for a while — and is even part of the standard image on some lightweight linux distros. But this is the first time I’ve come across it — and I’m glad I did.

    ]]>
    http://www.jfwhome.com/2009/12/09/looking-for-a-great-linux-php-editor-try-geany/feed/
    Compiling SqueezePlay on linux (Ubuntu AMD64) http://www.jfwhome.com/2009/11/22/compiling-squeezeplay-on-linux-ubuntu-amd64/ http://www.jfwhome.com/2009/11/22/compiling-squeezeplay-on-linux-ubuntu-amd64/#comments Sat, 21 Nov 2009 19:53:49 +0000 admin http://www.jfwhome.com/?p=88 Logitech Squeezeboxes are great little network audio streamers — I have a squeezebox Duet, which is much cooler (IMO) than an Apple TV + iPod.

    Squeezeplay is the Squeezebox controller / squeezebox touch user interface, and it can run on any computer. You can use that computer as a controller for your squeezebox receiver, or as a complete squeezebox, playing music. If you can get it running on a portable device, you effectively get a new Squeezebox Controller for free.

    Unfortunately, even though the Squeezeboxes are based on a GNU/Linux foundation, Linux users don’t get much love when it comes to releases of SqueezePlay… so we have to compile it ourselves.

    Here is how to get SqueezePlay working on Ubuntu karmic amd64, but the instructions should apply to other distros. I’ve also tested it on Karmic 32 bit.

    In order to run SqueezePlay, we need to compile the latest development code for SqueezePlay 7.5 that Logitech have available online on their SVN server. This guide is correct as at 21 Nov 2009, but as the Logitech devs work on the code, things will change, and they might introduce new bugs. For now, this is the procedure — and it works nicely with my SqueezeCentre 7.4.1.

    First of all, we need to install the required dependencies. This may not be a complete list, as I may have had things installed already — if you get errors with ld towards the end of the process, you may be missing some.

    Install the below packages with the following command in a terminal:

    sudo apt-get install build-essential flex bison subversion automake libtool libpng12-dev libjpeg62-dev libexpat1-dev libreadline5-dev xorg-dev libflac++-dev libvorbis-dev libvorbisidec-dev libasound-dev

    Next, we need to grab the SVN source code. Create a directory somewhere, open a terminal, and cd into the directory. Then do:
    svn co http://svn.slimdevices.com/repos/jive/7.5/trunk/squeezeplay

    Wait while the source is downloaded.

    Now, we need to fix a couple of bugs to ensure it compiles smoothly. I’ve reported these to the dev team, so if you can’t find the parts to change — or it looks like they are fixed already, then don’t worry :-)

    The first two bugs are in <your-folder>/squeezeplay/src/Makefile.linux, so open up the file in a text editor, and make the following changes:

    • On line 10, change ${PWD} to $(shell pwd) . After the change, line 10 will look thus:
      SRC_DIR = $(realpath $(shell pwd)) .
    • Change line 146 from: cd luaprofiler-2.0 && make -f Makefile.linux install to: cd luaprofiler-2.0 && LD="gcc -shared" make -f Makefile.linux install

    The third bug: browse to <your-folder>/squeezeplay/src/squeezeplay/src/audio/decode, and open decode.c. Find the printf statement on line 434, and change %llu to %"PRIu64". After this, line 434 will look like this:
    printf("elapsed:%"PRIu64" buffers: %0.1f%%/%0.1f%%\n", elapsed, dbuf, obuf);

    Finally, we need to replace one of the static libraries that squeezeplay is using — the version of portaudio that is included is out of date, and prevents sound from playing. So, download the latest portaudio here, put it in your squeezeplay/src directory, and double-click it to extract it there. Then rename Logitech’s portaudio_v19_1360 directory to portaudio_v19_1360-old, and rename your new portaudio directory to portaudio_v19_1360.

    Now, it’s time to compile the code. Switch to the <your-folder>squeezeplay/src directory in your terminal (e.g. cd squeezeplay/src), and run the compile as follows:

    sudo make -f Makefile.linux

    This will take a while. Once done, you will have a tarball in the ../build directory. To install squeezeplay, you just need to extract the contents of this to /opt/squeezeplay:


    cd ../build/
    sudo mkdir /opt/squeezeplay
    tar -C /opt/squeezeplay -xvf sq<TAB>

    (the exact name of the squeezeplay tarball will vary — just hit tab to have it auto-complete).

    then, to start squeezeplay, the command is:
    /opt/squeezeplay/bin/squeezeplay.sh

    to uninstall, just delete it from /opt.

    Some potential hiccups:

    • Makefile.linux has a “-deb” option that is supposed to build a .deb package for installation. However, it doesn’t seem to work. Furthermore, if you try it, you’ll need to clear out your working folder and start again — even with ‘make clean’, you’ll never be able to build a package until you start over, for some reason.

     

    Squeezeplay on Ubuntu

    Squeezeplay on Ubuntu

    My next step is to get it running on an old iPaq PDA I have lying around… watch this space!

    ]]>
    http://www.jfwhome.com/2009/11/22/compiling-squeezeplay-on-linux-ubuntu-amd64/feed/
    Fixing the (too low) position of notifications in Ubuntu Karmic http://www.jfwhome.com/2009/11/12/fixing-the-too-low-notifications-in-ubuntu-karmic/ http://www.jfwhome.com/2009/11/12/fixing-the-too-low-notifications-in-ubuntu-karmic/#comments Wed, 11 Nov 2009 16:06:39 +0000 admin http://www.jfwhome.com/?p=81 One of the first things I noticed on upgrading to Karmic was that notifications were lower than they were in Jaunty.

    Like most people, at first, I thought this was a bug. The short answer is — it isn’t. The devs, in their infinite wisdom, think its better this way — the “top slot” for notifications is reserved for synchronous notifications, such as brightness and volume.

    Karmic notification position

    Karmic notification position

    Again, like most people, I completely disagree with the change — I think notifications hovering in the upper third of my screen are annoying, get in my way, and look sloppy. If they are worried about synchronous notifications moving around, they should centre them on the screen, like on a Mac — not move everything else around.

    Anyway, Julien Lavergne has cooked up a quick patch for notify-osd that reverts back to the old behaviour. What’s more, he’s compiled notify-osd with the patch incorporated, so we can automatically use it.

    To make use of his patch, and have it automatically kept up-to-date, you’ll need to add a new software source. You can do that with this one-liner in a terminal: sudo add-apt-repository ppa:gilir/updates

    Then do an update through Update Manager, or through sudo apt-get update && sudo apt-get upgrade.

    And — there you go:

    That's much better

    That's much better

    ]]>
    http://www.jfwhome.com/2009/11/12/fixing-the-too-low-notifications-in-ubuntu-karmic/feed/
    Upgrading from Ubuntu Jaunty (9.04) to Karmic (9.10) on the eeePC 1005HA (and 1008HA) http://www.jfwhome.com/2009/11/11/upgrading-from-ubuntu-jaunty-904-to-karmic-910-on-the-eeepc-1005ha-and-1008ha/ http://www.jfwhome.com/2009/11/11/upgrading-from-ubuntu-jaunty-904-to-karmic-910-on-the-eeepc-1005ha-and-1008ha/#comments Wed, 11 Nov 2009 15:06:02 +0000 admin http://www.jfwhome.com/?p=68 If you followed my guide on getting Ubuntu 9.04 to run nicely on the eeePC 1005HA, and have or are considering upgrading to Karmic, these few notes will help you.

    A karmic Koala in a seashell

    A karmic Koala in a seashell

    If you do a fresh install of Karmic, everything will work just fine out of the box on the 1005HA. However, a fresh install is complete overkill. As always with Ubuntu — and with most Linux distributions in general — upgrading is easy. Few clicks in the package manager, and away you go.

    However, if you followed my guide to installing Jaunty, you’ll have a few old packages kicking around that will cause a few idiosyncrasies. Immediately after the upgrade, I found that wireless was less reliable, particularly after suspend/resume. Also, I found that suspend was not reliable.

    The solution is easy: you need to remove some of the things you installed.

    You can remove these using Synaptic, or by doing apt-get remove <packagename1> <packagename2> <packagename3> .....

    Remove the following:

    • Any backports you have installed, in particular linux-backports-modules-jaunty, but that is just a metapackage — check that no linux-backports* are installed. You won’t need any of the new karmic backports either.
    • eeepc-tray and eeepc-laptop-dkms or netbook-dkms.

    After doing this, restart and make sure all your packages are up to date (use update manager or do sudo apt-get update && sudo apt-get upgrade.

    Then, as the last step, you need to remove all the unneeded packages that were pulled in as dependencies previously. Easy — in a terminal, just type sudo apt-get autoremove. It’ll ask you to confirm, and you should see packages such as dkms being removed.

    Finally, restart, and you should be all set :-)

    ]]>
    http://www.jfwhome.com/2009/11/11/upgrading-from-ubuntu-jaunty-904-to-karmic-910-on-the-eeepc-1005ha-and-1008ha/feed/