Terminaali 80-luvulta

10.2.2016 / Projektit / Max Sandholm
Falco 5220e-terminaali

Falco 5220e-terminaali

Hacklabille saapui vanha sarjaterminaali 80-luvulta (Falco 5220e). Se näyttää niin hyvältä, että se oli pakko saada toimimaan tietokoneen terminaalina, ja tiistaina teimme juuri tämän.

Falco 5220e on ns. “älykäs” terminaali, joka emuloi RS232-sarjaportin yli mm. VT100- ja VT300-terminaaleja. Se tukee myös tulostimia ja modeemeja, ja tukee monta samanaikaista sessiota ja ikkunaa. Terminaalissa on kaksi RS232-sarjaporttia DB25-liittimellä.

Labin pöytäkoneessa on tavallinen RS232-sarjaportti DB9-liittimellä, eli aloitettiin etsimällä varastosta DB25- ja DB9-liittimet. Valmista kaapelia ei ollut, mutta löytyi eri kaapelinpätkiä, joissa oli tarvittavat liittimet. Seuraavaksi suunniteltiin miten DB25 ja DB9 kytketään oikealla tavalla yhteen. Jos etsii netistä niin löytää helposti nollamodeemikaapelin kaavan, mutta se ei ole tähän tarkoitukseen sopiva. Tässä tapauksessa luettiin terminaalin manuaalista RS232-pinout, ja kytkettiin sen mukaan DB25-pinnit DB9:ään seuraavalla tavalla:

DB9   - DB25
2:RXD - 2:TXD
3:TXD - 3:RXD
5:GND - 7:GND
7:RTS - 5:CTS
8:CTS - 4:RTS

Itse kolvattu kaapeli toimi ensimmäisellä yrityksellä, ja voitiin heti alkaa säätää softassa asetuksia. Terminaalin puolella aloitettiin turvallisesti laittamalla 9600 baud, 8-bit no parity, 1 stop bit, poistettiin käytöstä kaikki receive/transmit control-funktiot, ja valittiin VT100-emulaatio. Labin pöytäkoneessa on käyttöjärjestelmänä Ubuntu, ja sen puolella ajettiin komento:

# getty -L 9600 ttyS0 vt100

Tämä aloittaa tavallisen login-promptin sarjaportilla ttyS0 nopeudella 9600, ja asettaa terminaalin tyypiksi vt100 (näin ohjelmat käyttävät vain VT100-terminaalin tukemia toimintoja). Tämä toimi suurin piirtein ensimmäisellä yrityksellä, ja nostettiin nopeus 19200 baudiin. getty-ohjelma ei silti aivan sovellu ajettavaksi normaalista shellistä, niin siksi kannattaa lisätä getty sarjaportille init-järjestelmän konfiguraatiossa. Tässä seuraa ohjeet Fedoralle (systemd) ja vanhemmalle Debianille (SysVinit), mutta muille järjestelmille on myös helppo löytää ohjeita netistä.

Jos käytät vanhempaa Debiania jossa on SysVinit, niin sarjaterminaali lisätään init:iin muokkaamalla tiedostoa /etc/inittab. Tässä tiedostossa on yhdessä kohdassa rivit, jotka määrittelee virtuaaliterminaalit, jotka näyttävät suurin piirtein tältä:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Näiden rivien (tai vastaavien) jälkeen lisätään seuraava rivi:

s0:2345:respawn:/sbin/getty -L 19200 ttyS0 vt100

Seuraavalla käynnistyksellä terminaalin pitäisi toimia normaalisti ja näyttää login-prompti.
Jos käytät Fedoraa jossa on systemd (tai muuta käyttöjärjestelmää joka käyttää systemd:tä), niin tämä tehdään toisella tavalla. Aja ensin komento:

# systemctl enable serial-getty@ttyS0

Sen jälkeen muokataan tiedostoa /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service . Tässä tiedostossa on rivi joka näyttää tältä:

ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM

Tässä voi muokata agetty:n parametreja kuten esim. baudit halutuiksi. Säästä muutokset ja käynnistä uudelleen, ja sarjaterminaaliin avautuu login-prompt.

Ja näin labilla on nyt aito toimiva 80-luvun terminaali kytkettynä pöytäkoneeseen!