summaryrefslogtreecommitdiff
path: root/extras/scsi_id/scsi_id.c
AgeCommit message (Collapse)Author
2011-10-06libudev: export udev_util_encode_string()Kay Sievers
2011-04-15fix more warningsKay Sievers
2010-09-07scsi_id: export target port groupHannes Reinecke
For ALUA support it's useful to have the target port group number of a device. Signed-off-by: Hannes Reinecke <hare@suse.de>
2010-06-25switch a few left-over from GPLv2 to GPLv2 or laterKay Sievers
2010-06-21remove a few comments in file headersKay Sievers
2009-12-04Export ID_WWN_VENDOR_EXTENSION and ID_WWN_WITH_EXTENSIONDavid Zeuthen
Some SCSI devices use the same WWN and have a WWN extension that we need to take into account when creating the /dev/disk/by-id/wwn symlinks. Thus, introduce ID_WWN_WITH_EXTENSION. This property will contain either the WWN (if no extension is present) or the WWN with the vendor extension appended. Example: # /lib/udev/ata_id/ata_id --export /dev/sda |grep WWN ID_WWN=0x5001517387d61905 ID_WWN_WITH_EXTENSION=0x5001517387d61905 # /lib/udev/scsi_id --whitelisted --export -d /dev/sdb |grep WWN ID_WWN=0x600508b400105df7 ID_WWN_VENDOR_EXTENSION=0x0000e00000d80000 ID_WWN_WITH_EXTENSION=0x600508b400105df70000e00000d80000 # /lib/udev/scsi_id --whitelisted --export -d /dev/sdc |grep WWN ID_WWN=0x600508b400105df7 ID_WWN_VENDOR_EXTENSION=0x0000e00000db0000 ID_WWN_WITH_EXTENSION=0x600508b400105df70000e00000db0000 Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-11-23scsi_id: Export WWN and Unit Serial NumberDavid Zeuthen
Since the Unit Serial Number and the WWN are useful bits of information export them as properties in the udev database. These bits of information are often printed on the physical disk, see http://people.freedesktop.org/~david/FUJITSU-MAY2036RC-sas-disk-picture.jpg and displaying them separately in the UI (or in /dev/disk) might help users identify the physical disk. This patch exports these bits of information as ID_WWN and ID_SCSI_SERIAL. Note that ata_id also use the ID_WWN property since commit 66094a4a7fc1d303e80785d586800eae9841502b (2009-11-04). Also print out ID_SCSI=1 so users of the udev database knows the disk speaks SCSI. Here's the scsi_id output from one of my SAS disks with these changes: ID_SCSI=1 ID_VENDOR=FUJITSU ID_VENDOR_ENC=FUJITSU\x20 ID_MODEL=MAY2036RC ID_MODEL_ENC=MAY2036RC\x20\x20\x20\x20\x20\x20\x20 ID_REVISION=0103 ID_TYPE=disk ID_SERIAL=3500000e01b83f520 ID_SERIAL_SHORT=500000e01b83f520 ID_WWN=0x500000e01b83f520 ID_SCSI_SERIAL=B3G1P8500RWT Unfortunately we can't overload ID_SERIAL for two reasons 1. ID_SERIAL (and ID_SERIAL_SHORT) exported by scsi_id isn't really the unit serial number (as defined by SCSI) - it is sometimes the WWN (since it is more unique than the Unit Serial Number) and complex rules (to make the serial unique) govern what value to use. 2. It would break existing setups if the value of ID_SERIAL changed Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-06-28scsi_id: --reformat_serial - use udev_util_replace_whitespace()Kay Sievers
2009-06-09move syslog wrapper to libudevKay Sievers
2009-05-20use more efficient string copyingKay Sievers
2009-02-17*_id: add model/vendor enc stringsDavid Zeuthen
So ID_MODEL and ID_VENDOR are pretty useful keys. However since we fix them up (removing leading/trailing whitespace, converts spaces to underscores) for use in device naming etc. we also force these fixups on the desktop shell. And this looks pretty ugly. The attached patch introduces the ID_MODEL_ENC and ID_VENDOR_ENC keys that contains the encoded version of the raw strings obtained. It's pretty similar in spirit to ID_FS_LABEL and its cousin ID_FS_LABEL_ENC. With this patch a desktop shell can fix up these strings as it sees fit. Note that some fixup is still needed though, for example # /lib/udev/ata_id --export /dev/sda |grep ID_MODEL ID_MODEL=INTEL_SSDSA2MH080G1GC ID_MODEL_ENC=INTEL\x20SSDSA2MH080G1GC\x20\x20\x20\x20\x20\x20\x20\x20 \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 Note the trailing and leading whitespace. Anyway with the attached patch the desktop shell should be able to display "INTEL SSDSA2MH080G1GC" rather than "INTEL_SSDSA2MH080G1GC" to the user.
2008-12-02scsi_id: do not fail if no serial is found like for optical drivesKay Sievers
2008-11-20scsi_id: make sure, we do not have slashes in valuesKay Sievers
2008-11-05unify string replacementKay Sievers
2008-10-26do not init string arrays, just clear first byteKay Sievers
2008-10-21replace strncpy() with strlcpy()Alan Jenkins
The problem was strncpy() doesn't stop after writing the terminating NUL; by definition it goes on to zero the entire buffer. I spy another use of strncpy in udev_device_add_property_from_string(), which is responsible for another ~1% user cpu time... Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2008-10-02use no_argument, required_argument, optional_argument in longoptsKay Sievers
2008-09-29fix dbg() callersKay Sievers
2008-09-19always include config.h from MakefileKay Sievers
2008-09-06use libudev code, unify logging, pass udev context around everywhereKay Sievers
2008-07-30use autotoolsKay Sievers
2008-07-10scsi_id: the fallback fix broke error handlingKay Sievers
2008-05-14scsi_id: add --sg-version= optionKay Sievers
2008-05-14scsi_id: remove bus_id optionKay Sievers
2008-05-14scsi_id: add SGv4 supportHannes Reinecke
Fall back to SGv3, if SGv3 returns a failure/is not available.
2008-05-14scsi_id: remove all sysfs dependenciesHannes Reinecke
2008-04-20scsi_id: initialize serial stringsKay Sievers
2008-04-20logging: add trailing newline to all stringsKay Sievers
2007-05-29scsi_id: fix typo in help textKay Sievers
2007-05-25scsi_id: add long optionsKay Sievers
2007-05-25cciss device supportHannes Reinecke
2007-02-25scsi_id: accept tabs in /etc/scsi_id.confKay Sievers
2006-10-10scsi_id: export ID_SERIAL_SHORT without vendor/productKay Sievers
2006-08-19consistent key naming to match only the event device or include all parent ↵Kay Sievers
devices This scheme is more consistent and makes it obvious if a match happens against the event device only, or the full chain of parent devices. The old key names are now: BUS -> SUBSYSTEMS ID -> KERNELS SYSFS -> ATTRS DRIVER -> DRIVERS Match keys for the event device: KERNEL SUBSYSTEM ATTR DRIVER (in a future release, for now the same as DRIVERS) Match keys for all devices along the parent device chain: KERNELS SUBSYSTEMS ATTRS DRIVERS ID, BUS, SYSFS are no longer mentioned in the man page but still work. DRIVER must be converted to DRIVERS to match the new scheme. For now, an error is logged, if DRIVER is used. In a future release, the DRIVER key behaviour will change.
2006-08-05switch ifdef __KLIBC__ to ifndef __GLIBC__Kay Sievers
2006-01-28scsi_id: remove dead filesKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2006-01-18scsi_id, usb_id: request device parent by subsystemKay Sievers
Request specific parents identified by subsystem and don't rely on a predefined sequence. Also let the devpath be longer than 72 chars, tsss ... Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2006-01-09replace libsysfsKay Sievers
We never used any of the libsysfs convenience features. Here we replace it completely with 300 lines of code, which are much simpler and a bit faster cause udev(d) does not open any syfs file for a simple event which does not need any parent device information. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-12-15fold multiple consecutive whitespace chars into single '_'Hannes Reinecke
2005-09-18scsi_id: switch temporary node creation to /devKay Sievers
/tmp is not writable on most systems, so just use /dev to create a temporary node. If called from a udev rule, "-d $tempnode" should be used and udev will create a temporary node and pass the name before calling scsi_id. Also remove gen_scsi_id_udev_rules.sh per Patrick's request, as it's no longer needed with the persistent disk links. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-09-14scsi_id: derive a UID for a SCSI-2 not compliant with the page 83Edward Goggin
This patch is to enable the use of scsi_id to derive a UID for a SCSI-2 device which is not compliant with the page 83 inquiry reply format for either SPC-2 or SPC-3. In this case, the page 83 reply does not contain a list of Identification descriptors but a single binary encoded hexa-decimal Vendor Specified Identifier. The update is being driven by the need for scsi_id to support older model EMC Symmetrix hardware, that is, models 4, 5, and 6.
2005-08-22*_id: fix zero length in set_str()Kay Sievers
Thanks to Olaf Hering <olh@suse.de> Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-08-13fix more compiler warnings ...Kay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-08-01fix GGC signed pointer warnings and switch volume_id to stdintKay Sievers
Solaris uses volume_id now and they fiddled around with configure scripts to map the linux kernel int types. Adding the types locally to volume_id breaks the klibc build, so just switch to these ugly types and forget it. :) Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-07-19add ID_BUS to *_id programsHannes Reinecke
2005-07-08fix usb_id and let scsi_id ignore "illegal request"Hannes Reinecke
2005-06-27add ID_TYPE to the id probersKay Sievers
Export the type of device from ata_id and scsi_id, also strip leading and trailing whitespace and substitute consecutive whitespace with a single underline char. From: Hannes Reinecke <hare@suse.de> Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-06-27add -x to scsi_id to export the queried values in env formatKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-04-26[PATCH] update scsi_id to work with libsysfs changespatmans@us.ibm.com
Update scsi_id to work with the libsysfs changes in udev: use sysfs_get_classdev_attr and sysfs_get_device_attr in place of sysfs_read_attribute_value.
2005-04-26[PATCH] scsi_id changes for use with udev %N and %ppatmans@us.ibm.com
Changes to scsi_id to support the udev %N and %p substitutions: - Update version from .7 to .8 - change TMP_DIR back to /tmp - if DEVPATH is set assume hotplug_mode (use syslog for logging, and does not output some warnings) - Always output a newline after the id is printed - Allow command line options to override settings when hotplug_mode is set - update man page - update generator script to use the %N and %p substitutions.