The Artima Developer Community
Sponsored Link

Python Buzz Forum
Retrochallenge 2014 Winter Warm-up

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Aaron Brady

Posts: 576
Nickname: insommeuk
Registered: Aug, 2003

Aaron Brady is lead developer for Crestsource
Retrochallenge 2014 Winter Warm-up Posted: Jan 5, 2014 1:10 PM
Reply to this message Reply

This post originated from an RSS feed registered with Python Buzz by Aaron Brady.
Original Post: Retrochallenge 2014 Winter Warm-up
Feed Title: insom.me.uk
Feed URL: http://feeds2.feedburner.com/insommeuk
Feed Description: Posts related to using Python. Some tricks and tips, observations, hacks, and the Brand New Things.
Latest Python Buzz Posts
Latest Python Buzz Posts by Aaron Brady
Latest Posts From insom.me.uk

Advertisement

After a PINE-related conversation with Twylo, I’ve made a late entry to Retrochallenge’s 2014 Winter Warmup:

  • setting up a dumb terminal (I’m planning on using a Raspberry Pi booting straight into a single-user-mode Minicom session, which would make a cheap PockeTerm alternative.) and use only an 80×25 text session for interacting with:
  • an emulated ’96-era Unix. Possibly Redhat 3.0.3 under i386. I also used Solaris and Ultrix on SparcStation and DECstations around this time (this was practically retrocomputing when I was doing it the first time!) – maybe getting one or other of these working under QEMU leading to:
  • using a PPP session from the emulated Unix as my main way of interacting with the social world: updating my blog, reading my email (delivered in batch via UUCP or POP3), Twitter (anachromism), IRC.

In summary: a terminal-only interface to an old Unix using serial as its only access to the outside world.

I’m happy to report some success on the first point: I have a Raspberry Pi booting straight into a fullscreen 80x25ish1 Minicom session, over an actual serial port. It’s as close to a PockeTerm as I could make: low resolution, over actual RS232, and not running a full Unix environment in the background (if you could run ps, process #1 would be minicom).

Ideally, I would like to have avoided using a USB serial adaptor: the Pi has a UART on board running at 3.3v, and this can be converted to a proper serial port via a MAX232 IC (here’s a guide). Unfortunately that would mean buying new parts, which would delay me starting (and it’s January and I’m moving home, and the budget for retrocomputing supplies is approximately £0).

Here’s a guide to turn this:

RaspberryPi Bits

into this:

RaspberryPi Terminal

(Ultimately to connect to this):

N270 Board

Start with a Raspbian Wheezy image, boot to a console and then:

# install minicom
sudo apt-get install minicom
# pick a more suitable font
sudo dpkg-reconfigure console-setup

I picked VGA 16x32 - on a 1280x1024 screen that gives me 80x32 characters.

We’re going to create a replacement for /sbin/init, but that means we’ll need to do all of our own set up and also that we won’t go through the normal system initialisation, including: mounting the filesystem read-write, setting the fonts, loading kernel modules and having devfs available.

I’m using a Prolific 2303 USB serial adaptor, so I need to load the pl2302 driver, create the /dev/ttyUSB0-equivalent device, too. Because /dev is a different filesystem, let’s just be lazy and put it in /.

The device numbers are 188 and 0, so before rebooting:

sudo mknod /USB c 188 0
sudo vi /init

You might also want to set the defaults for Minicom, as root, while you can still write to the disk. Change your device (under A) to /USB, set your baud and flow control to match what you’re connecting to (I’m going with 9600 here, and I only have a 3-wire serial lead, so I’m using software flow control, too). “Save setup as dfl” to save … as … the … default.

sudo minicom -s

Then we’ll create our new init, as /init:

#!/bin/sh
/sbin/modprobe pl2303
/bin/setupcon
exec /usr/bin/minicom -s -c on

(Make sure to make it executable)

sudo chmod 755 /init

Then change the init in /boot/cmdline.txt - add init=/init to the end of whatever is currently in there and reboot!

If the stars align and you have the configuration I do, you will have a terminal the boots up in about 3 seconds.

If you exit Minicom, the kernel will panic- but that’s okay: you can just power it off when you’re done. The disk is never mounted read-write, so you’re not going to need to worry about wearing out your SD card, either.


  1. The font I was able to use gives me 80x32, but it looks suitably retro compared to the sharp high-resolution displays we’re spoiled with nowadays. 

Read: Retrochallenge 2014 Winter Warm-up

Topic: Retrochallenge Update Previous Topic   Next Topic Topic: Title Goes Here (Identity, Necroblogging, Share Cropping)

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use