Connecting an Amstrad PPC 640 to Linux over serial

Submitted by Falken on

It's fairly easy to get the PPC talking to a modern computer. This lets you do cool tricks like Toot from it by using things like https://github.com/ihabunek/toot on the host

Things to buy

  1. a USB to serial convertor such as https://www.aliexpress.com/item/1005001922171819.html
  2. suitable adapter for the Amstrad end, such as this https://www.aliexpress.com/item/1005003218378754.html 9 female to 25 female
  3. a null modem inline convertor like a https://www.aliexpress.com/item/1005006844860509.html which is male to female so it doesn't change the gender.

Linux side

  1. remove the brltty package
  2. when you connect the USB to serial, you should see 2024-09-11T15:20:14.507885+01:00 frame kernel: usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0 in syslog
  3. sudo systemctl start getty@ttyUSB0.service 
  4. sudo systemctl status getty@ttyUSB0.service should then say Sep 11 15:21:14 frame systemd[1]: Started getty@ttyUSB0.service - Getty on ttyUSB0.

You'll have to start the service each time you replug in the serial cable.Amstrad setup

Amstrad setup

  1. On the PPC, load mirror or some other terminal emulator. No luck with LotusWorks yet as doesn't seem to allow choosing the COM port ?
  2. Load the built in `serial` connection (assigned to com1, the serial port, not com2, the modem)
    It is probably fine, but I had most luck disabling handshake, and remapping some of the keys - see attached serial.xtk you can copy to your Mirror disk or image file. Maybe best to name it do it doesn't conflict.
  3. Press enter a few times, you should see your machines login prompt, and be able to login as normal.
A very low resolution text-based terminal, black on green

 

Issues

If you are prompted for a fingerprint or other 2FA instead of a password, and it doesn't go away, you have an issue with PAM. 
I don't know how to disable this for serial connections, but you can change it to timeout and prompt for password instead if your /etc/pam.d/common-auth contains auth        sufficient    pam_fprintd.so this should be changed to 

auth    [success=2 default=ignore]      pam_fprintd.so max-tries=1 timeout=10 
auth    [success=1 default=ignore]      pam_unix.so nullok try_first_pass
 

You can do this manually or use pam-auth-update which you probably should have done in the first place to enable fprintd.

 

Sections