From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Bowler Date: Mon, 17 May 2010 12:43:31 +0000 Subject: Re: udev cdrom_id rules prevent unmounted CD from spinning down Message-Id: <20100517124331.GA12012@elliptictech.com> List-Id: References: <20100513153043.GA3966@elliptictech.com> In-Reply-To: <20100513153043.GA3966@elliptictech.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linux-hotplug@vger.kernel.org On 12:06 Mon 17 May , Kay Sievers wrote: > To make sure you don't have any other stuff accessing the device, can > you please attach the output of: > udevadm test /class/block/sr0 > so we can make sure it's nothing we don't think of. Appended. > To narrow down the blkid issue, if you comment out the rule, and let > the drive spin down, then run: > /sbin/blkid -p -oudev /dev/sr0 > manually, do you see while doing that any events generated in: > udevadm monitor > ? The command causes the cd to spin up, but nothing is printed by udevadm monitor as a result. # udevadm test /class/block/sr0 run_command: calling: test udevadm_test: version 154 This program is for debugging only, it does not run any program, specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. parse_file: reading '/dev/.udev/rules.d/10-root-link.rules' as rules file parse_file: reading '/lib64/udev/rules.d/30-kernel-compat.rules' as rules f= ile parse_file: reading '/lib64/udev/rules.d/40-gentoo.rules' as rules file parse_file: reading '/lib64/udev/rules.d/40-usb_modeswitch.rules' as rules = file parse_file: reading '/lib64/udev/rules.d/50-firmware.rules' as rules file parse_file: reading '/lib64/udev/rules.d/50-udev-default.rules' as rules fi= le parse_file: reading '/lib64/udev/rules.d/60-cdrom_id.rules' as rules file parse_file: reading '/lib64/udev/rules.d/60-floppy.rules' as rules file parse_file: reading '/etc/udev/rules.d/60-pcmcia.rules' as rules file parse_file: reading '/lib64/udev/rules.d/60-persistent-alsa.rules' as rules= file parse_file: reading '/lib64/udev/rules.d/60-persistent-input.rules' as rule= s file parse_file: reading '/lib64/udev/rules.d/60-persistent-serial.rules' as rul= es file parse_file: reading '/lib64/udev/rules.d/60-persistent-storage-tape.rules' = as rules file parse_file: reading '/lib64/udev/rules.d/60-persistent-storage.rules' as ru= les file parse_file: reading '/lib64/udev/rules.d/60-persistent-v4l.rules' as rules = file parse_file: reading '/lib64/udev/rules.d/61-mobile-action.rules' as rules f= ile parse_file: reading '/lib64/udev/rules.d/61-persistent-storage-edd.rules' a= s rules file parse_file: reading '/etc/udev/rules.d/65-kvm.rules' as rules file parse_file: reading '/lib64/udev/rules.d/70-acl.rules' as rules file parse_file: reading '/lib64/udev/rules.d/70-hid2hci.rules' as rules file parse_file: reading '/etc/udev/rules.d/70-libgphoto2.rules' as rules file parse_file: reading '/etc/udev/rules.d/70-persistent-cd.rules' as rules file parse_file: reading '/etc/udev/rules.d/70-persistent-net.rules' as rules fi= le parse_file: reading '/lib64/udev/rules.d/75-cd-aliases-generator.rules' as = rules file parse_file: reading '/lib64/udev/rules.d/75-net-description.rules' as rules= file parse_file: reading '/lib64/udev/rules.d/75-persistent-net-generator.rules'= as rules file parse_file: reading '/lib64/udev/rules.d/75-tty-description.rules' as rules= file parse_file: reading '/lib64/udev/rules.d/78-sound-card.rules' as rules file parse_file: reading '/lib64/udev/rules.d/79-fstab_import.rules' as rules fi= le parse_file: reading '/lib64/udev/rules.d/80-drivers.rules' as rules file parse_file: reading '/etc/udev/rules.d/90-local.rules' as rules file parse_file: reading '/lib64/udev/rules.d/90-network.rules' as rules file parse_file: reading '/lib64/udev/rules.d/90-pulseaudio.rules' as rules file parse_file: reading '/lib64/udev/rules.d/95-keyboard-force-release.rules' a= s rules file parse_file: reading '/lib64/udev/rules.d/95-keymap.rules' as rules file parse_file: reading '/lib64/udev/rules.d/95-udev-late.rules' as rules file parse_file: reading '/etc/udev/rules.d/99-hsf.rules' as rules file udev_rules_new: rules use 81948 bytes tokens (6829 * 12 bytes), 18007 bytes= buffer udev_rules_new: temporary index used 29900 bytes (1495 * 20 bytes) udev_device_new_from_syspath: device 0x1790140 has devpath '/devices/pci000= 0:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0' udev_device_new_from_syspath: device 0x17a7b30 has devpath '/devices/pci000= 0:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0' udev_device_read_db: device 0x17a7b30 filled with db file data udev_rules_apply_to_event: LINK 'block/11:0' /lib64/udev/rules.d/50-udev-de= fault.rules:3 udev_rules_apply_to_event: GROUP 6 /lib64/udev/rules.d/50-udev-default.rule= s:76 udev_rules_apply_to_event: GROUP 19 /lib64/udev/rules.d/50-udev-default.rul= es:82 udev_rules_apply_to_event: LINK 'scd0' /lib64/udev/rules.d/50-udev-default.= rules:82 udev_rules_apply_to_event: IMPORT 'cdrom_id --export /dev/sr0' /lib64/udev/= rules.d/60-cdrom_id.rules:9 util_run_program: 'cdrom_id --export /dev/sr0' started util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_CD=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_CD_R=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_CD_RW=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_R=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_RW=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_RAM=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_PLUS_R=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_PLUS_RW=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_PLUS_R_DL= =3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MRW=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MRW_W=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_CD=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_SESSION_C= OUNT=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_TRACK_COU= NT=3D1' util_run_program: '/lib64/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_TRACK_COU= NT_DATA=3D1' util_run_program: 'cdrom_id --export /dev/sr0' returned with exitcode 0 udev_device_new_from_syspath: device 0x179d460 has devpath '/devices/pci000= 0:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0' udev_device_new_from_syspath: device 0x179d7b0 has devpath '/devices/pci000= 0:00/0000:00:1f.2/host1/target1:0:0' udev_device_new_from_syspath: device 0x179dae0 has devpath '/devices/pci000= 0:00/0000:00:1f.2/host1' udev_device_new_from_syspath: device 0x179de00 has devpath '/devices/pci000= 0:00/0000:00:1f.2' udev_device_new_from_syspath: device 0x179e110 has devpath '/devices/pci000= 0:00' udev_rules_apply_to_event: IMPORT 'scsi_id --export --whitelisted -d /dev/s= r0' /lib64/udev/rules.d/60-persistent-storage.rules:28 util_run_program: 'scsi_id --export --whitelisted -d /dev/sr0' started util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_SCSI=3D1' util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_VENDOR=3DOptiarc' util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_VENDOR_ENC=3DOptiarc\x= 20' util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_MODEL=3DDVD_RW_AD-7910= S' util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_MODEL_ENC=3DDVD\x20RW\= x20AD-7910S\x20' util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_REVISION=3D1.D2' util_run_program: '/lib64/udev/scsi_id' (stdout) 'ID_TYPE=CD' util_run_program: 'scsi_id --export --whitelisted -d /dev/sr0' returned wit= h exitcode 0 udev_rules_apply_to_event: IMPORT 'path_id /devices/pci0000:00/0000:00:1f.2= /host1/target1:0:0/1:0:0:0/block/sr0' /lib64/udev/rules.d/60-persistent-sto= rage.rules:47 util_run_program: 'path_id /devices/pci0000:00/0000:00:1f.2/host1/target1:0= :0/1:0:0:0/block/sr0' started util_run_program: '/lib64/udev/path_id' (stdout) 'ID_PATH=3Dpci-0000:00:1f.= 2-scsi-1:0:0:0' util_run_program: 'path_id /devices/pci0000:00/0000:00:1f.2/host1/target1:0= :0/1:0:0:0/block/sr0' returned with exitcode 0 udev_rules_apply_to_event: LINK 'disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0= ' /lib64/udev/rules.d/60-persistent-storage.rules:48 udev_rules_apply_to_event: LINK 'cdrom' /etc/udev/rules.d/70-persistent-cd.= rules:8 udev_rules_apply_to_event: LINK 'cdrw' /etc/udev/rules.d/70-persistent-cd.r= ules:9 udev_rules_apply_to_event: LINK 'dvd' /etc/udev/rules.d/70-persistent-cd.ru= les:10 udev_rules_apply_to_event: LINK 'dvdrw' /etc/udev/rules.d/70-persistent-cd.= rules:11 udev_event_execute_rules: no node name set, will use kernel supplied name '= sr0' udev_device_update_db: created db file for '/devices/pci0000:00/0000:00:1f.= 2/host1/target1:0:0/1:0:0:0/block/sr0' in '/dev/.udev/db/block:sr0' udev_node_add: creating device node '/dev/sr0', devnum=11:0, mode=0660, uid= =3D0, gid=19 udev_node_mknod: preserve file '/dev/sr0', because it has correct dev_t udev_node_mknod: preserve permissions /dev/sr0, 060660, uid=3D0, gid=19 node_symlink: preserve already existing symlink '/dev/block/11:0' to '../sr= 0' link_find_prioritized: found 'b11:0' claiming '/dev/.udev/links/scd0' link_update: creating link '/dev/scd0' to '/dev/sr0' node_symlink: preserve already existing symlink '/dev/scd0' to 'sr0' link_find_prioritized: found 'b11:0' claiming '/dev/.udev/links/disk\x2fby-= path\x2fpci-0000:00:1f.2-scsi-1:0:0:0' link_update: creating link '/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0= ' to '/dev/sr0' node_symlink: preserve already existing symlink '/dev/disk/by-path/pci-0000= :00:1f.2-scsi-1:0:0:0' to '../../sr0' link_find_prioritized: found 'b11:0' claiming '/dev/.udev/links/cdrom' link_update: creating link '/dev/cdrom' to '/dev/sr0' node_symlink: preserve already existing symlink '/dev/cdrom' to 'sr0' link_find_prioritized: found 'b11:0' claiming '/dev/.udev/links/cdrw' link_update: creating link '/dev/cdrw' to '/dev/sr0' node_symlink: preserve already existing symlink '/dev/cdrw' to 'sr0' link_find_prioritized: found 'b11:0' claiming '/dev/.udev/links/dvd' link_update: creating link '/dev/dvd' to '/dev/sr0' node_symlink: preserve already existing symlink '/dev/dvd' to 'sr0' link_find_prioritized: found 'b11:0' claiming '/dev/.udev/links/dvdrw' link_update: creating link '/dev/dvdrw' to '/dev/sr0' node_symlink: preserve already existing symlink '/dev/dvdrw' to 'sr0' udevadm_test: UDEV_LOG=3D6 udevadm_test: DEVPATH=3D/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/= 1:0:0:0/block/sr0 udevadm_test: MAJOR=11 udevadm_test: MINOR=3D0 udevadm_test: DEVNAME=3D/dev/sr0 udevadm_test: DEVTYPE=3Ddisk udevadm_test: ACTION=ADd udevadm_test: SUBSYSTEM=3Dblock udevadm_test: DEVLINKS=3D/dev/block/11:0 /dev/scd0 /dev/disk/by-path/pci-00= 00:00:1f.2-scsi-1:0:0:0 /dev/cdrom /dev/cdrw /dev/dvd /dev/dvdrw udevadm_test: ID_CDROM=3D1 udevadm_test: ID_CDROM_CD=3D1 udevadm_test: ID_CDROM_CD_R=3D1 udevadm_test: ID_CDROM_CD_RW=3D1 udevadm_test: ID_CDROM_DVD=3D1 udevadm_test: ID_CDROM_DVD_R=3D1 udevadm_test: ID_CDROM_DVD_RW=3D1 udevadm_test: ID_CDROM_DVD_RAM=3D1 udevadm_test: ID_CDROM_DVD_PLUS_R=3D1 udevadm_test: ID_CDROM_DVD_PLUS_RW=3D1 udevadm_test: ID_CDROM_DVD_PLUS_R_DL=3D1 udevadm_test: ID_CDROM_MRW=3D1 udevadm_test: ID_CDROM_MRW_W=3D1 udevadm_test: ID_CDROM_MEDIA=3D1 udevadm_test: ID_CDROM_MEDIA_CD=3D1 udevadm_test: ID_CDROM_MEDIA_SESSION_COUNT=3D1 udevadm_test: ID_CDROM_MEDIA_TRACK_COUNT=3D1 udevadm_test: ID_CDROM_MEDIA_TRACK_COUNT_DATA=3D1 udevadm_test: ID_SCSI=3D1 udevadm_test: ID_VENDOR=3DOptiarc udevadm_test: ID_VENDOR_ENC=3DOptiarc\x20 udevadm_test: ID_MODEL=3DDVD_RW_AD-7910S udevadm_test: ID_MODEL_ENC=3DDVD\x20RW\x20AD-7910S\x20 udevadm_test: ID_REVISION=3D1.D2 udevadm_test: ID_TYPE=CD udevadm_test: ID_BUS=3Dscsi udevadm_test: ID_PATH=3Dpci-0000:00:1f.2-scsi-1:0:0:0 udevadm_test: TAGS=3D:udev-acl: udevadm_test: GENERATED=3D1 --=20 Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)