English fork of the Japanese RaSCSI project. RaSCSI allows a Raspberry Pi to function as emulated SCSI devices (hard disk, CD-ROM, and others) for vintage SCSI-based computers and devices.
Go to file
uweseimet af6e311e6e
protobuf-based rasctl/rascsi command interface (#129)
* Initial protobuf definition

* protobuf result message draft

* Merge with develop branch

* Makefile generates protobuf-based source files

* Interface update

* Fixed typo

* Fixed typo

* Updated returning status

* Serialize return data

* Use correct descriptor

* Made interface fields required

* Deserialize result

* Serialization update

* Updated serialization

* Serialization update

* Updated deserialization

* status handling update

* Evaluate status

* Revert "Evaluate status"

This reverts commit 3d8f2c3252.

* Completed sense_key enum

* Renaming

* Added protobuf Command

* Updated command evaluation

* Interface update

* Interface update

* Added DeviceType enum

* Improved type-safety

* Fixed typo

* Type-safety update

* Fixed typo

* Error handling update

* Updated list handling

* Error handling update

* Use more C++ strings

* protobuf enums can provide their names

* Fixed listing devices

* Updated logging

* Enum usage cleanup

* More enum cleanup

* Fixed command check

* Updated type check

* Updated enums

* Removed unused variable

* Removed goto, added exception

* Socket handling cleanup

* Code locality cleanup

* Added helper method

* Extracted code

* Updated socket/file handling

* Use C++ I/O

* Use tolower()

* Renaming

* Simplified has_suffix

* Fixed typo

* Use spdlog namespace

* Simplified formatting (endl) of error messages

* Added -s option for changing the runtime log level to rasctl

* Renaming

* Renaming

* Updated error reporting

* Fixed log string formatting

* String conversion cleanup

* Fixed typo

* Log mmap error (happens on 64 bit)

* Improved proto3 compatibility, updated error handling

* CHanges based on review

* Fixed comment

* Comment update

* Updated ListDevice to not directly write to the stream

* Use size_t

* Renaming

* Buffering update

* MapController should not use fp

* Use fd, not fp

* rasctl has to display *all* results

* rasctl has to display *all* results

* Error handling update

* Updated to proto3 protocol

* Optimization by using protobuf-lite

* RaspBian outdated protoc does not support _Name

* Added protobuf-compiler to easyinstall.sh

Co-authored-by: akuker <34318535+akuker@users.noreply.github.com>
2021-07-18 17:15:13 -05:00
.github Issue #7 - implement a scsi monitor function for RaSCSI to log SCSI traffic (#46) 2020-10-19 07:31:06 -05:00
doc Regenerated text versions of man pages. This was missed in PR #110 2021-06-22 19:30:33 -05:00
docs Merge Hw 2p4 to develop (#109) 2021-06-08 19:06:29 -05:00
hw Merge Hw 2p4 to develop (#109) 2021-06-08 19:06:29 -05:00
src protobuf-based rasctl/rascsi command interface (#129) 2021-07-18 17:15:13 -05:00
test/robot Cleanup test procedure to allow service to be inactive OR failed 2021-04-05 16:38:39 -05:00
_config.yml Set theme jekyll-theme-midnight 2020-07-04 20:39:04 -05:00
.gitignore Add start script to simplify oled install 2021-03-07 09:28:40 -06:00
easyinstall.sh protobuf-based rasctl/rascsi command interface (#129) 2021-07-18 17:15:13 -05:00
LICENSE Create LICENSE 2020-07-05 23:02:40 -05:00
lido-driver.img improved HD creator with partioning and formatting Drive with HFS. (#51) 2020-11-07 18:10:09 -06:00
RASCSI_webpage_translated.pdf Merged in RASCSI version 1.47 and re-generated english PDF 2020-07-04 09:57:44 -05:00
README.md Update README.md 2021-01-24 21:45:53 -06:00

C/C++ CI Scrutinizer Code Quality Coverity Scan Build Status

What is RaSCSI?

RaSCSI is a virtual SCSI device emulator that runs on a Raspberry Pi. It runs in userspace, and can emulate several SCSI devices at one time. There is a control interface to attach / detach drives during runtime, as well as insert and eject removable media. This project is aimed at users of vintage Macintosh computers from the 1980's and 1990's.

Please check out the full story with much more detail on the wiki!

How do I contribute?

RaSCSI is using the Gitflow Workflow. A quick overview:

  • The master branch should always reflect the contents of the last stable release
  • The develop branch should contain the latest tested & approved updates. Pull requests should be used to merge changes into develop.
  • The rest of the feature branches are for developing new features
  • A tag will be created for each "release". The releases will be named . (for the first release of the month). Hot fixes, if necessary, will be released as ... For example, the first release in January 2021 will be release "21.01". If a hot-fix is needed for this release, the first hotfix will be "21.01.1".

Typically, releases will only be planned every few months.

I sell on Tindie