mbox series

[downstream-hack,dev-6.6,0/6] Virtual Media DVD support

Message ID 20240318203445.29036-1-fercerpav@gmail.com
Headers show
Series Virtual Media DVD support | expand

Message

Paul Fertser March 18, 2024, 8:34 p.m. UTC
Microsoft distributes their Windows Server images as ".iso" files suitable for
burning on DVD medium.

This patch series allows to use such images directly via the Virtual Medium
(jsnbd + Linux USB gadget subsystem) OpenBMC feature provided
functions/mass_storage.usb0/lun.0/cdrom is set to 1 by /etc/nbd-proxy/state
hook.

The code was taken from the latest rejected upstream submission [0] and massaged
to apply to the current dev-6.6 branch. Since the patches were written the
upstream gained support for images larger than 2 TB [1], unfortunately applying
this series disables it.

Tested by installing Windows Server via Virtual Media with AST2600-based BMC.

I'm sharing these hoping it might be useful to community, without any particular
plans or desire to integrate and maintain them downstream (though I might post
an updated version in the future if applying becomes non-trivial again).

An alternative to using this series for installing Windows on bare metal is to
educate your customers about a much faster (the files would be downloaded using
host network card and HTTP + CIFS) and easier to automate way provided by iPXE +
wimboot [2], also available as part of netboot.xyz [3].

[0] https://lore.kernel.org/all/20210626211820.107310-1-i.kononenko@yadro.com/
[1] https://lore.kernel.org/r/20210921145901.11952-1-nikita.yoush@cogentembedded.com
[2] https://ipxe.org/howto/winpe
[3] https://netboot.xyz/docs/kb/pxe/windows/

Igor Kononenko (6):
  usb:gadget:mass-storage: Improve the signature of SCSI handler
    function
  usb:gadget:mass-storage: refactoring the SCSI command handling
  fms: Add TOC/PMA/ATIP DVD-ROM capabilities
  fms: Support the DVD/BD images size over 2.1Gb
  FMS: Add the SCSI Get Configuration command.
  FMS: Add SCSI Read Disc Information command.

 drivers/ata/libata-zpodd.c                   |    8 +-
 drivers/usb/gadget/function/f_mass_storage.c | 1007 ++++++++++-----
 drivers/usb/gadget/function/storage_common.c |   17 +-
 drivers/usb/gadget/function/storage_common.h |    5 +
 include/scsi/scsi_proto.h                    |    2 +
 include/uapi/linux/cdrom.h                   | 1208 +++++++++++++++++-
 6 files changed, 1857 insertions(+), 390 deletions(-)


base-commit: f8b04488b060b155f8b6769aa70412c3630b03f0