# udev 146-r1 to 149 custom rule breakage[SOLVED]

## xiber

Have already seen a few posts about this but nothing that answers my specific question. I (have/had) a few rules of the form:

```
BUS=="scsi", SYSFS{model}=="iPod*", KERNEL=="sd?2", NAME="%k", SYMLINK+="ipod"

BUS=="scsi", SYSFS{model}=="L250R0*", KERNEL=="sd?1", NAME="%k", SYMLINK+="nexred"

BUS=="scsi", SYSFS{model}=="L300R0*", KERNEL=="sd?1", NAME="%k", SYMLINK+="nexblue"
```

Of course the new udev complains, but simply replacing BUS with SUBSYSTEM, SYSFS with ATTRS, and removing NAME="%k" does not make the new rules work. (The old rules still work for now, but udev complains alot). Any idea how to make  the new rules work?

The L250R0 & L300R0 are a couple of external usb drives in nexstar3 enclosures. More info from lshal for the L300R0:

```
udi = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_02_2_if0_0_scsi_host_0_scsi_device_lun0'

  info.linux.driver = 'sd'  (string)

  info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_02_2_if0_0_scsi_host_0'  (string)

  info.product = 'SCSI Device'  (string)

  info.subsystem = 'scsi'  (string)

  info.udi = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_02_2_if0_0_scsi_host_0_scsi_device_lun0'  (string)

  linux.hotplug_type = 2  (0x2)  (int)

  linux.subsystem = 'scsi'  (string)

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.2/usb3/3-1/3-1:1.0/host3/target3:0:0/3:0:0:0'  (string)

  scsi.bus = 0  (0x0)  (int)

  scsi.host = 3  (0x3)  (int)

  scsi.lun = 0  (0x0)  (int)

  scsi.model = 'L300R0'  (string)

  scsi.target = 0  (0x0)  (int)

  scsi.type = 'disk'  (string)

  scsi.vendor = 'Maxtor 6'  (string)

udi = '/org/freedesktop/Hal/devices/storage_serial_Maxtor_6_L300R0_DEF10A8C0D34_0_0'

  block.device = '/dev/sda'  (string)

  block.is_volume = false  (bool)

  block.major = 8  (0x8)  (int)

  block.minor = 0  (0x0)  (int)

  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Maxtor_6_L300R0_DEF10A8C0D34_0_0'  (string)

  info.capabilities = {'storage', 'block'} (string list)

  info.category = 'storage'  (string)

  info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_02_2_if0_0_scsi_host_0_scsi_device_lun0'  (string)

  info.product = 'L300R0'  (string)

  info.udi = '/org/freedesktop/Hal/devices/storage_serial_Maxtor_6_L300R0_DEF10A8C0D34_0_0'  (string)

  info.vendor = 'Maxtor 6'  (string)

  linux.hotplug_type = 3  (0x3)  (int)

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.2/usb3/3-1/3-1:1.0/host3/target3:0:0/3:0:0:0/block/sda'  (string)

  storage.automount_enabled_hint = true  (bool)

  storage.bus = 'usb'  (string)

  storage.drive_type = 'disk'  (string)

  storage.firmware_version = '0000'  (string)

  storage.hotpluggable = true  (bool)

  storage.lun = 0  (0x0)  (int)

  storage.media_check_enabled = false  (bool)

  storage.model = 'L300R0'  (string)

  storage.no_partitions_hint = false  (bool)

  storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_02_2_if0_0'  (string)

  storage.partitioning_scheme = 'mbr'  (string)

  storage.removable = false  (bool)

  storage.removable.media_available = true  (bool)

  storage.removable.media_size = 300090728448  (0x45decd2000)  (uint64)

  storage.requires_eject = false  (bool)

  storage.serial = 'Maxtor_6_L300R0_DEF10A8C0D34-0:0'  (string)

  storage.size = 300090728448  (0x45decd2000)  (uint64)

  storage.vendor = 'Maxtor 6'  (string)

udi = '/org/freedesktop/Hal/devices/volume_uuid_32f9a24c_0579_4bd5_b300_492ea08215ef'

  block.device = '/dev/sda1'  (string)

  block.is_volume = true  (bool)

  block.major = 8  (0x8)  (int)

  block.minor = 1  (0x1)  (int)

  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Maxtor_6_L300R0_DEF10A8C0D34_0_0'  (string)

  info.capabilities = {'volume', 'block'} (string list)

  info.category = 'volume'  (string)

  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)

  info.parent = '/org/freedesktop/Hal/devices/storage_serial_Maxtor_6_L300R0_DEF10A8C0D34_0_0'  (string)

  info.product = 'Volume (ext3)'  (string)

  info.udi = '/org/freedesktop/Hal/devices/volume_uuid_32f9a24c_0579_4bd5_b300_492ea08215ef'  (string)

  linux.hotplug_type = 3  (0x3)  (int)

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.2/usb3/3-1/3-1:1.0/host3/target3:0:0/3:0:0:0/block/sda/sda1'  (string)

  org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list)

  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list)

  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)

  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)

  volume.block_size = 512  (0x200)  (int)

  volume.fstype = 'ext3'  (string)

  volume.fsusage = 'filesystem'  (string)

  volume.fsversion = '1.0'  (string)

  volume.ignore = false  (bool)

  volume.is_disc = false  (bool)

  volume.is_mounted = false  (bool)

  volume.is_mounted_read_only = false  (bool)

  volume.is_partition = true  (bool)

  volume.label = ''  (string)

  volume.linux.is_device_mapper = false  (bool)

  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec', 'acl', 'user_xattr', 'data='} (string list)

  volume.mount_point = ''  (string)

  volume.num_blocks = 586099332  (0x22ef2a84)  (uint64)

  volume.partition.media_size = 300090728448  (0x45decd2000)  (uint64)

  volume.partition.number = 1  (0x1)  (int)

  volume.partition.start = 32256  (0x7e00)  (uint64)

  volume.size = 300082857984  (0x45de550800)  (uint64)

  volume.unmount.valid_options = {'lazy'} (string list)

  volume.uuid = '32f9a24c-0579-4bd5-b300-492ea08215ef'  (string)
```

----------

## VoidMage

Given you're trying to do that with udev rules, far more useful

would be output of 'udevadm info' for those devices.

----------

## xiber

Forgot about udevadm. Been a while since I set these rules up. Made a mistake, used SUBSYSTEM instead of SUBSYSTEMS (with an S). Thanks.

----------

