From: Rick Pizzi <pizzipie@xplornet.com>
To: linux-hotplug@vger.kernel.org
Subject: Writing udev Rules by Daniel Drake (dsd) Version 0.72
Date: Tue, 18 Sep 2007 18:16:22 +0000 [thread overview]
Message-ID: <46F015F6.6030908@xplornet.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 1015 bytes --]
Hi,
I have been trying to follow subject Daniel Drakes instructions on how
to have various devices on my Ubuntu Feisty system mount with
persistent names. As an example the attached dmesgSDB file shows my
'U3 Cruzer Micro' as sdb. The udevSDB attached file shows the result
of the command:
"*sudo udevinfo -a -p $(udevinfo -q path -n /dev/sdb)*". I note there is
no *SYSFS *attributes only *ATTRS*. Also there is no place that
*BUS="usb" *shows up, only *KERNELS=="4.4"*. I have cobbled up a rule
attached as *10-local.rules* which, of course, does not work when I
re-boot my computer. The attached file *udevtestSDB* mentions U3 Cruzer
Micro so something is trying to work, I guess.
Can you help me by explaining what is going on here? Why doesn't
udevinfo show information like Daniel's article shows? How do I use
the attributes from *usbview*? Usbview shows information such as:
Manufacturer: SanDisk Corporation, Product Id:5406 etc.
Thanks in advance for your help,
Rick P.
[-- Attachment #1.2: Type: text/html, Size: 1318 bytes --]
[-- Attachment #2: dmesgSDB --]
[-- Type: text/plain, Size: 500 bytes --]
[ 4147.836000] sdb: Write Protect is off
[ 4147.836000] sdb: Mode Sense: 03 00 00 00
[ 4147.836000] sdb: assuming drive cache: write through
[ 4147.836000] SCSI device sdb: 4001422 512-byte hdwr sectors (2049 MB)
[ 4147.836000] sdb: Write Protect is off
[ 4147.836000] sdb: Mode Sense: 03 00 00 00
[ 4147.836000] sdb: assuming drive cache: write through
[ 4147.836000] sdb: sdb1
[ 4147.840000] sd 3:0:0:0: Attached scsi removable disk sdb
[ 4147.840000] sd 3:0:0:0: Attached scsi generic sg2 type 0
[-- Attachment #3: udevSDB --]
[-- Type: text/plain, Size: 4105 bytes --]
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/sdb':
KERNEL=="sdb"
SUBSYSTEM=="block"
DRIVER==""
ATTR{stat}==" 327 505 868 260 0 0 0 0 0 228 260"
ATTR{size}=="4001422"
ATTR{removable}=="1"
ATTR{range}=="16"
ATTR{dev}=="8:16"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host3/target3:0:0/3:0:0:0':
KERNELS=="3:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{ioerr_cnt}=="0x1"
ATTRS{iodone_cnt}=="0x2d6"
ATTRS{iorequest_cnt}=="0x2d6"
ATTRS{iocounterbits}=="32"
ATTRS{timeout}=="30"
ATTRS{state}=="running"
ATTRS{rev}=="3.27"
ATTRS{model}=="U3 Cruzer Micro "
ATTRS{vendor}=="SanDisk "
ATTRS{scsi_level}=="3"
ATTRS{type}=="0"
ATTRS{queue_type}=="none"
ATTRS{queue_depth}=="1"
ATTRS{device_blocked}=="0"
ATTRS{max_sectors}=="240"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host3/target3:0:0':
KERNELS=="target3:0:0"
SUBSYSTEMS==""
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/host3':
KERNELS=="host3"
SUBSYSTEMS==""
DRIVERS==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0':
KERNELS=="4-4:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="usb-storage"
ATTRS{modalias}=="usb:v0781p5406d0010dc00dsc00dp00ic08isc06ip50"
ATTRS{bInterfaceProtocol}=="50"
ATTRS{bInterfaceSubClass}=="06"
ATTRS{bInterfaceClass}=="08"
ATTRS{bNumEndpoints}=="02"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}=="00"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4/4-4':
KERNELS=="4-4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{serial}=="0000160EF172FFE1"
ATTRS{product}=="U3 Cruzer Micro"
ATTRS{manufacturer}=="SanDisk Corporation"
ATTRS{maxchild}=="0"
ATTRS{version}==" 2.00"
ATTRS{devnum}=="5"
ATTRS{speed}=="480"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bNumConfigurations}=="1"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceClass}=="00"
ATTRS{bcdDevice}=="0010"
ATTRS{idProduct}=="5406"
ATTRS{idVendor}=="0781"
ATTRS{bMaxPower}=="200mA"
ATTRS{bmAttributes}=="80"
ATTRS{bConfigurationValue}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{configuration}==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4':
KERNELS=="usb4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{serial}=="0000:00:1d.7"
ATTRS{product}=="EHCI Host Controller"
ATTRS{manufacturer}=="Linux 2.6.20-16-generic ehci_hcd"
ATTRS{maxchild}=="6"
ATTRS{version}==" 2.00"
ATTRS{devnum}=="1"
ATTRS{speed}=="480"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bNumConfigurations}=="1"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceClass}=="09"
ATTRS{bcdDevice}=="0206"
ATTRS{idProduct}=="0000"
ATTRS{idVendor}=="0000"
ATTRS{bMaxPower}==" 0mA"
ATTRS{bmAttributes}=="e0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{configuration}==""
looking at parent device '/devices/pci0000:00/0000:00:1d.7':
KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci_hcd"
ATTRS{msi_bus}==""
ATTRS{broken_parity_status}=="0"
ATTRS{enable}=="1"
ATTRS{modalias}=="pci:v00008086d000024CDsv00001028sd0000014Ebc0Csc03i20"
ATTRS{local_cpus}=="ff"
ATTRS{irq}=="11"
ATTRS{class}=="0x0c0320"
ATTRS{subsystem_device}=="0x014e"
ATTRS{subsystem_vendor}=="0x1028"
ATTRS{device}=="0x24cd"
ATTRS{vendor}=="0x8086"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
[-- Attachment #4: 10-local.rules --]
[-- Type: text/plain, Size: 236 bytes --]
##BUS=="usb", ATTRS{serial}=="DEF1031F4402", ATTRS{manufacturer}=="Cypress Semiconductor", NAME{all-partitions}=="IOGEAR"
KERNELS=="4-4",ATTRS{product}=="U3 Cruzer Micro", ATTRS{manufacturer}=="SanDisk Corporation", SYMLINK+="MICRO2GB"
[-- Attachment #5: udevtestSDB --]
[-- Type: text/plain, Size: 5108 bytes --]
parse_file: reading '/etc/udev/rules.d/00-init.rules' as rules file
parse_file: reading '/etc/udev/rules.d/05-options.rules' as rules file
parse_file: reading '/etc/udev/rules.d/10-local.rules' as rules file
parse_file: reading '/etc/udev/rules.d/20-names.rules' as rules file
parse_file: reading '/etc/udev/rules.d/25-dmsetup.rules' as rules file
parse_file: reading '/etc/udev/rules.d/25-iftab.rules' as rules file
parse_file: reading '/etc/udev/rules.d/30-cdrom_id.rules' as rules file
parse_file: reading '/etc/udev/rules.d/40-permissions.rules' as rules file
parse_file: reading '/etc/udev/rules.d/45-hplip.rules' as rules file
parse_file: reading '/etc/udev/rules.d/45-libgphoto2.rules' as rules file
parse_file: reading '/etc/udev/rules.d/45-libsane.rules' as rules file
parse_file: reading '/etc/udev/rules.d/50-xserver-xorg-input-wacom.rules' as rules file
parse_file: reading '/etc/udev/rules.d/60-libpisock.rules' as rules file
parse_file: reading '/etc/udev/rules.d/60-symlinks.rules' as rules file
parse_file: reading '/etc/udev/rules.d/65-persistent-input.rules' as rules file
parse_file: reading '/etc/udev/rules.d/65-persistent-storage.rules' as rules file
parse_file: reading '/etc/udev/rules.d/80-programs.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-alsa.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-brltty.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-hdparm.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-hplj10xx.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-hwclock.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-ifupdown.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-pcmcia.rules' as rules file
parse_file: reading '/etc/udev/rules.d/90-modprobe.rules' as rules file
parse_file: reading '/etc/udev/rules.d/95-hal.rules' as rules file
parse_file: reading '/etc/udev/rules.d/99-udevmonitor.rules' as rules file
This program is for debugging only, it does not 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/sdb' from subsystem 'block'
udev_rules_get_name: add symlink 'MICRO2GB'
run_program: 'usb_id -x'
run_program: '/lib/udev/usb_id' (stdout) 'ID_VENDOR=SanDisk'
run_program: '/lib/udev/usb_id' (stdout) 'ID_MODEL=U3_Cruzer_Micro'
run_program: '/lib/udev/usb_id' (stdout) 'ID_REVISION=3.27'
run_program: '/lib/udev/usb_id' (stdout) 'ID_SERIAL=SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0'
run_program: '/lib/udev/usb_id' (stdout) 'ID_SERIAL_SHORT=0000160EF172FFE1'
run_program: '/lib/udev/usb_id' (stdout) 'ID_TYPE=disk'
run_program: '/lib/udev/usb_id' (stdout) 'ID_INSTANCE=0:0'
run_program: '/lib/udev/usb_id' (stdout) 'ID_BUS=usb'
run_program: '/lib/udev/usb_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-id/usb-SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0'
run_program: 'path_id /block/sdb'
run_program: '/lib/udev/path_id' (stdout) 'ID_PATH=pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0'
run_program: '/lib/udev/path_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0'
udev_rules_get_name: no node name set, will use kernel name 'sdb'
udev_device_event: device '/block/sdb' already in database, cleanup
udev_node_add: creating device node '/dev/sdb', major = '8', minor = '16', mode = '0660', uid = '0', gid = '46'
udev_node_update_symlinks: update symlink 'MICRO2GB' of '/block/sdb'
udev_db_get_devices_by_name: no index directory '/dev/.udev/names/MICRO2GB': No such file or directory
update_link: found -1 devices with name 'MICRO2GB'
update_link: no reference left, remove 'MICRO2GB'
udev_node_update_symlinks: update symlink 'disk/by-id/usb-SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0' of '/block/sdb'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/disk%2fby-id%2fusb-SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0'
update_link: found 1 devices with name 'disk/by-id/usb-SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0'
update_link: found '/block/sdb' for 'disk/by-id/usb-SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0'
update_link: compare (our own) priority of '/block/sdb' 0 >= 0
update_link: 'disk/by-id/usb-SanDisk_U3_Cruzer_Micro_0000160EF172FFE1-0:0' with target 'sdb' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0' of '/block/sdb'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/disk%2fby-path%2fpci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0'
update_link: found 1 devices with name 'disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0'
update_link: found '/block/sdb' for 'disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0'
update_link: compare (our own) priority of '/block/sdb' 0 >= 0
update_link: 'disk/by-path/pci-0000:00:1d.7-usb-0:4:1.0-scsi-0:0:0:0' with target 'sdb' has the highest priority 0, create it
main: run: 'socket:/org/freedesktop/hal/udev_event'
main: run: 'socket:/org/kernel/udev/monitor'
[-- Attachment #6: Type: text/plain, Size: 228 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
[-- Attachment #7: Type: text/plain, Size: 226 bytes --]
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next reply other threads:[~2007-09-18 18:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-18 18:16 Rick Pizzi [this message]
2007-09-18 19:12 ` Writing udev Rules by Daniel Drake (dsd) Version 0.72 Robby Workman
2007-09-18 19:21 ` Matthias Schwarzott
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46F015F6.6030908@xplornet.com \
--to=pizzipie@xplornet.com \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).