Ubuntu Linux: Is your external usb drive slow?

I don’t know when this happened but my external USB drives were running really slow. Reading RAW images off them took ages, backups took forever, and moving files back and forth was plain slow.

I use two Seagate FreeAgent external drives. They’re both USB 2 devices so should sustain more than the maximum 1MB/s I was seeing. I decided to go looking. First stop was /var/log/syslog where I found the following:

usb 2-1.2.4.4: new full speed USB device using uhci_hcd and address 13
usb 2-1.2.4.4: not running at top speed; connect to a high speed hub

To cut a long story short, after a few searches I found bug 66115 where the same problem is described. Unfortunately the ticket has since been closed but the work around discovered by Jean Pierre Rupp works for me too. I haven’t modified any files in /etc/ but unloading ehci_hcd and uhci_hcd and reloading in the correct order worked for me:

rmmod ehci_hcd
rmmod uhci_hcd
modprobe ehci_hcd
modprobe uhci_hcd

Now I get a very respectable 15-20MB/s when using rsync to transfer files from my internal drive and reads are super fast:

hdparm -tT /dev/sdi1

/dev/sdi1:
Timing cached reads: 3964 MB in 2.00 seconds = 1985.16 MB/sec
Timing buffered disk reads: 82 MB in 3.03 seconds = 27.08 MB/sec

Next on the TODO list is making sure the modules are loaded in the correct order on reboot. Time to dive into /etc

Control Ubuntu and Mac OS X from one computer

I just installed Synergy on my Ubuntu and Mac OS X laptops and now I can control both from one keyboard and mouse. It works fairly well, although I do wonder:

  1. What are the special Mac keys mapped to on my beige PC keyboard?
  2. I’ll have to stretch if I move my Macbook away from my desk. (joking)

It’s easy enough to install, on Ubuntu the Linux version is already in the repositories, so the following will install a simple gui tool to configure and run a server.

aptitude install quicksynergy

That will install Synergy as well.
Run “quicksynergy” from a terminal, go to the “Use” tab and give it the IP address of your machine. Then enter the hostname of your second (or third or fourth..) computer in whichever direction you want. My Macbook is on the left.
screenshot-quicksynergy

Before clicking “Execute”, I downloaded the Mac OS X version of Synergy, untarred it and after reading the documentation, fired up the client with:

./synergyc -f 192.168.1.20

Moments later, the following message popped up on my Ubuntu terminal,

NOTE: CServer.cpp,278: client “donncha-o-caoimhs-macbook.local” has connected

Now I can move the mouse cursor off the left side of my Ubuntu screen and it starts moving on my Macbook!

I don’t think I’ll use it full time as I’d strain my back or neck typing on a keyboard in front of me and twisting my neck to see my Macbook but it’s a nice tool to have. Over WiFi moving the mouse cursor stuttered a small bit, so it’s unlikely you’ll want to do intricate pixel work with it.
I’ll have to try a day’s work with it to judge it properly.

Fixing Ubuntu 8.10

I suppose you could say I’m a long time Debian/Ubuntu Linux user, but the recent upgrade to 8.10 completely messed up my desktop machine.

  • Sound was broken in Flash. That’s happened before and doing an aptitude install flashplugin-nonfree-extrasound fixed that, but from time to time sound would break and I’d have to killall -9 pulseaudio;pulseaudio -D to get it working again.
  • My shiny new Xbox360 controller refused to work correctly in Ubuntu 8.10. Despite assurances on various Ubuntu sites that a fully updated system should now work, it didn’t. Moving the analogue stick moved the mouse pointer.
  • Editing a spreadsheet in Open Office proved impossible as whatever key or action I last took would repeat if I used the cursor keys. Hit “a” and “a” would appear in every cell when the cursor was moved. I used the mouse and TAB a lot while working on my last VAT return.
  • I wrote a DVD+RW just fine on Monday, but 3 days later when I tried to erase it, Gnomebaker complained it didn’t have permission to access /dev/sr0 (I think). I tried to mount another CD and Ubuntu complained it couldn’t read ISO9660 CDs.

I tried recreating my user account in case that helped. It didn’t. The only way to fix my broken Ubuntu 8.10 was to reinstall from scratch. After backing everything up onto one of my external drives the install couldn’t have been easier.

