mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-28 06:35:34 +07:00
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> Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
parent
93f976f5f6
commit
e8f1205bbc
@ -560,7 +560,7 @@ static int cd_profiles(struct udev *udev, int fd)
|
||||
if ((err != 0)) {
|
||||
info_scsi_cmd_err(udev, "GET CONFIGURATION", err);
|
||||
/* handle pre-MMC2 drives which do not support GET CONFIGURATION */
|
||||
if (SK(err) == 0x5 && ASC(err) == 0x20) {
|
||||
if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) {
|
||||
log_debug("drive is pre-MMC2 and does not support 46h get configuration command");
|
||||
log_debug("trying to work around the problem");
|
||||
ret = cd_profiles_old_mmc(udev, fd);
|
||||
|
Loading…
Reference in New Issue
Block a user