mirror of
https://github.com/akuker/RASCSI.git
synced 2024-11-26 13:49:21 +00:00
0bd12e93f5
* Device type unification, support of removable media
* Added support for .hdr extension
* Removable flag cleanup
* Manpage update
* Enriched PbOperation with PbDevice
* Added file size to PbImageFile
* Added device list support
* Set image_file
* Make remote interface more robust by ignoring SIGPIPE
* Return status only once
* Fixed typo
* Error handling update
* When starting rascsi parse everything before attaching devices
* Added dry run mode
* Comment update
* Updated logging
* Added Device base class, Disk class inherits from it
* Renaming
* Use vectors for controllers and disks, as preparation for using maps
* Updated file support handling
* Comment update
* DaynaPort and Bridge inherit from Device instead of Disk
* ProcessCmd() now works with devices instead of disks
* Renaming
* Added DeviceFactory
* Improved factory
* Comment update
* protected disk_t
* Code cleanup, added translations
* Device name can be set for rascsi
* rasctl can set device name
* Manpage update
* Manpage update
* Formatting update
* Check for missing name
* Initialize fd
* Initialize type
* Fixed string length issue
* Updated capacity formatting
* Fixed typo
* Split PbDevice into device and device definition
* Added TODO
* Renaming
* Renaming
* Device types can be explicitly specified with -t (no FILE:TYPE syntax anymore)
* Fixed compile-time issue
* Removed unused Append mode, updated read-only handling
* Type handling and manpage update
* Cleanup
* rasctl parser cleanup
* Review
* Constructor update
* Added .hdr (SCRM) support to web interface, tested web interface
* Default folder can be set remotely
* Removed deprecated operation
* DETACH supports all parameters in order to detach all devices
* include cleanup
* Logging should not depend on NDEBUG, for RaSCSI it is not peformance-critical
* INFO is default log level
* Exception renaming
* Updated GetPaddedName()
* Inheritance update
* Added BlockDevice class
* Removed unused code
* Updated typedefs
* Revert "Updated typedefs"
This reverts commit 546b46215a
.
* Removed unused code
* Fixed warnign
* Use standard C++ integer types, use streams to resolve printf data type issues
* Added TODOs
* Added TODO
* Renaming
* Added TODO
* Added TODO
* Improved dry-run
* Code cleanup
* Updated handling of unknown options, code review and cleanup
* Manpage update
* Added PrimaryDevice
* Include cleanup
* Added pure virtual methods
* Comment updates
* Split rasutil
* Replaced some occurrences of BOOL
* Removed obsolete RASCSI definition in xm6.h
* Removed unused code, updated TODOs, replaced BOOL
* Added capacity check (issue #192)
* Fixed (most likely) https://github.com/akuker/RASCSI/issues/191
* Fixed wrong error messages
* For root the default image folder is /home/pi/images, updated error handling
* Dynaport code review
* Improved error handling
* Implemented READ CAPACITY(16)
* Comment update
* Commands can be 16 bytes long
* Implemented READ/WRITE/VERIFY(16)
* Comment update
* Renamed method to reflect the name of the respective SCSI command
* Do not created devices during dryRun
* Fixed padding of SCSIHD_APPLE vendor and product
* Initial implementation
* Updated ReportLuns
* Byte count update
* Fixed typo
* Finalized REPORT LUNS
* Removed TODO
* Updated TODO
* TODO update
* Updated device factory
* Comment update
* 64 bit update, tested on Ubuntu 64 bit system
* Removed assertion
* SCSI hard disks always have Apple specific mode pages (resolves issue #193)
* Error messsage update, 64 bit cleanup
* Reduced streams usage
* Updated handling of device flags
* MOs are protectable
* Removed duplicate error code handling
* Removed duplicate code
* Fixed CmdReadToc buffer overflow (https://github.com/akuker/RASCSI/issues/194)
* Added naive implementation of GET EVENT STATUS NOTIFICATION to avoid wranings
* HD must set removable device bit if the media is removable
* Removed duplicate logging
* Updated daynaport additional length
* Removed broken daynaport REQUEST SENSE. Successfully tested with my Mac.
* EnableInterface should not always return TRUE
* Updated Inquiry
* Updated LUN handling
* Replaced incorrect free by delete
* Updated comments and write-protection handling
* Made default HD name consistent
* STATUS_NOERROR is default
* Fixed Eject
* More eject handling updates
* Manpage updates
* Logging update
* Changed debug level
* Logging update
* Log capacity of all media types
* Logging update
* Encapsulated disk.blocks
* Encapsulated sector size
* Added overrides
* Added more overrides
* Fixed error message
* Fixed typos
* Fixed logging
* Added logging
* Use PrimaryDevice when calling Inquiry
* Comment update
* Changed default buffer size for testing
* Reverted last change
* Removed debug output
* De-inlined methods because optimized code did not work with them inlined
* Web interface can attach Daynaport again
* Improved handling of read-only hard disks
* Fixed issue with "all" semantics of DETACH
* rasctl supports adding removable media devices without providing a filename
* Removed unused flag in PbDeviceDefinition
* Updated rasctl output for ecjected media (resolves issue #199)
* Validate default folder name when changing default folder
98 lines
4.2 KiB
Groff
98 lines
4.2 KiB
Groff
.TH rascsi 1
|
|
.SH NAME
|
|
rascsi \- Emulates SCSI devices using the Raspberry Pi GPIO pins
|
|
.SH SYNOPSIS
|
|
.B rascsi
|
|
[\fB\-f\f® \fIFOLDER\fR]
|
|
[\fB\-g\f® \fILOG_LEVEL\fR]
|
|
[\fB\-h\fR]
|
|
[\fB\-n\fR \fIVENDOR:PRODUCT:REVISION\fR]
|
|
[\fB\-p\f® \fIPORT\fR]
|
|
[\fB\-n\fR \fITYPE\fR]
|
|
[\fB\-v\fR]
|
|
[\fB\-IDn\fR \fIFILE\fR]
|
|
[\fB\-HDn\fR \fIFILE\fR]...
|
|
.SH DESCRIPTION
|
|
.B rascsi
|
|
Emulates SCSI devices using the Raspberry Pi GPIO pins.
|
|
.PP
|
|
In the arguments to RaSCSI, one or more SCSI (-IDn) or SASI (-HDn) devices can be specified.
|
|
The number (n) after the ID or HD identifier specifies the ID number for that device.
|
|
For SCSI: The ID is limited from 0-7. However, typically SCSI ID 7 is reserved for the "initiator" (the host computer). Note that SASI is considered rare and only used on very early Sharp X68000 computers.
|
|
.PP
|
|
RaSCSI will determine the type of device based upon the file extension of the FILE argument.
|
|
hdf: SASI Hard Disk image (XM6 SASI HD image - typically only used with X68000)
|
|
hds: SCSI Hard Disk image (generic, non-removable)
|
|
hdr: SCSI Hard Disk image (generic, removable)
|
|
hdn: SCSI Hard Disk image (NEC GENUINE)
|
|
hdi: SCSI Hard Disk image (Anex86 HD image)
|
|
nhd: SCSI Hard Disk image (T98Next HD image)
|
|
hda: SCSI Hard Disk image (APPLE GENUINE - typically used with Mac SCSI emulation)
|
|
mos: SCSI Magneto-optical image (XM6 SCSI MO image - typically only used with X68000)
|
|
iso: SCSI CD-ROM image (ISO 9660 image)
|
|
|
|
For example, if you want to specify an Apple-compatible HD image on ID 0, you can use the following command:
|
|
sudo rascsi -ID0 /path/to/drive/hdimage.hda
|
|
|
|
Once RaSCSI starts, it will open a socket (default port is 6868) to allow external management commands.
|
|
If another process is using the rascsi port, RaSCSI will terminate, since it is likely another instance of RaSCSI.
|
|
Once RaSCSI has initialized, the rasctl utility can be used to send commands.
|
|
|
|
To quit RaSCSI, press Control + C. If it is running in the background, you can kill it using an INT signal.
|
|
|
|
.SH OPTIONS
|
|
.TP
|
|
.BR \-f\fI " " \fIFOLDER
|
|
The default folder for image files. For files in this folder no absolute path needs to be specified. The initial default folder is '~/images'.
|
|
.TP
|
|
.BR \-g\fI " " \fILOG_LEVEL
|
|
The rascsi log level (trace, debug, info, warn, err, critical, off). The default log level is 'info'.
|
|
.TP
|
|
.BR \-h\fI " " \fI
|
|
Show a help page.
|
|
.TP
|
|
.BR \-n\fI " " \fIVENDOR:PRODUCT:REVISION
|
|
Set the vendor, product and revision for the device, to be returned with the INQUIRY data. A complete set of name components must be provided. VENDOR may have up to 8, PRODUCT up to 16, REVISION up to 4 characters. Padding with blanks to the maxium length is automatically applied. Once set the name of a device cannot be changed.
|
|
.TP
|
|
.BR \-p\fI " " \fIPORT
|
|
The rascsi server port, default is 6868.
|
|
.TP
|
|
.BR \-p\fI " " \fITYPE
|
|
The optional case-insensitive device type (SAHD, SCHD, SCRM, SCCD, SCMO, SCBR, SCDP). If no type is specified for devices that support an image file, rascsi tries to derive the type from the file extension.
|
|
.TP
|
|
.BR \-v\fI " " \fI
|
|
Display the rascsi version.
|
|
.TP
|
|
.BR \-ID\fIn " " \fIFILE
|
|
n is the SCSI ID number (0-7)
|
|
.IP
|
|
FILE is the name of the image file to use for the SCSI device. For devices that do not support an image file (SCBR, SCDP) a dummy name must be provided.
|
|
.TP
|
|
.BR \-HD\fIn " " \fIFILE
|
|
n is the SASI ID number (0-15)
|
|
.IP
|
|
FILE is the name of the image file to use for the SASI device.
|
|
.IP
|
|
Note: SASI usage is rare, and is typically limited to early Sharp X68000 systems.
|
|
|
|
.SH EXAMPLES
|
|
Launch RaSCSI with no emulated drives attached:
|
|
rascsi
|
|
|
|
Launch RaSCSI with an Apple hard drive image as ID 0 and a CD-ROM as ID 2
|
|
rascsi -ID0 /path/to/harddrive.hda -ID2 /path/to/cdimage.iso
|
|
|
|
Launch RaSCSI with a removable SCSI drive image as ID 0 and the raw device file /dev/hdb (e.g. a USB stick) and a DaynaPort network adapter as ID 6:
|
|
rascsi -ID0 -t scrm /dev/hdb -ID6 -t scdp DUMMY_FILENAME
|
|
|
|
To create an empty, 100MB HD image, use the following command:
|
|
dd if=/dev/zero of=/path/to/newimage.hda bs=512 count=204800
|
|
|
|
In case the fallocate command is available a much faster alternative to the dd command is:
|
|
fallocate -l 104857600 /path/to/newimage.hda
|
|
|
|
.SH SEE ALSO
|
|
rasctl(1), scsimon(1)
|
|
|
|
Full documentation is available at: <https://www.github.com/akuker/RASCSI/wiki/>
|