Hi Stefan,
On 2/10/26 19:23, Stefan Hajnoczi wrote:
You can still propose an idea before February 19th.
The Linux scsi_debug driver has support for emulating a tape device,
so that may already be usable with QEMU but I'm not sure.
It is interesting, but it is only available with Linux hosts,
and doesn't seem to handle existing TAPE files or can be
used to permanently store things (e.g. it handles everything in RAM).
If you have a use case for SCSI tape emulation in QEMU then it sounds
like something that would fit GSoC.
Here is my proposal.
I hope this is OK?
Helge
=== SCSI TAPE driver ===
'''Summary:''' Development of an emulated SCSI TAPE driver
Qemu provides functionality to emulate SCSI hard discs and SCSI CD-ROM drives,
but lacks an emulated SCSI TAPE drive. Goal of this project is to develop
an emulation for a SCSI TAPE drive which is backed by a file in the
filesystem, similar to an ISO file which is used to emulate a CD-ROM drive.
At the beginning of this project the applicant should summarize the current
status of Qemu regarding TAPE drives, e.g. describe how to use passthrough
to physical drives, or by using the Linux kernel scsi_debug driver. There
might be other options too.
As second step the applicant should check existing code for SCSI hard disc
and CD-ROM emulation and analyze what is missing to support a SCSI TAPE
in addition. Maybe the existing code can be extended or a new driver needs to
be written?
A very important step is to decide how the emulated tape data should be
stored on disc. There exists already various libraries to handle TAPE
data, e.g. the tape library from the SIMH project. It might be useful
to rely on such existing libraries than to implement everything from
scratch. The applicant should check other projects and do a proposal
for the best approach for Qemu.
As last step the participant should write code to emulate a SCSI
TAPE drive, add a testsuite to be used during build time,
and document how to use it.
Throughout this project communication with the qemu SCSI developers
on the mailing list regarding next steps is required.
'''Links:'''
* https://en.wikipedia.org/wiki/SCSI* https://en.wikipedia.org/wiki/Tape_drive
* https://sg.danny.cz/sg/p/sdebug.html
*
https://superuser.com/questions/1434214/using-qemu-to-emulate-dos-with-passthrough-scsi-access
* https://simh.trailing-edge.com/docs/simh_magtape.pdf
* https://github.com/simh/simtools
'''Details:'''
* Skill level: intermediate
* Knowledge of SCSI protocol is beneficial
* Language: C, Script