1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 16:59:03 +03:00
Commit Graph

86 Commits

Author SHA1 Message Date
Jan Drzewiecki
45b1d780b9 cdrom_id: No "next session" for "other" media state
"other" is known to apply to DVD-RAMs, where sessions can't be appended.

Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-08 19:22:13 +02:00
Jan Drzewiecki
a6b03c0961 cdrom_id: Also apply format check to DVD-RW
Extend the DVD+RW/DVD-RAM check in commit 1ef6c9e to also cover DVD-RW, since
in "restricted overwrite" mode they behave similar to DVD+RW.

Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-08 19:19:07 +02:00
Jan Drzewiecki
d83dfabe0d cdrom_id: Handle pre-MMC2 drives
Those do not yet support the 0x46 "GET CONFIGURATION" support. If we have
those, fall back to the 0x51 "READ DISC INFORMATION" call. This can only
differentiate between CD-RW and CD-R, but first that's better than a complete
detection failure, and second, those old drives likely don't support more
modern media in the first place.

https://launchpad.net/bugs/502143

Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-08 17:57:47 +02:00
Jan Drzewiecki
1ef6c9e9f0 cdrom_id: Fix detection of reblanked DVD+RW and DVD-RAM
Once formatted, DVD+RW and DVD-RAM discs are always reported "complete" by the
drive. Check the if the Volume Descriptor or Volume Descriptor Anchor sectors
are empty, and if so, set the status to blank. If the disc is unformatted the
blank status is maintained and no reads are issued. If the disc is formatted and
read command fails, the status remains set to complete to avoid accidental
blanking.

Bug-Ubuntu: https://launchpad.net/bugs/581925

Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-08 17:47:08 +02:00
Kay Sievers
898e5d4ca5 cdrom_id: do not export ID_CDROM_MEDIA_SESSION_LAST_OFFSET= for single session media 2010-05-25 09:47:04 +02:00
Harald Hoyer
2d01980f1a cdrom_id: only mark sr[0-9]* as ID_CDROM
we cannot be sure for xvd*
2010-05-04 09:09:32 +02:00
Kay Sievers
bc913ce478 cdrom_id: set ID_CDROM_MEDIA=1 only for known media
On Sat, Apr 17, 2010 at 18:26, Mike Brudevold <mike@brudevold.com> wrote:
> My CD-RW drive experiences a problem in that it automatically closes
> after opening if there is media in the drive.  This only happens if
> there was media in the drive when it was last closed (an empty drive
> stays open).
...
> cd_profiles: current profile 0x02
> cd_profiles: profile 0x02 <ignored>
...

Do not pretend to have a media, when we receive a profile like 0x02,
which just means "Removable disk".

Thanks to Mike Brudevold for the initial patch.
2010-04-17 19:31:44 +02:00
Mike Brudevold
7c07740ce7 cdrom_id: add missing profiles to feature_profiles
Signed-off-by: Mike Brudevold <mike@brudevold.com>
2010-04-16 07:39:56 +02:00
Martin Pitt
30e3b1a0d3 cdrom_id: Swap media state and TOC info probing
Blank CDs do not have a TOC, thus will fail cd_media_toc() (at least with the
"Do not ignore errors from scsi_cmd_run()" fix). Thus probe the media state
first, so that we can properly detect blank media.
2010-04-15 21:29:18 +02:00
Martin Pitt
58e178894b cdrom_id: Do not ignore errors from scsi_cmd_run()
scsi_cmd_run() can return positive error messages if we have CHECK_CONDITION
set and get the error code from the SCSI command result. So check the result
for non-zero, not for being negative.

This should fix another cause for "phantom" media in empty CD-ROM drives.

Thanks to Mike Brudevold <mike@brudevold.com> for spotting this!

https://launchpad.net/bugs/562978
2010-04-15 21:29:17 +02:00
Kay Sievers
a60b077a46 cdrom_id: debug - print feature values in hex 2010-04-15 21:22:38 +02:00
Kay Sievers
140647ad1a cdrom_id: debug - print feature values in hex 2010-04-15 21:18:21 +02:00
Kay Sievers
2e9df19818 cdrom_id: print more debug messages 2010-04-15 20:48:04 +02:00
Kay Sievers
0413a47ebf cdrom_id: rework feature/profiles buffer parsing 2010-04-15 20:07:07 +02:00
Kay Sievers
c1b7f60dea update NEWS 2010-04-14 17:00:57 +02:00
Martin Pitt
2b861dc927 cdrom_id: Fix uninitialized buffers
Commit 5c6954f is actually a no-op, since static variables are already zero'ed
by default anyway (but we keep it for clarity). The real difference was that a
build with -O0 wor while a build with -O2 didn't.

Turns out that some ioctls do not actually touch the result buffer in some
cases, so we need to zero the result buffers to avoid interpreting random da as
CD properties.

https://launchpad.net/bugs/559723
https://launchpad.net/bugs/561585
2010-04-13 15:25:48 +02:00
Martin Pitt
816e6bf0fb cdrom_id: Fix uninitialized variables
In cases where cdrom_id does not go through the entire code path and one of the
probing functions returns -1 or exits early, the remaining variables were never
initialized. This caused effects like "phantom" audio CDs on empty drives, or
bogus data like ID_CDROM_MEDIA_TRACK_COUNT=22528.

Initialize the variables right away to avoid that.

Bug-Ubuntu: https://launchpad.net/bugs/559723
2010-04-13 10:49:24 +02:00
Kay Sievers
4b06c40935 replace "add|change" with "!remove" 2010-04-12 16:52:41 +02:00
Kay Sievers
5c5ebde711 cdrom_id: always set ID_CDROM regardless if we can run cdrom_id 2010-04-12 01:12:23 +02:00
Kay Sievers
d45c8c8b01 cdrom_id: check mount state in retry loop
Based on a patch from Harald Hoyer.
2010-04-07 11:32:22 +02:00
Kay Sievers
cccfffbe04 cdrom_id: retry to open the device, if EBUSY
We might fight about the device with polling processes, or other
users who probe the device. Retry a few times if the other one goes
away in the meantime.

Based on a patch from Harald Hoyer.
2010-04-07 09:24:25 +02:00
Harald Hoyer
36a07a8c34 cdrom_id: remove debugging code 2010-04-07 09:23:46 +02:00
Kay Sievers
38a3cde11b cdrom_id: open non-mounted optical media with O_EXCL
This should prevent confusing drives during CD burning sessions. Based
on a patch from Harald Hoyer.
2010-03-18 11:14:32 +01:00
Kay Sievers
63480d01aa cdrom_id: remove deprecated device matches 2009-12-15 16:15:33 +01:00
David Zeuthen
7505831b7e cdrom_id: Still check profiles even if there is no media
Even when there is no medium in the drive, we should still check the
profiles supported by the drive. Otherwise we fail to detect things
like Blu-ray drives. See

 https://bugzilla.gnome.org/show_bug.cgi?id=600273

for more information.

Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-11-10 12:32:38 -05:00
Alan Jenkins
214a6c791c fix spelling
Fix spelling in docbook comments, code comments, and a local variable
name.  Thanks to "ispell -h" for docbook HTML and "scspell" for source
code.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
2009-08-08 15:42:05 +02:00
Diego Elio 'Flameeyes' Pettenò
59d93adb29 Merge libudev, udev, and the unconditional extras in a single Makefile.am.
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-08-07 19:15:28 +02:00
Kay Sievers
2a827c959a make: build internal tools against libudev-private.la 2009-07-25 20:37:45 +02:00
Kay Sievers
bcee964977 extras: delete man pages for private udev tools
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-17 21:57:40 +02:00
Kay Sievers
6133f3432f cleanup ./configure installation directory options 2009-06-17 02:25:07 +02:00
Kay Sievers
9060b066d9 move syslog wrapper to libudev 2009-06-09 22:47:48 +02:00
Kay Sievers
48a9b173e8 libudev: move to top-level directory 2009-06-08 21:36:06 +02:00
Kay Sievers
e91ac78ffc cdrom_id: add error message if open() fails 2009-05-29 13:21:38 +02:00
Kay Sievers
d3c8231e73 cdrom_id: suppress ID_CDROM_MEDIA_STATE=blank for plain non-writable CDROM media
Some broken fake cdrom drives return ID_CDROM_MEDIA_STATE=blank.

  $ /lib/udev/cdrom_id -d /dev/sr1
  main: probing: '/dev/sr1'
  cd_inquiry: INQUIRY: [Nokia   ][S60             ][1.0 ]
  cd_profiles: GET CONFIGURATION: number of profiles 76
  cd_profiles: current profile 0x08
  cd_media_toc: READ TOC: len: 12
  cd_media_toc: last track 1 starts at block 0
  cd_media_info: disk type 00
  ID_CDROM=1
  ID_CDROM_MRW=1
  ID_CDROM_MRW_W=1
  ID_CDROM_MEDIA=1
  ID_CDROM_MEDIA_CD=1
  ID_CDROM_MEDIA_STATE=blank