So, now? Any problems? ‘Fraid so.

  • I had to install flashplugin-nonfree-extrasound to get sound working in Firefox and Flash. Yay, Youtube is sounding sweet again! No lockups yet.
  • My joypad still didn’t work, despite the fact I had upgraded everything. Thankfully this bug report came to the rescue. If your Xbox360 controller refuses to work in Ubuntu, try this:

    $ xinput list
    See which device number the Xbox controller has…
    $ xinput set-int-prop THATDEVICENUMBER ‘Device Enabled’ 32 0

    I’ll probably have to add that to the Gnome Session so it’s permanent.

  • OO.org works fine thankfully. That was a showstopper bug. I even considered using Mac OS X for a moment.

Backuppc is reinstalled and configured. It now has nice RRD graphs! I’m also blown away by the folder sharing in Nautilus. This might have been available in 8.04 but I never noticed. Sharing folders via SMB has never been so easy!

I haven’t reinstalled everything I need yet, but I’m happy that my desktop is working again.

How to upgrade Ubuntu

upgrading ubuntu

I hit the Upgrade button and I presume it’s doing it’s thing. The Ubuntu 8.04 ‘Hardy Heron’ Release Notes have just popped up so it’s time to click the “Upgrade” button again. Tom has some great tips for post install configuration.

I’ll be happy if SDLMame, mplayer, UAE and Vice continue to work as normal after the upgrade. Finger’s crossed. It’s getting easier and easier to upgrade Linux distros these days!

Update! Ubuntu Hardy is now installed and it appears to be working fine. There was a problem with SDLMame unfortunately. This dialog appeared at the end of the upgrade:

ubuntu upgrade problem

I didn’t think that would be a problem to fix but then the same dialog appeared saying the “update-manager” had failed to upgrade! Oh no! Anyway, I clicked Close, thinking it was related to the SDLMame problem and then this shocker appeared:

could not upgrade!

Ah crap! It took over a day of downloading packages to get this far. Sheesh. I closed that dialog and then, nothing. The update manager closed too and I was left looking at a blank desktop. Thinking I had nothing to lose, I rebooted and to my joy up popped Ubuntu Hardy!

I reinstalled SDLMame which fixed the problems with that. Everything else works ok and I’m just wondering if I’m missing anything because the upgrade aborted? Who knows. It works. I’m happy.

HOWTO: Ubuntu desktop visual effects on Dell D630

The Dell Latitude D630 comes with a number of different video cards but if you use the Intel chipset you may be frustrated when trying to activate the visual effects eye candy of Compiz:

Ubuntu Visual Effects

Checking either of the lower two options brings up this alert saying, “Desktop effects could not be enabled”.

Ubuntu Visual Effects

I didn’t bother trying to fix it for ages and put it down to using Ubuntu on exotic hardware. Fortunately it’s simple to get working. I just needed to install the xGL server:

# aptitude install xserver-xgl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following NEW packages will be automatically installed:
  libglitz-glx1 libglitz1
The following NEW packages will be installed:
  libglitz-glx1 libglitz1 xserver-xgl
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/1843kB of archives. After unpacking 4854kB will be used.
Do you want to continue? [Y/n/?]

Once I logged out (and rebooted, for some reason my external monitor doesn’t always “catch” when I restart X) and back in again xGL was loaded and I was able to enable desktop visual effects. Despite my misgivings about using an embedded graphics chip it actually works really well. Windows bounced around, bent out of shape and did lots of nice animation stuff.

Then I removed the whole lot by uninstalling the xserver-xgl package again. Why? Unfortunately it conflicts with other openGL apps. In a toss up between fancy desktop effects and decent SDLMame performance, SDLMame wins hands down. It’s nice to know the visual effects work though!

How to umount when the device is busy

It happens all the time doesn’t it? You need to unmount a CD or you want to pack away the external drive but when you try to umount it you get the dreaded “device is busy” message. Wouldn’t it be great if Linux actually told you what was keeping the drive busy? Here we are in 2008, I’m using Ubuntu Gutsy, and that message hasn’t changed in all the years I’ve used Linux.

# umount /media/disk/
umount: /media/disk: device is busy
umount: /media/disk: device is busy

First thing you’ll do will probably be to close down all your terminals and xterms but here’s a better way. You can use the fuser command to find out which process was keeping the device busy:

# fuser -m /dev/sdc1
/dev/sdc1: 538
# ps auxw|grep 538
donncha 538 0.4 2.7 219212 56792 ? SLl Feb11 11:25 rhythmbox

Rhythmbox is the culprit! Close that down and umount the drive. Problem solved!

