[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Problem with udev rules under etch



Hi all,

Yesterday I upgraded my system to etch, and now my udev rules aren't working
any more. I've had a read of the man pages and have changed one of them (for
my parallel ZIP drive) to read:

SUBSYSTEMS=="scsi", ATTR{model}=="ZIP 100", KERNEL=="sd?4",  NAME=="%k",
        SYMLINK+="zip"

(I've wrapped this line for clarity, it appears all on one line in the file)

udevinfo -a -p $(udevinfo -q path -n /dev/sda)

reports:


Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/block/sda':
    KERNEL=="sda"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{stat}=="      10        7      136     1256        0        
0        0        0        0     1256     1256"
    ATTR{size}=="196608"
    ATTR{removable}=="1"
    ATTR{range}=="16"
    ATTR{dev}=="8:0"

  looking at parent device '/devices/platform/host9/target9:0:6/9:0:6:0':
    KERNELS=="9:0:6:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{ioerr_cnt}=="0x5"
    ATTRS{iodone_cnt}=="0x26"
    ATTRS{iorequest_cnt}=="0x26"
    ATTRS{iocounterbits}=="32"
    ATTRS{timeout}=="30"
    ATTRS{state}=="running"
    ATTRS{rev}=="D.13"
    ATTRS{model}=="ZIP 100         "
    ATTRS{vendor}=="IOMEGA  "
    ATTRS{scsi_level}=="3"
    ATTRS{type}=="0"
    ATTRS{queue_type}=="none"
    ATTRS{queue_depth}=="1"
    ATTRS{device_blocked}=="0"

  looking at parent device '/devices/platform/host9/target9:0:6':
    KERNELS=="target9:0:6"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/platform/host9':
    KERNELS=="host9"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""

So as far as I can tell, matching against the model attribute in the scsi
section should work. However, I'm not getting the symlink created.

udevtest /block/sda 

reports:

parse_file: reading '/etc/udev/rules.d/020_permissions.rules' as rules file
parse_file: reading '/etc/udev/rules.d/local.rules' as rules file
parse_file: reading '/etc/udev/rules.d/udev.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z20_persistent-input.rules' as 
	rules file
parse_file: reading '/etc/udev/rules.d/z20_persistent.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z25_persistent-net.rules' as 
	rules file
parse_file: reading '/etc/udev/rules.d/z45_persistent-net-generator.rules' 
	as rules file
parse_file: reading '/etc/udev/rules.d/z50_run.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z55_hotplug.rules' as rules file
parse_file: reading '/etc/udev/rules.d/z60_hdparm.rules' as rules file
This program is for debugging only, it does not create any node,
or run any program specified by a RUN key. It may show incorrect results,
if rules match against subsystem specfic kernel event variables.

main: looking at device '/block/sda' from subsystem 'block'
run_program: 'usb_id -x'
run_program: '/lib/udev/usb_id' returned with status 1
run_program: 'scsi_id -g -x -s /block/sda -d /dev/.tmp-8-0'
run_program: '/lib/udev/scsi_id' returned with status 1
run_program: 'scsi_id -g -x -a -s /block/sda -d /dev/.tmp-8-0'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_VENDOR=IOMEGA'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_MODEL=ZIP_100'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_REVISION=D.13'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_SERIAL='
run_program: '/lib/udev/scsi_id' (stdout) 'ID_SERIAL_SHORT='
run_program: '/lib/udev/scsi_id' (stdout) 'ID_TYPE=disk'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_BUS=scsi'
run_program: '/lib/udev/scsi_id' returned with status 0
run_program: 'edd_id --export /dev/.tmp-8-0'
run_program: '/lib/udev/edd_id' (stderr) 'no kernel EDD support'
run_program: '/lib/udev/edd_id' returned with status 2
run_program: 'path_id /block/sda'
run_program: '/lib/udev/path_id' (stdout) 'ID_PATH=scsi-0:0:6:0'
run_program: '/lib/udev/path_id' returned with status 1
udev_rules_get_name: no node name set, will use kernel name 'sda'
udev_device_event: device '/block/sda' already in database, validate 
	currently present symlinks
udev_node_add: creating device node '/dev/sda', major = '8', minor = '0', 
	mode = '0660', uid = '0', gid = '25'
main: run: 'socket:/org/kernel/udev/monitor'

So, it's read in my 'local.rules' file (which is where the rule I quoted
above was) but hasn't done anything as it doesn't appear to have found a
match.

Can anyone offer any assistance? As none of my rules are working, I suspect
that if I can work out what I've done wrong for this one I should be able to
apply it to the others.

Thanks in advance for any assistance

Andy



Reply to: