Systemd/src/udev
Lukas Nykryn a14f149760 cdrom_id: use the old MMC fallback
https://bugzilla.redhat.com/show_bug.cgi?id=1038015
The problem seems to be that the your virtual DVD is emulating a really
old DVD device, and doing it kind of strangely.

> dracut:# /lib/udev/cdrom_id --debug /dev/sr0
> probing: '/dev/sr0'
> INQUIRY: [IMM     ][Virtual CD/DVD   ][0316]
> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h

So your virtual drive rejects the GET CONFIGURATION command as illegal.

Other pre-MMC2 drives that don't accept this command usually return the
error
SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id
tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set
and all the /dev/disk/by-label (etc) links get set up.

The virtual drive returns the error SK=5h,ASC=24h (invalid field in
Command Descriptor Block), which cdrom_id doesn't handle, so it gives up
and the links never get made.

The ideal solution would be to make the IMM to emulate a device that's
less than 15 years old, but I'm not going to hold my breath waiting for
that.

So probably cdrom_id should also use the old MMC fallback when the error
is SK=5h,ASC=24h, and then all of this would work as expected.

Suggested-by:Luca Miccini <lmiccini@redhat.com>
2014-02-27 11:12:04 +01:00
..
accelerometer everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00
ata_id everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00
cdrom_id cdrom_id: use the old MMC fallback 2014-02-27 11:12:04 +01:00
collect everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00
mtd_probe everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00
net core: clean up some confusing regarding SI decimal and IEC binary suffixes for sizes 2014-02-23 03:19:04 +01:00
scsi_id Remove dead lines in various places 2014-02-24 19:24:14 -05:00
v4l_id Remove duplicate includes 2013-11-18 20:28:55 -05:00
.gitignore udev: add builtin 'keyboard' to manage key mappings 2013-07-10 22:52:55 +02:00
.vimrc
Makefile build-sys: add stub makefiles to all subdirs to ease development with emacs 2012-04-13 21:37:59 +02:00
udev-builtin-blkid.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udev-builtin-btrfs.c everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00
udev-builtin-firmware.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udev-builtin-hwdb.c udev: hwdb - try reading modalias for usb before falling back to the composed one 2013-08-07 16:47:31 +02:00
udev-builtin-input_id.c macro: introduce a nice macro for disabling -Wformat-nonliteral temporarily 2014-02-20 18:18:32 +01:00
udev-builtin-keyboard.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udev-builtin-kmod.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udev-builtin-net_id.c udev/net_id: Introduce predictable network names for Linux on System z 2014-01-11 15:03:25 +00:00
udev-builtin-net_setup_link.c udev - link-setup - expose ID_NET_DRIVER 2014-02-21 21:00:39 +01:00
udev-builtin-path_id.c udev-builtin-path: fix printf specifiers 2013-12-14 23:10:03 -05:00
udev-builtin-uaccess.c udev-builtin: uaccess - inherit logging form udev 2013-10-19 12:23:17 +02:00
udev-builtin-usb_id.c doc: update punctuation 2014-02-17 19:03:07 -05:00
udev-builtin.c udev: builtin - rename net_link to net_setup_link 2013-10-29 14:17:57 +01:00
udev-ctrl.c make gcc shut up 2014-02-19 17:53:50 +01:00
udev-event.c api: in constructor function calls, always put the returned object pointer first (or second) 2014-02-20 00:03:10 +01:00
udev-node.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udev-rules.c Remove unused variable and two function stubs 2014-02-17 22:35:35 -05:00
udev-watch.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udev.conf
udev.h udev: declare some symbols static 2013-11-13 03:34:24 +01:00
udev.pc.in udev.pc: install udev files to /lib/udev rather than /lib/systemd 2012-05-27 15:24:20 +02:00
udevadm-control.c udevadm: modernization 2013-12-18 23:58:23 -05:00
udevadm-hwdb.c udev: make sure we always return a valid error code in trie_store() 2014-02-19 17:53:50 +01:00
udevadm-info.c Remove dead lines in various places 2014-02-24 19:24:14 -05:00
udevadm-monitor.c use memzero(foo, length); for all memset(foo, 0, length); calls 2014-01-31 11:55:01 +01:00
udevadm-settle.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udevadm-test-builtin.c udevadm,scsi_id: add short options to help strings and to the man page 2013-12-18 23:58:23 -05:00
udevadm-test.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udevadm-trigger.c everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00
udevadm.c log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
udevd.c everywhere: always use O_CLOEXEC where it makes sense 2014-02-13 14:59:56 +01:00