Ubuntu WiFi problems on the Dell D630 laptop

Wireless networking was always a bit patchy for me on my Dell Latitude D630 while running Ubuntu Gutsy version of Linux. It would work fine for ages and then freeze up suddenly, requiring a hard reboot to get things working (Apache would become unkillable, I guess because it was attached to the broken Wireless networking driver.) Problems always showed up when I transferred large amounts of data between Linux and my Macbook. Files copied fine for a few minutes and then the whole house of cards would collapse. Crash! Boom!

The first time I looked for a solution nothing turned up, but eventually I went searching again, and after digging into all sorts of forums and websites I found the simpe solution on the Dell Linux Wiki:

Create a file called /etc/modprobe.d/blacklist-ipw3945 and add:

blacklist ipw3945

Add to /etc/modules:

iwl3945

Reboot after doing that and all will be fine in the world again! I haven’t had any networking issues since replacing the ipw3945 driver with the iwl3945 one!

Ubuntu Gutsy on the Dell Latitude D630

I previously documented my problems with Ubuntu and the DVD in the D630 but the upgrade to Ubuntu 7.10 Gutsy From Feisty went almost painlessly.

ubuntu 710 upgrade

All the packages downloaded and installed through the nice GUI front end. I was able to work away while they downloaded and for most of the time during install too, but when I rebooted I found that sound wasn’t working! I found this solution but I didn’t want to compile a kernel again. That’s so 90′s and this is 2007! Instead I checked my grub menu.lst and found there was an older 2.6.20 kernel listed there. A quick reboot later and sound works again, and it’s even louder! WiFi never stopped working thankfully but if you’re having problems, the page above explains what you need to install to get it working.

I haven’t tried the eye candy features yet, but so far the system feels springier and lighter, even with the old kernel. Let’s hope it stays that way!

Bah. GIMP 2.4rc3 broke a lot of the Script-fu scripts I use. I read about this somewhere. Time to get my hands dirty in my lomo plugin for starters.

Nice! Gthumb supports RAW images although it takes ages to initially process them initially.

Ubuntu Linux on Dell D630: the DVD

Getting the DVD drive working in Ubuntu Feisty on my Dell D630 laptop was one of the tasks that eluded me until a few minutes ago when I went searching again and found the solution.

At first I tried this and used the ide-generic driver. Linux recognised the drive, but as the page above says, it doesn’t give you any DMA modes. I tried the Bourne Supremacy, just to see if anything would happen, but Totem just sat there and the system became sluggish while the CD made some whirring noises. That’s a sure sign that DMA isn’t working!

That wasn’t going to be satisfactory, so I kept searching. This page and some of the Ubuntu forums suggest loading the “piix” and “ata_piix” modules. I tried to modprobe them without luck, but when I added “piix” to my /etc/modules and rebooted my DVD drive was found!

DMA is now enabled and everything works ok. Even got the film to play in Mplayer and it was very smooth.

# hdparm -i /dev/hda

/dev/hda:

Model=TSSTcorp DVD+/-RW TS-L632D, FwRev=DE04, SerialNo=
Config={ Fixed Removeable DTR10Mbs nonMagnetic }
RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=0kB, MaxMultSect=0
(maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
IORDY=on/off, tPIO={min:227,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2
AdvancedPM=no

# hdparm /dev/hda

/dev/hda:
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 1 (on)
readonly = 0 (off)
readahead = 256 (on)

How labels saved my life

Well, they made it easier. Saved might be a little strong. When using a Unix based system you use a file called /etc/fstab to designate all the hard drives and external storage like flash cards and where they will mount or live on your filesystem. It’s not quite like the Windows world where everything has a drive letter, although you can use SUBST to get a similar effect on that operating system.

/etc/fstab is easy to maintain when all your drives stay in one place, but since I’m using 3 external drives and a card reader, sometimes the device name /dev/sdX changes for each. It’s horribly frustrating changing entries in fstab just because the card reader wasn’t plugged in when the computer booted into Ubuntu Linux

That all changed when I assigned labels to each drive. Now fstab entries reference those labels instead of devices! The following line,

/dev/sdc1 /media/disk auto rw,user,noauto 0 0

becomes

LABEL=DATA /media/disk auto rw,user,noauto 0 0

So, even if the device changes from sdc1 to sdd1 /media/disk will always mount!

Here’s a great tutorial on how to assign labels to disks, and how to modify your /etc/fstab to support them. It might seem like a pain at first but it’s well worth it!