Others work fine, but ID_CDROM_MEDIA_STATE is not needed for non-writable CDROM media:

  $ /lib/udev/cdrom_id -d /dev/sr1
  main: probing: '/dev/sr1'
  cd_inquiry: INQUIRY: [SanDisk ][U3 Cruzer Micro ][8.02]
  cd_profiles: GET CONFIGURATION: number of profiles 72
  cd_profiles: current profile 0x08
  cd_media_toc: READ TOC: len: 20
  cd_media_toc: track=1 info=0x4(data) start_block=0
  cd_media_toc: last track 1 starts at block 0
  cd_media_info: disk type 00
  ID_CDROM=1
  ID_CDROM_MRW=1
  ID_CDROM_MRW_W=1
  ID_CDROM_MEDIA=1
  ID_CDROM_MEDIA_CD=1
  ID_CDROM_MEDIA_STATE=complete
  ID_CDROM_MEDIA_SESSION_COUNT=1
  ID_CDROM_MEDIA_TRACK_COUNT=1
  ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
2009-05-26 00:50:45 +02:00
Kay Sievers
d6f0b22d57 cdrom_id: skip media tests if CDROM_DRIVE_STATUS != CDS_DISC_OK 2009-04-23 15:04:16 +02:00
Kay Sievers
f907449eee cdrom_id: add and use ID_CDROM_MEDIA to decide if we run vol_id
Some broken mobile phones offer a faked cdrom drive with a media
without any tracks.
2009-04-21 03:27:14 +02:00
Kay Sievers
55d8f5e208 cdrom_id: add Xen cdrom support 2009-04-17 00:29:56 +02:00
Adam Buchbinder
57a9e68eb7 cdrom_id: update manpage
Include usage information on the -d/--debug flag. Also bump the date.

Signed-off-by: Adam Buchbinder <adam.buchbinder@gmail.com>
2009-03-16 23:09:52 +01:00
Kay Sievers
5d89ef7bf9 make: do not delete autotools generated file with distclean
[...] 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-12-06 04:03:08 +01:00
Kay Sievers
e02d738ee4 cdrom_id: remove ARRAY_SIZE() declaration 2008-10-21 12:40:47 +02:00
Kay Sievers
f183b6ed76 libudev: add global property list 2008-10-16 13:51:29 +02:00
Kay Sievers
e598c5738c libudev: get rid of selinux
"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-02 18:48:40 +02:00
Kay Sievers
033e9f8cde use no_argument, required_argument, optional_argument in longopts 2008-10-02 16:49:05 +02:00
Kay Sievers
38f27948cd always include config.h from Makefile 2008-09-19 23:03:49 -07:00
Kay Sievers
7525097713 extras: use libudev code 2008-09-10 18:24:39 +02:00
Kay Sievers
b2946df419 libudev: rename libudev-utils.c libudev-util.c 2008-09-10 17:12:33 +02:00
Kay Sievers
7a01f11afb libudev: get rid of udev_utils.c 2008-09-10 17:08:24 +02:00
Kay Sievers
b21b95d722 libudev: get rid of udev_sysfs.c 2008-09-10 14:29:07 +02:00
Kay Sievers
55e9959b15 update file headers 2008-09-10 02:40:42 +02:00
Kay Sievers
4f4b12c203 libudev: add selinux 2008-09-10 00:46:17 +02:00