Подключение машины Atari ST, как Linux терминала
 
Автор: (C) Matthias Arndt
Перевод: (C) Иван Песин


Цель

Статья должна помочь подключить добрый старый ST в качестве терминала Linux.

Введение

Перед тем, как начать, хочу заметить, что многие идеи, приведенные в этой статье, применимы не только к Atari ST. Для полной уверенности, однако, можете взять либо Amiga, либо Sinclair QL (у Linus'a, до того, как он получил свой ПК, был Sinclair QL).

Я начал работать с Atari ST более 10 лет назад, когда мой брат купил Acorn Archimedes, а мне достался его старый 520STM. Вот почему я люблю эмуляторы ST и старые добрые игры. У меня до сих пор есть работающий ST (правда, более новый - 1040STFM, который я купил с рук) и я подумывал о том, чтобы использовать его не только, как игровую приставку.

Это и привело меня к мысли сделать из него терминал для моей Linux системы. Признаюсь -- у меня нет ни одной убедительной причины подключать второй теминал. Я пользуюсь моей машиной один. Это просто эксперимент и ностальгия по ST :).

Данное решение может использоваться для передачи файлов и программ на ST и, наконец, для ограниченного доступа к Internet. Если ваш эмулятор терминала достаточно хорош, то вы сможете использовать для серфинга lynx и w3m, читать почту в mutt, а новости -- с помощью tin или slrn. Можно даже играть в консольные игры с другими пользователями.

Ну, давайте, наконец, разбираться.

Что такое терминал?

Терминал -- это просто монитор с клавиатурой, на котором отображается приходящий откуда-то текст; возможно, распознающий некоторые управляющие команды, закодированные в так называемые escape-последовательности и посылающий на другую сторону соединения коды нажатых клавиш.

В целом, аппаратные терминалы, являются тупыми. Они больше ничего не умеют (спорное утверждение: многие терминалы, например фирмы DEC, имеют столько возможностей, что их описание представляет из себя весьма увесистый том. - Прим.Пер.).

В давние времена (да и сейчас тоже - Прим.Пер.), терминалы использовались для подключения использователей к мейнфреймам.

Если у вас есть такой терминал, Вы можете подключить его способом, который описан в этой статье.

Функции терминала -- получение, передача и отображение -- может быть легко реализованы программно. Это тот путь, которым пойдем мы. Мы применим специальное программное обеспечение, которое заставит ST работать в качестве терминала.

Необходимое аппаратное обеспечение

Для нашего эксперимента понадобится следующее:

  1. Компьютер Atari ST, желательно с 1 или более мегабайтом оперативной памяти
  2. либо монохромный дисплей для ST (SM124 - очень хорош!), либо цветной монитор, с хорошим качеством изображения и поддерживающий частоту 60 Hz
  3. нуль-модемный кабель, который подключается в последовательный порт ST и ПК
  4. наконец, Linux или Unix-подобная операционная система, которая в состоянии выдержать более одного пользователя (все, что угодно с 486 и более быстрым процессором, будет работать просто великолепно)

Как уже отмечалось, Atari ST компьютер может быть заменен любой машиной с разъемом RS232 и дисплеем, поддерживающим 80 колонок текста.

Можно использовать и обычные терминалы, но тогда Вы лишаетесь возможности скачивать программы или загружать программы на сервер.

Требования к программному обеспечению

  1. Ядро Linux с поддержкой последовательных портов
  2. getty, работающая с последовательными линиями (подойдет и agetty, и mgetty)
  3. lrzsz для передачи по протоколу ZModem (дополнительно)
  4. kermit для передачи по протоколу Kermit (дополнительно)
  5. ПО для ST
    • терминальная программа, поддерживающая (как минмум) эмуляцию терминала VT52
    • программа передачи файлов, типа XYZ.TTP (дополнительно)
    • патч для последовательных портов, так как процедуры обработки RS232 в TOS (операционная система ST) поставляются с ошибками
  6. и множество программ, которые могут быть запущены с консоли (поставляются с Вашим дистрибутивом Linux)
