Цель
Статья должна помочь подключить добрый старый 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 работать в качестве терминала.
Необходимое аппаратное обеспечение
Для нашего эксперимента понадобится следующее:
- Компьютер Atari ST, желательно с 1 или более мегабайтом оперативной памяти
- либо монохромный дисплей для ST (SM124 - очень хорош!), либо цветной монитор, с хорошим качеством изображения и поддерживающий частоту 60 Hz
- нуль-модемный кабель, который подключается в последовательный порт ST и ПК
- наконец, Linux или Unix-подобная операционная система, которая в состоянии выдержать более одного пользователя (все, что угодно с 486 и более быстрым процессором, будет работать просто великолепно)
Как уже отмечалось, Atari ST компьютер может быть заменен любой машиной с разъемом RS232 и дисплеем, поддерживающим 80 колонок текста.
Можно использовать и обычные терминалы, но тогда Вы лишаетесь возможности скачивать программы или загружать программы на сервер.
Требования к программному обеспечению
- Ядро Linux с поддержкой последовательных портов
- getty, работающая с последовательными линиями (подойдет и agetty, и mgetty)
- lrzsz для передачи по протоколу ZModem (дополнительно)
- kermit для передачи по протоколу Kermit (дополнительно)
- ПО для ST
- терминальная программа, поддерживающая (как минмум) эмуляцию терминала VT52
- программа передачи файлов, типа XYZ.TTP (дополнительно)
- патч для последовательных портов, так как процедуры обработки RS232 в TOS (операционная система ST) поставляются с ошибками
- и множество программ, которые могут быть запущены с консоли (поставляются с Вашим дистрибутивом Linux)
Ядро не должно быть проблемой. Если Вы используете внешний модем, для соединения с Сетью, то все уже настроено.
В большинстве случаев, ядро будет иметь поддержку последовательных портов, скомпилированную в виде модуля. Если нет - Вам придется скомпилировать ядро самим. Здесь я не буду это обсуждать , так как по этой теме есть несколько документов 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:
- S0 - это уникальный идентификатор стоки, просто символ, который должен быть уникальным во всем файле /etc/inittab
- 12345 - это уровни выполнения, на которых должен вызываться getty
- respawn - сообщает процессу init перезапускать getty после завершения
- /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'овской эпохи.
...
Вторую жизнь обрёл уже похоронееый мной Skorpion (CPU-Z80 и RAM-256kb), а вот Отечественные разработки типа Korvet (CPU - IBM 8080 RAM-64kb) и МК'шка не заработали. Получается очень весело, когда к машине подключены два терминала и мониторы поменяни местами:-)
...
только уточните, что машина работает (пока) не как терминал, а как часть сети (прямое кабельное соединение посредствам LPT порта), а на терминал у неё мозгов не хватает. Так же можно заставить сделаться IBM овместимыми приставки Dеndy с клавиатурой и приставки Subor. Только это баловство, не несущее никакой пользы, но повозиться со старым железом интересно. Надо залесть на балкон и надёргать Spektrum'овских ПЗУшек мегабайта на два, воткнуть их в Скорпиона, тогда и про терминал говорить можно.
Продолжается "прикручивание" к Linux'ам старых компОв. Вот какое пришло письмо:
Прочитал Linux Gazette на русском | Выпуск #43 |
Решил добавить свою информацию про подключение необычного железа к Linux
Вообщем, смотрите http://uk-nc.chat.ru
Речь идет о подключении УК-НЦ (Электроника МС0511) в качестве терминала.