Comment 20 for bug 548513

Revision history for this message
Jerone Young (jerone) wrote : Re: Some firewire disks not working under 10.04

I've found, what I think, is a good solution to the problem for now.

The hdparm udev rule that is launching hdparm. What hdparm is tyring to do is enable ATA passthrough for drives that claim to support it (most newer drives do). The problem is there doesn't seem to be proper kernel support or many drives really don't support it.

What I have done is found a way to identify firewire & usb drives and tell the udev rule to not try and run hdparm to activate ATA passthrough.

So changing /lib/udev/rules.d/85-hdparm to:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="[sh]d[a-z]", \
 ENV{ID_PATH}!="pci-*-ieee1394-*|pci-*-usb-*", \
 RUN+="/lib/udev/hdparm"

* This fix does expose a separate issue in udev for firewire drives. Udev tries to create a second symbolic link causing a kernel warning from sysfs. The drive works though. Will get this 2nd issue resolved also.

Also here is a clip from the udev db of how the drive is exposed in udev:
P: /devices/pci0000:00/0000:00:1c.4/0000:0d:00.3/fw-host0/0090a9236e69e657/0090a9236e69e657-0/host6/target6:0:0/6:0:0:0/block/sdb
N: sdb
W: 53
S: block/8:16
S: disk/by-id/ieee1394-0090a9236e69e657:0:0
S: disk/by-path/pci-0000:0d:00.3-ieee1394-0x0090a9236e69e657:0:0
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:0d:00.3/fw-host0/0090a9236e69e657/0090a9236e69e657-0/host6/target6:0:0/6:0:0:0/block/sdb
E: MAJOR=8
E: MINOR=16
E: DEVNAME=/dev/sdb
E: DEVTYPE=disk
E: SUBSYSTEM=block
E: ID_SCSI=1
E: ID_VENDOR=WD
E: ID_VENDOR_ENC=WD\x20\x20\x20\x20\x20\x20
E: ID_MODEL=My_Book
E: ID_MODEL_ENC=My\x20Book\x20\x20\x20\x20\x20\x20\x20\x20\x20
E: ID_REVISION=1028
E: ID_TYPE=disk
E: ID_BUS=scsi
E: ID_PATH=pci-0000:0d:00.3-ieee1394-0x0090a9236e69e657:0:0
E: ID_PART_TABLE_TYPE=dos
E: UDISKS_PRESENTATION_NOPOLICY=0
E: UDISKS_PARTITION_TABLE=1
E: UDISKS_PARTITION_TABLE_SCHEME=mbr
E: UDISKS_PARTITION_TABLE_COUNT=1
E: DEVLINKS=/dev/block/8:16 /dev/disk/by-id/ieee1394-0090a9236e69e657:0:0 /dev/disk/by-path/pci-0000:0d:00.3-ieee1394-0x0090a9236e69e657:0:0