Add quirk for iLO Virtual CD-ROM found on HPE systems.
Details
- Reviewers
• hselasky
HPE ProLiant DL380 Gen10. Without setting the quirk mounting root from installation ISO fails with error 19.
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Can you dump the usb configuration descriptor using "usbdump dump_curr_config_desc" for your device?
Sounds strange that ATAPI is not selected by default when CD-ROMs are used!
--HPS
I guess you wanted the usbconfig in there? Here you go:
ugen1.3: <iLO Virtual CD-ROM> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (0mA)
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0020
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00c0
bMaxPower = 0x0000
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0002
bInterfaceClass = 0x0008 <Mass storage>
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0050
iInterface = 0x0010 <Virtual CD-ROM>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0002 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000Please note that it seems that da driver attaches to this device, and not cd.
What's interesting, if I "insert" the media after the system is booted, which makes the umass device to "connect", the quirks do NOT seem to be applied, and the device is unusable.
Hi,
The USB storage driver checks the interface sub-class (bInterfaceSubClass = 0x0002) to select SCSI or ATAPI.
BTW: SCSI also supports CD-ROMs.
sys/dev/usb/storage/umass.c: case UISUBCLASS_SCSI:
sys/dev/usb/storage/umass.c: case UISUBCLASS_UFI:
sys/dev/usb/storage/umass.c: case UISUBCLASS_RBC:
sys/dev/usb/storage/umass.c: case UISUBCLASS_SFF8020I:
sys/dev/usb/storage/umass.c: case UISUBCLASS_SFF8070I:
sys/dev/usb/usb.h:#define UISUBCLASS_RBC 1
sys/dev/usb/usb.h:#define UISUBCLASS_SFF8020I 2
sys/dev/usb/usb.h:#define UISUBCLASS_QIC157 3
sys/dev/usb/usb.h:#define UISUBCLASS_UFI 4
sys/dev/usb/usb.h:#define UISUBCLASS_SFF8070I 5
sys/dev/usb/usb.h:#define UISUBCLASS_SCSI 6
Can you check if this field changes?
Did you check if a BIOS/ILO firmware update would fix your issue?
Did you report this issue to HP?
So I'm not sure if quirking this is a good idea or not. It should not be required to quirk this at all. This stuff should just work!
You are sure you didn't mix .iso images and regular disk images, when providing the file for the virtual-DISK / CD-ROM?
Did you "Google" the product and vendor ID's in hexadecimal, to see if Linux or other systems have similar such quirks?