This utility provides crude and minimalistic support for the BFS, BOOTP, TFTP and BSD r-command (rsh, rcp, rlogin, etc.) protocols necessary to perform the network boot and installation of MIPS Computer Systems computers such as the RS2030 and RS3230 workstations. It was designed for and tested with the MAME emulation of these systems.
mipsboot
was developed to address several problems:
- The target systems do not support BOOTP/TFTP, and rely on BFS, an obselete MIPS-unique protocol to perform the same function.
- BOOTP and TFTP themselves are largely obselete, and while some implementations are still available, they likely suffer from compatibility and security issues that make installation in a modern environment unnecessarily difficult or undesirable.
- BSD r-commands as used by the MIPS installation software are both obselete and insecure, again making them unsuitable for installation in a modern environment.
- Use of any of these protocols in a non-Unix environment such as Windows is awkward at best, and may require substantial troubleshooting.
- The target systems construct network broadcast addresses with all zeros in the host portion, making them incompatible with standard TCP/IP networks.
mipsboot
combines support for all of the required protocols into a single Python script, does not require any installation or system configuration, and addresses the broadcast address issue by dynamically patching certain MIPS operating system binaries on demand.
To use mipsboot
successfully requires:
- a working installation of Python 2.7
- a copy of the file
riscos_4.52_netinstall.tar
or equivalent - a network connection to the target MIPS system
The tar file must be located in the working directory, and is directly accessed by mipsboot
to service BFS, TFTP and r-command file requests.
Launch mipsboot as follows:
python mipsboot.py address
where:
address
is the IP address to which mipsboot
will bind and listen for connections and requests.
mipsboot
requires read/write access to its working directory and produces some diagnostic output to the console.