My PCMCIA wireless card was flaking out today, after I got my IrDA port working; I’d reconfigued the port in the BIOS to use IRQ 3. After some time I found that the wireless card was also choosing IRQ 3, thanks to the output from
dmesg. Pushing the IrDA port to IRQ 4 fixed that little conflict. I’m still left wondering why in this day and age I’m editing IRQ settings on a laptop that’s barely a year old.
I started out trying to get photos off of my phone, which I’ve successfully done in the past but always forget how; today the phone and laptop just refused to connect. The cause of the problem was that the
serial8250 driver was grabbing the IO ports and IRQ first, and preventing the
nsc-ircc driver from getting it later in the boot process. I think the fix for that was to put
nsc-ircc at the top of
/etc/modules; at least, it’s working now.
As I was rolling on my “fix things that are pissing me off” rampage, I decided to crack at the “why the hell isn’t DMA working” one. The X40 has an ICH4-M chipset, handled by the
piix driver. The driver was loading, but
hdparm was always getting this:
# hdparm -d 1 /dev/hda /dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted using_dma = 0 (off)
After spending way too long following threads full of erroneous opinion on the ubuntu forums, debian-user mailing list archives, and other useful tomes, I discovered this clue in
ICH4: port 0x01f0 already claimed by ide0
which led me to this post, cluing me to the fact that the
ide-generic driver was being greedy. Again, a driver conflict, but to fix this one, I had to put
piix at the top of
/etc/mkinitramfs/modules and then rebuild the initrd (running
dpkg-reconfigure on your kernel package will take care of this). So, thanks Christophe, for your bug report that finally helped solve this one, and now holy shit my computer is fast.