PiDP-8/I Software

Artifact [a13acbc33e]
Log In

Artifact a13acbc33e4dac03379b8dcdd88174d034b7dc90:

Wiki page [How to Run a Naked PiDP-8/I] by tangent 2019-05-18 20:37:44.
D 2019-05-18T20:37:44.623
L How\sto\sRun\sa\sNaked\sPiDP-8/I
N text/x-markdown
P 5b622a42f0d8dd86b43fb15b5450bb1d193375f9
U tangent
W 4377
# The Situation

> "The S in IoT stands for Security." — [TVS blog][tvs]

The PiDP-8/I binary OS images shipped from [this site][site] are fairly well locked down. They ship with the normal Raspbian default user name changed to an uncommon name, that user has a very strong default password which you are forced to change on first login to something different, the OS won't accept a weak password by default, and there are no networked services running.

(OpenSSH must be [manually reawakened][sshd] after installation, and, once done, the default configuration on Raspbian is quite secure.)

Yet, some people want their PiDP-8/I to just be an appliance: they want it to turn on and run the PDP-8 simulator: no user names, no passwords. I resist shipping OS images configured this way because Raspbian is a full-featured operating system. When networked, it is capable of being a powerful island for an attacker on the network. Even some of the most heavily-protected web services have been taken down by small armies of lesser systems — such as networked *printers* — pounding on them in concert.

I refuse to build OS images that contribute to this problem.

I also do not believe in restricting access to technical information, even when making use of that information is highly inadvisable, so in that spirit, I will shortly describe how to discard the provided security provisions.

Before I get to that, you may want to consider using the [serial or Telnet console options][stco] instead. Those methods have fewer security problems, yet achieve much the same end.

[sshd]: /doc/trunk/README.md#sshd
[stco]: /wiki?name=Serial+or+Telnet+PDP-8+Console


## Getting Rid of the Login Prompt

The first thing you have to do on logging in is change your user name back from `pidp8i` to `pi`, because some changes we will make below only work properly with user `pi` due to hard-coded configuration files in the stock OS.

Give these commands, being *very careful* how you type them, because you can lock yourself out of the system if you fat-finger them:

    $ exec sudo -i
    # systemctl stop pidp8i
    # killall -u pidp8i -9
    # usermod -l pi -d /home/pi -m pidp8i
    # groupmod -n pi pidp8i
    # exit

Now log back in as user `pi`, with the same password you had for user `pidp8i` prior to this change.

If you have the PiDP-8/I PCB attached to your Pi and you try to restart the simulator, the front panel will not light up now.  This is because the PiDP-8/I software was built with the knowledge that the default user name was `pidp8i`.  You need to rebuild and reinstall it to fix this:

    $ cd ~/pidp8i
    $ rm .fslckout
    $ fossil user default pidp8i
    $ fossil open ~/museum/pidp8i.fossil release
    $ ./configure && tools/mmake && sudo make install
    $ sudo systemctl restart pidp8i

That should light the panel back up.

Now we can finally set up auto-login:

    $ sudo raspi-config
    
Then go to **Boot Options** → **Desktop / CLI** → **Console Autologin**.

It will offer to reboot your system to test this.  It should succeed.


## Attaching the Console to the Simulator by Default

Instead of booting to a Linux command prompt, you may prefer to have the Raspbian console attached to the PiDP-8/I simulator console, so that you see the program you're simulating: OS/8, TSS/8, Spacewar! or what have you.

The simplest way I can think of to do that is:

    $ echo pidp8i >> ~/.profile
    $ sudo reboot

That should drop you into the SIMH console after the host OS boots.

If you need to get back to Linux, there are a couple of ways.

If you just need to run a single command, you can press <kbd>Ctrl-E</kbd> and then run your command from the `sim>` prompt with the `!` shell escape:

    sim> !df -h
    ...disk free space report...
    sim> c
    ...simulation continues...

If you need to do more than that, I recommend quitting out of SIMH via <kbd>Ctrl-E</kbd> `quit`.  Do your Linux work, and when done, re-start the simulator and re-attach to it:

    $ sudo systemctl restart pidp8i
    $ pidp8i


## License

Copyright © 2017-2019 by Warren Young. This document is licensed under the terms of [the SIMH license][sl].


[tvs]:  http://www.testandverification.com/iot/s-iot-stands-security/
[site]: /
[sl]:   /doc/trunk/SIMH-LICENSE.md
Z 9210b160945004fa51df506512d38a20