Если Вы используете другую машину, не Atari ST, Вам нужна будет программа эмуляции терминалов VT100 или ANSI с возможностью передачи файлов.

Ядро не должно быть проблемой. Если Вы используете внешний модем, для соединения с Сетью, то все уже настроено.

В большинстве случаев, ядро будет иметь поддержку последовательных портов, скомпилированную в виде модуля. Если нет - Вам придется скомпилировать ядро самим. Здесь я не буду это обсуждать , так как по этой теме есть несколько документов HOWTO.

Организация системного приглашения [login prompt] на последовательной линии

Этот шаг необходим для того, что бы послать на ST приглашение для входа в систему.

Сперва, надо раздобыть подходящий getty. Это программа, которая применяется для того, чтобы отобразить приветствие системы и приглашение для ввода имени пользователя. После этого вызывается программа /bin/login и пользователь начинает регистрацию в системе.

Все процессы getty вызываются процессом init. А для настройки init используется файл /etc/inittab.

В большинстве дистрибутивов присутствует как agetty, так и mgetty. Я пользуюсь agetty, потому и сосредоточусь на нем .

Так, станьте пользователем root и откройте в редакторе файл /etc/inittab.

Следующим шагом, будет добавлнение строки, вызывающей процесс getty. Эта строка выглядит так:

S0:12345:respawn:/sbin/agetty -w -h -L 19200 ttyS0 ansi

Ужас, да? Не надо обмороков, я объясню смысл этой строки.

Будем считать компоненты слева, то есть компонент с номером 1 - это S0:

  1. S0 - это уникальный идентификатор стоки, просто символ, который должен быть уникальным во всем файле /etc/inittab
  2. 12345 - это уровни выполнения, на которых должен вызываться getty
  3. respawn - сообщает процессу init перезапускать getty после завершения
  4. /sbin/agetty ... - а это, собственно, командная строка, вызывающая getty

Сохраните файл и выйдите из редактора. Введите init q в командной строке, что бы init перечитал файл inittab.

agetty и ее аргументы

Вначале, укажите полный путь к программе agetty. Если вы не знаете, где она расположена, то попробуйте ввести команду locate bin/agetty.

Далее вы можете указать один из следующих аргументов. (Для примера, можете посмотреть предыдущий раздел.)

-w указывает agetty ждать для отображения приглашения символа CR (ASCII 13)

-h указывает agetty использовать аппаратный контроль потока (RTS/CTS)

-L указывает agetty, что линия является локальной, то есть не надо искать несущую.

## Скорость линии. Допустимы значения 19200, 9600 и 2400. ST не будет работать со скоростями больше чем 19200.

ttyS? Это линия, которая будет использована. Обозначения: ttyS0 для COM1, ttyS1 для COM2 и так далее. Убедитесь, что порт, который вы указали, не используется модемом. Если у вас только один порт, то придется переключаться между модемом и терминалом. В этом случае лучше использовать mgetty, так как она может обрабатывать как входящие так и исходящие звонки на одной линии (однако, mgetty ориентирован на модем).

ansi это тип терминала, который будет использоватся. Можете попробовать vt100 или atari, в зависимости от возможностей вашего програмного обеспечения.

Если есть сомнения, обратитесь к man agetty.

Настройка ST

Для начала, соедините обе машины нуль-модемным кабелем. У ST есть разъем с рисунком телефонной розетки. Это последовательный порт.

Вам, возможно, понадобится переходник с DB25 на DB9, либо наоборот, так как ST оборудована широким портом, а в большинстве ПК, наоборот, используется узкий коннектор. Нуль модемный кабель Вы найдете в любом компьютерном магазинчике. Купите такой, который подходит к Вашему ПК и переходник для ST.

