* Writing udev Rules by Daniel Drake (dsd) Version 0.72
@ 2007-09-18 18:16 Rick Pizzi
2007-09-18 19:12 ` Robby Workman
2007-09-18 19:21 ` Matthias Schwarzott
0 siblings, 2 replies; 3+ messages in thread
From: Rick Pizzi @ 2007-09-18 18:16 UTC (permalink / raw)
To: linux-hotplug
[-- 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
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: Writing udev Rules by Daniel Drake (dsd) Version 0.72
2007-09-18 18:16 Writing udev Rules by Daniel Drake (dsd) Version 0.72 Rick Pizzi
@ 2007-09-18 19:12 ` Robby Workman
2007-09-18 19:21 ` Matthias Schwarzott
1 sibling, 0 replies; 3+ messages in thread
From: Robby Workman @ 2007-09-18 19:12 UTC (permalink / raw)
To: linux-hotplug
Rick Pizzi wrote:
> 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.
I think this is closer to what you want -- note that the rule contents
come from the udevinfo output. Also note that I didn't change the
NAME of the device node assigned - that's just not a good idea IMHO.
SUBSYSTEMS="usb", \
ATTRS{serial}="0000160EF172FFE1", \
ATTRS{product}="U3 Cruzer Micro", \
ATTRS{manufacturer}="SanDisk Corporation", \
NAME="%k", SYMLINK+="MICRO2GB"
-RW
-------------------------------------------------------------------------
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/
_______________________________________________
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
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: Writing udev Rules by Daniel Drake (dsd) Version 0.72
2007-09-18 18:16 Writing udev Rules by Daniel Drake (dsd) Version 0.72 Rick Pizzi
2007-09-18 19:12 ` Robby Workman
@ 2007-09-18 19:21 ` Matthias Schwarzott
1 sibling, 0 replies; 3+ messages in thread
From: Matthias Schwarzott @ 2007-09-18 19:21 UTC (permalink / raw)
To: linux-hotplug
On Dienstag, 18. September 2007, Robby Workman wrote:
> I think this is closer to what you want -- note that the rule contents
> come from the udevinfo output. Also note that I didn't change the
> NAME of the device node assigned - that's just not a good idea IMHO.
>
> SUBSYSTEMS="usb", \
> ATTRS{serial}="0000160EF172FFE1", \
> ATTRS{product}="U3 Cruzer Micro", \
> ATTRS{manufacturer}="SanDisk Corporation", \
> NAME="%k", SYMLINK+="MICRO2GB"
>
If you already consider changing NAME not a good idea I suggest to completely
delete NAME=... from the rule. Then other rules intended to change NAME can
do this. And the symlink will in every case point to the correct device. If
NAME does not get set in any rule it still defaults to "%k".
Matthias
--
Matthias Schwarzott (zzam)
-------------------------------------------------------------------------
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/
_______________________________________________
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-09-18 19:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-18 18:16 Writing udev Rules by Daniel Drake (dsd) Version 0.72 Rick Pizzi
2007-09-18 19:12 ` Robby Workman
2007-09-18 19:21 ` Matthias Schwarzott
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).