Uwe Seimet 41bdcd4aed
Issues 1179 and 1182 (#1232)
* Update logging

* Remove duplicate code

* Update unit tests

* Clean up includes

* Merge ProtobufSerializer into protobuf_util namespace

* Precompile regex

* Add const

* Add Split() convenience method, update log level/ID parsing

* Move log.h to legacy folder

* Elimininate gotos

* Fixes for gcc 13

* Update compiler flags

* Update default folder handling

* Use references instead of pointers

* Move code for better encapsulation

* Move code

* Remove unused method argument

* Move device logger

* Remove redundant to_string

* Rename for consistency

* Update handling of protobuf pointers

* Simplify protobuf usage

* Memory handling update

* Add hasher
2023-10-15 08:38:15 +02:00

152 lines
6.9 KiB
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!! ------ The native file is piscsi.1. Re-run 'make docs' after updating\n\n
piscsi(1) General Commands Manual piscsi(1)
piscsi - Emulates SCSI devices using the Raspberry Pi GPIO pins
SERVED_IDS] [-n TYPE] [-v] [-z LOCALE] [-IDn:[u] FILE] [-HDn[:u]
piscsi emulates SCSI devices using the Raspberry Pi GPIO pins.
In the arguments to PiSCSI, 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.
PiSCSI 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 compatible - only used with PC-98
hdi: SCSI Hard Disk image (Anex86 proprietary - only used with
PC-98 computers)
nhd: SCSI Hard Disk image (T98Next proprietary - only used with
PC-98 computers)
hda: SCSI Hard Disk image (Apple compatible - typically used with
Macintosh computers)
mos: SCSI Magneto-Optical image (generic - typically used with
NeXT, X68000, etc.)
iso: SCSI CD-ROM or DVD-ROM image (ISO 9660 image)
is1: SCSI CD-ROM or DVD-ROM image (ISO 9660 image, SCSI-1)
For example, if you want to specify an Apple-compatible HD image on ID
0, you can use the following command:
sudo piscsi -ID0 /path/to/drive/hdimage.hda
Note: PiSCSI is a fork of RaSCSI. The two cannot be run in parallel on
the same system.
Once PiSCSI starts, it will open a socket (default port is 6868) to al
low external management commands. If another process is using this
port, PiSCSI will terminate, since it is likely another instance of
PiSCSI or RaSCSI. Once PiSCSI has initialized, the scsictl utility can
be used to send commands.
To quit PiSCSI, press Control + C. If it is running in the background,
you can kill it using an INT signal.
The optional block size, either 512, 1024, 2048 or 4096 bytes.
Default size is 512 bytes.
The default folder for image files. For files in this folder no
absolute path needs to be specified. The initial default folder
is '~/images'.
The piscsi log level (trace, debug, info, warning, error, off).
The default log level is 'info' for all devices unless a partic
ular device ID and an optional LUN was provided.
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.
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.
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.
The piscsi server port, default is 6868.
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, piscsi tries to derive the type from the file exten
-v Display the piscsi version.
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. "interface=eth0,eth1,wlan0:inet=".
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.
Launch PiSCSI with no emulated drives attached:
Launch PiSCSI with an Apple hard drive image as ID 0 and a CD-ROM as ID
piscsi -ID0 /path/to/harddrive.hda -ID2 /path/to/cdimage.iso
Launch PiSCSI 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:
piscsi -ID0 -t scrm /dev/hdb -ID6 -t scdp daynaport
To create an empty, 100MiB 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
scsictl(1), scsimon(1), scsidump(1)
Full documentation is available at: <https://www.piscsi.com>