Теперь загрузите терминальную программу на ST. Убедитесь, что установлена та же скорость передачи, что и в agetty и что установлен режим 8N1 (8-бит, нечет, 1 стоп-бит. - прим.пер.). Нажмите Enter несколько раз. На экране ST должно появится приглашение вашего линукса. Логинтесь и вовсю используйте работающие в текстовом режиме программы.

Для того, чтобы проверить возможности эмулятора терминала, можно попробовать запустить curses-программы (т.е. использующие библиотеку curses, позволяющую рисовать в текстовом режиме окна и т.д. -- прим. пер.). С хорошим эмулятором можно использовать lynx, w3m, mutt и vi. Некоторые эмуляторы в состоянии корректно отобразить Midnight Commander, даже цвете.

Рекомендуемое программное обеспечение для ST

Эмулятор VT52, поставляемый с ST, годится для простых задач и для проверки соединения с линуксом. Он не дотягивает до ANSI терминала, и ему не хватает возможности передачи файлов.

Если ваш ST оборудован более чем 1Mб RAM, Вы можете попробовать Rufus или Connect.

ST Term работает и в 512Кб ОЗУ. Эмулятор VT52 с ANSI-обработчиком -- хорошее решение для систем с малым количеством памяти.

ANSITERM предлагает полную поддержку ANSI, включая цвета и 80-колончатый дисплей в низком разрешении. Однакое, лучше использовать хороший монитор или ваши глаза вылезут из орбит.

TAZ выполняется в среднем разрешении или монохромном режиме. Он поддерживает 16 цветов с переключениев страниц и режимов. Однако это требует монитора с частотой 60 Гц. Интерфейс напоминает minicom и telix, в цеолм выглядит приятно.
Я рекомендую эту программу, потому что эмуляция терминала написана очень хорошо, и у нее есть модные функции. Кроме того, она может работать даже в 512Кб.

Проверте, установлен ли режим 80 колонок, так как многие программы не будут работать с меньшим их числом.

Если у вас есть монохромный монитор -- очень хорошо. Естественно, вы теряете цвета. Но с TAZ у вас не должно быть проблем.

Несколько ST программ можно найти на этом сервере: ftp://wuarchive.wustl.edu/systems/atari/umich.edu/

передача файлов

Эта функция -- одина из главных причин, заставивших меня соединить ПК и ST. Теперь вы сможете сохранить ваши старые файлы и загрузить новое ПО из Internet.

Лучше использовать протокол ZModem. Соображения такие:

  • это стандарт
  • высокая надежность
  • доступность для линукс-машин

Убедитесь, что у на ST есть программы пересылки и приема файлов .

Для передачи файла с линукса на ST, введите в командной строке:

sz filename
Теперь запустите программу приема на ST. Некоторые терминалы поддерживает автоматический прием по протоколу Zmodem.

Передача данных в противоположном направлении так же проста. Введите:

rz
на лиуксе. Теперь запустите отправку на вашем терминале.

Если процесс передачи вдруг зависнет, несколько раз нажмите Ctrl-C. Если это не поможет -- снимите процесс rz/sz на линукс-машине.

Выводы

Если у вас хорошая ST, вся эта настройка проходит очень быстро и просто. Для меня самой сложной задачей было найти приличный эмулятор терминала под ST.

другие системы в качестве терминала

Естественно, что в качестве терминала можно подключить не только Atari ST. Можно взять Commodore Amiga или Sinclair QL и проделать тоже самое. Система должна лишь соответствовать следующим требованиям:

  • 80-колончатый дисплей
  • стандартный порт RS232
  • наличие эмулирующего терминал ПО

Надеюсь, это поможет получить удовольствие от вашей старенькой машины, и узнать немного о сетях до-Ethernet'овской эпохи.


Матиас Арндт (Matthias Arndt)

Я энтузиаст линукс из северной Германии. Люблю старый рок-н-рол 50-х годов, люблю писать статьи для Linux Gazette. Сейчас учусь на факультете информационных технологий с экономическим уклоном.
Copyright (С) 2001, Matthias Arndt.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 70 of Linux Gazette, September 2001

Вернуться на главную страницу