chiark / gitweb /
cdrom_id: use the old MMC fallback
authorLukas Nykryn <lnykryn@redhat.com>
Thu, 27 Feb 2014 10:06:37 +0000 (11:06 +0100)
committerLukas Nykryn <lnykryn@redhat.com>
Thu, 27 Feb 2014 10:12:04 +0000 (11:12 +0100)
commita14f14976094650e17d39f3a7d15a1c68c93c333
tree9b2bb1508f52aa9acbd646c974de8dd484b03350
parent0f62019c34e546f7c069a3b9f46deaa4b1608276
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>
src/udev/cdrom_id/cdrom_id.c