mirror of
https://github.com/akuker/RASCSI.git
synced 2024-11-22 16:33:17 +00:00
d80fbec03d
* Added support for .hd1 (SCSI-1) image files * Update c-cpp.yml * Fixed unit test warnings * Fixed wrong scan default default (must be 1, not -1) * Updated max length check * Removed file not present in develop branch * Added unit test * Added workflow configurations and README updates (#832) * automated test try 1 * filter branches * filter branches * filter branches * filter branches * filter branches * Configured build and test CI workflows * enable for all branches * Update README.md * Update README.md Co-authored-by: Tony Kuker <akuker@gmail.com> * Fix simple SonarCloud issues (#834) * Fixing SonarCloud issues, first round * Fixing SonarCLoud issues, next round * Fixing SonarQube issues, next round * Fixed warning * Replaced empty constructors/destructors with = default; * Fixed warning * Replaced new * Use constants instead of macros * Use structured binding declarations * Use init statements for if * Use string views * Use enum class, use using instead of typedef * Fixed more SonarCloud warnings * Replaced redundant/duplicate types with auto * Devlared methods const * Memory management update * Fixed warning * Added missing const * Improved RaScsiResponse memory management * Improved memory management * Improved memory management * Replaced macros by constants, removed unused constants * Made member private * Fixed warning * Added comment * Fixed shadowing warnings * Cleanup * Cleanup * Cleanup * Fixed shadowing warning * Removed unused code * Fixed more warnings * Removed obsolete casts * Fixed warnings * Removed unused field * Removed library not needed by rasctl * Include cleanup * Updated platform check for better compatibility * Improved check for invalid option. This prevents rasctl to break on macos. * Updated option check * Fixed typo * Added TODO * Removed macro * Scope update * Replaced macro * Added TODO, update memory management * Fixed typo * Replaced NULL by nullptr * Use more structured bindings * Added TODO * Use calloc instead of mallco to not need memset * Fixed warnings * Fixed SonarQube initialization issues * Fixed warning * Cleaned up override/virtual/final * Fixed warnings * Constructor update * Fixed tests * Improved memory management * Added missing const * Added const * Fixed two bugs reported by SonarCloud * Fix SonarCloud hotspot * Fixed memory management * Memory management update * Addressing hotspot by using strncpy * Fixed SonarCloud issues * Fixed SonarQube issues * Added missing const * Added const * Added const * Suppress false positive * Added SonarQube suppressions for false positives * Added suppresoin * Fixed code smells * Reverted changes that is a SonarQube issue, but caused problems with -O3 * Removed TODO based on review * Update c-cpp.yml * Finalized merge Co-authored-by: akuker <34318535+akuker@users.noreply.github.com> Co-authored-by: Tony Kuker <akuker@gmail.com>
145 lines
6.5 KiB
Plaintext
145 lines
6.5 KiB
Plaintext
!! ------ THIS FILE IS AUTO_GENERATED! DO NOT MANUALLY UPDATE!!!
|
||
!! ------ The native file is rascsi.1. Re-run 'make docs' after updating\n\n
|
||
rascsi(1) General Commands Manual rascsi(1)
|
||
|
||
NAME
|
||
rascsi - Emulates SCSI devices using the Raspberry Pi GPIO pins
|
||
|
||
SYNOPSIS
|
||
rascsi [-F[u00AE] FOLDER] [-L[u00AE] LOG_LEVEL] [-P[u00AE] ACCESS_TO‐
|
||
KEN_FILE] [-R SCAN_DEPTH] [-h] [-n VENDOR:PRODUCT:REVISION] [-p[u00AE]
|
||
PORT] [-r RESERVED_IDS] [-n TYPE] [-v] [-z LOCALE] [-IDn:[u] FILE]
|
||
[-HDn[:u] FILE]...
|
||
|
||
DESCRIPTION
|
||
rascsi Emulates SCSI devices using the Raspberry Pi GPIO pins.
|
||
|
||
In the arguments to RaSCSI, one or more SCSI (-IDn[:u]) devices can be
|
||
specified. The number (n) after the ID or HD identifier specifies the
|
||
ID number for that device. The optional number (u) specifies the LUN
|
||
(logical unit) for that device. The default LUN is 0. For SCSI: The ID
|
||
is limited from 0-7. However, typically SCSI ID 7 is reserved for the
|
||
"initiator" (the host computer). The LUN is limited from 0-31.
|
||
|
||
RaSCSI will determine the type of device based upon the file extension
|
||
of the FILE argument.
|
||
hd1: SCSI Hard Disk image (generic, non-removable, SCSI-1)
|
||
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 al‐
|
||
low 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.
|
||
|
||
OPTIONS
|
||
-b BLOCK_SIZE
|
||
The optional block size, either 512, 1024, 2048 or 4096 bytes.
|
||
Default size is 512 bytes.
|
||
|
||
-F FOLDER
|
||
The default folder for image files. For files in this folder no
|
||
absolute path needs to be specified. The initial default folder
|
||
is '~/images'.
|
||
|
||
-L LOG_LEVEL
|
||
The rascsi log level (trace, debug, info, warn, err, critical,
|
||
off). The default log level is 'info'.
|
||
|
||
-P ACCESS_TOKEN_FILE
|
||
Enable authentication and read the access token from the speci‐
|
||
fied file. The access token file must be owned by root and must
|
||
be readable by root only.
|
||
|
||
-R SCAN_DEPTH
|
||
Scan for image files recursively, up to a depth of SCAN_DEPTH.
|
||
Depth 0 means to ignore any folders within the default image
|
||
filder. Be careful when using this option with many sub-folders
|
||
in the default image folder. The default depth is 1.
|
||
|
||
-h Show a help page.
|
||
|
||
-n VENDOR:PRODUCT:REVISION
|
||
Set the vendor, product and revision for the device, to be re‐
|
||
turned with the INQUIRY data. A complete set of name components
|
||
must be provided. VENDOR may have up to 8, PRODUCT up to 16, RE‐
|
||
VISION up to 4 characters. Padding with blanks to the maxium
|
||
length is automatically applied. Once set the name of a device
|
||
cannot be changed.
|
||
|
||
-p PORT
|
||
The rascsi server port, default is 6868.
|
||
|
||
-r RESERVED_IDS
|
||
Comma-separated list of IDs to reserve. Pass an empty list in
|
||
order to not reserve anything. -p TYPE The optional case-insen‐
|
||
sitive device type (SAHD, SCHD, SCRM, SCCD, SCMO, SCBR, SCDP,
|
||
SCLP, SCHS). If no type is specified for devices that support an
|
||
image file, rascsi tries to derive the type from the file exten‐
|
||
sion.
|
||
|
||
-v Display the rascsi version.
|
||
|
||
-z LOCALE
|
||
Overrides the default locale for client-faces error messages.
|
||
The client can override the locale.
|
||
|
||
-IDn[:u] FILE
|
||
n is the SCSI ID number (0-7). u (0-31) is the optional LUN
|
||
(logical unit). The default LUN is 0.
|
||
|
||
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, SCLP,
|
||
SCHS) the filename may have a special meaning or a dummy name
|
||
can be provided. For SCBR and SCDP it is an optioinal priori‐
|
||
tized list of network interfaces, an optional IP address and
|
||
netmask, e.g. "interfaces=eth0,eth1,wlan0:inet=10.10.20.1/24".
|
||
For SCLP it is the print command to be used and a reservation
|
||
timeout in seconds, e.g. "cmd=lp -oraw %f:timeout=60".
|
||
|
||
FILE is the name of the image file to use for the SCSI device.
|
||
|
||
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 de‐
|
||
vice 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 daynaport
|
||
|
||
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
|
||
|
||
SEE ALSO
|
||
rasctl(1), scsimon(1), rasdump(1), sasidump(1)
|
||
|
||
Full documentation is available at:
|
||
<https://www.github.com/akuker/RASCSI/wiki/>
|
||
|
||
rascsi(1)
|