summaryrefslogtreecommitdiff
path: root/extras/ata_id
AgeCommit message (Collapse)Author
2011-02-09ata_id: do not print empty serial numbers to avoid unwanted trailing '_'Kay Sievers
2010-11-04Use ata_id, not scsi_id, on ATAPI devicesDavid Zeuthen
The major benefit here, is that we get the ATAPI device serial number. With SCSI ID we didn't get this since it's not part of the SCSI INQUIRY command. Specifically this means that we get symlinks to empty optical drives, e.g. /dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376 which we didn't get earlier. So this is a major win. Also make ata_id work on CD-ROM devices when using /dev/bsg nodes so this works on both the scsi_device as well as the block device. We do this, basically, by issuing the ATA IDENTIFY PACKET DEVICE command instead of the ATA IDENTIFY command. We also use 16-byte pass-through ATA passthrough instead of 12-byte passthrough to avoid clashing with the MMC BLANK command. This means that we get this output # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: UDEV_LOG=3 E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: DEVTYPE=scsi_device E: DRIVER=sr E: MODALIAS=scsi:t-0x05 E: SUBSYSTEM=scsi E: ID_ATA=1 E: ID_TYPE=cd E: ID_BUS=ata E: ID_MODEL=VBOX_CD-ROM E: ID_MODEL_ENC=VBOX\x20CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x 20\x20\x20\x20\x20\x20\x20 E: ID_REVISION=1.0 E: ID_SERIAL=VBOX_CD-ROM_VB2-01700376 E: ID_SERIAL_SHORT=VB2-01700376 instead of just # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: UDEV_LOG=3 E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0 E: DEVTYPE=scsi_device E: DRIVER=sr E: MODALIAS=scsi:t-0x05 E: SUBSYSTEM=scsi E: ID_SCSI=1 E: ID_VENDOR=VBOX E: ID_VENDOR_ENC=VBOX\x20\x20\x20\x20 E: ID_MODEL=CD-ROM E: ID_MODEL_ENC=CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 E: ID_REVISION=1.0 E: ID_TYPE=cd Signed-off-by: David Zeuthen <davidz@redhat.com>
2010-10-30ata_id: Support SG_IO version 4 interfaceDavid Zeuthen
This makes it possible to use /dev/bsg/* nodes for ata_id: # /lib/udev/ata_id --export /dev/bsg/0\:0\:0\:0 ID_ATA=1 ID_TYPE=disk ID_BUS=ata 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 ID_REVISION=045C8802 [...] This means that our cd-rom detection as per commit http://git.kernel.org/?p=linux/hotplug/udev.git;a=commit;h=160b069c25690bfb0c785994c7c3710289179107 needs to be reworked since we can't just use the CDROM_GET_CAPABILITY ioctl on a /dev/bsg node (which is a character device). We do this by just sending the SCSI INQUIRY command and checking the type (CD-ROM's are all type 0x05 and disks are type 0x00) before we issue the ATA IDENTIFY command through the SCSI command ATA PASS_THROUGH (12). (Yes, it's a bit perverse how we have to tunnel our ATA commands through a SCSI command but that's how Linux currently work.) We still support for SG_IO version 3 (we fail back if version 4 fails with EINVAL) because testing reveals that some drivers (such as mpt2sas) still only support version 3 on the block nodes. Signed-off-by: David Zeuthen <davidz@redhat.com>
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-20ata_id: skip ATA commands if we find an optical driveKay Sievers
Some drives are reported to erase CD-RW media with the ATA commands we send. Thanks to Christoph Stritt <phoenix@jobob.com> for his debugging. Original bug is here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=556635
2009-11-04ata_id: export more advanced ATA featuresDavid Zeuthen
2009-08-07Merge libudev, udev, and the unconditional extras in a single Makefile.am.Diego Elio 'Flameeyes' Pettenò
Instead of using multiple recursive Makefile.am files, use a single Makefile.am that sets and builds all the basic suite of libraries and binaries for udev. This reduces the number of files in the source tree, and also reduces drastically the build time when using parallel-make. With this setup, all the compile steps will be executed in parallel, and just the linking stage will be (partially) serialised on the libraries creation.
2009-07-25make: build internal tools against libudev-private.laKay Sievers
2009-06-28ata_id: sync ID_SERIAL(_SHORT) with other *_id toolsKay Sievers
ID_SERIAL is the full serial number used for the links, ID_SERIAL_SHORT is the device serial number.
2009-06-17extras: delete man pages for private udev toolsKay Sievers
These are mostly dummy man pages, without real content, some even outdated. None of these tools are part of any offered public interface, and they should not pretend to be by offering a man page.
2009-06-17cleanup ./configure installation directory optionsKay Sievers
2009-06-09move syslog wrapper to libudevKay Sievers
2009-06-08libudev: move to top-level directoryKay 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.
2009-01-06extras: fix mis-spelling of "environment"Adam Buchbinder
2008-12-06make: do not delete autotools generated file with distcleanKay Sievers
[...] running the command `make maintainer-clean' should not delete `configure' even if `configure' can be remade using a rule in the Makefile. More generally, `make maintainer-clean' should not delete anything that needs to exist in order to run `configure' and then begin to build the program. This is the only exception; `maintainer-clean' should delete everything else that can be rebuilt.
2008-11-20ata_id: make sure, we do not have slashes in valuesKay Sievers
2008-11-05unify string replacementKay Sievers
2008-10-16libudev: add global property listKay Sievers
2008-10-02libudev: get rid of selinuxKay Sievers
"Hello world!" linked against libselinux parses /proc/mounts and whatever else on startup, even when the lib is not needed at all. Not funny! Get rid of that thing where it's not absolutely needed.
2008-10-02use no_argument, required_argument, optional_argument in longoptsKay Sievers
2008-09-19always include config.h from MakefileKay Sievers
2008-09-10extras: use libudev codeKay Sievers
2008-09-10libudev: rename libudev-utils.c libudev-util.cKay Sievers
2008-09-10libudev: get rid of udev_utils.cKay Sievers
2008-09-10libudev: get rid of udev_sysfs.cKay Sievers
2008-09-10update file headersKay Sievers
2008-09-10libudev: add selinuxKay Sievers
2008-09-06use libudev code, unify logging, pass udev context around everywhereKay Sievers
2008-07-30use autotoolsKay Sievers
2008-07-30delete all Makefiles and move udev source to udev/Kay Sievers
2008-04-20logging: add trailing newline to all stringsKay Sievers
2008-03-15Makefile: do not require GNU installRoy Marples
2007-11-08extras: ignore built and generated filesDan Nicholson
2007-05-01ata_id: use getopt_long()Kay Sievers
2007-04-29ata_id: don't log error for libata devices on older kernelsMatthias Schwarzott
2007-01-21fix INSTALL_PROGRAM vs. INSTALL_SCRIPTPeter Breitenlohner
2006-07-04Makefiles: fix .PHONY for man page targetKay Sievers
Thanks to David Härdeman for pointing it out.
2006-03-29move all *_id programs to /lib/udev/Kay Sievers
2006-03-28man pages: mention udev(7) not udev(8)Kay Sievers
Thanks to: Henrique de Moraes Holschuh <hmh@debian.org>
2006-03-28remove all stripping codeKay Sievers
2006-01-28replace fancy silent build program by simple kernel build like logicKay Sievers
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-11-16Makefile: remove exec_prefix and srcdirKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-10-31add man pages for *_id programsJan Luebbe
I've written manpages for the *_id binaries, which are attached to this mail.
2005-10-28"STRIPCMD=" for the EXTRASKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-09-27switch tools and volume_id from LGPL to GPLv2Kay Sievers
After beeing hit by proprietary applications which statically link the LGPL'd libusb, which needs a patch to reflect the recent kernel changes, I decided not to provide LGPL code anymore. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-09-16ata_id: open volume O_NONBLOCKKay Sievers
Opticals like that and should be ok for disks too, as long as we don't read(). Signed-off-by: Kay Sievers <kay.sievers@suse.de>
2005-09-14EXTRAS: cleanup and sync all MakefilesKay Sievers
Signed-off-by: Kay Sievers <kay.sievers@suse.de>