Mac Terminal

Установка последовательного соединения

Чтобы установить последовательную связь между машиной, работающей на операционной системе Linux, и системой Mac, вам понадобится:

Для Linux кабель последовательного порта DB9 Female-to-DB25 Male или DB25 Female-to-DB25 Male, это зависит от вашего последовательного порта.

Для Macintosh: кабель высокоскоростного модема DIN9-to-DB25 Male.

Убедитесь, что на кабеле обозначено "высокоскоростной" кабель, так как некоторые более старые кабели Macintosh предназначены для своих устаревших линий, которые делают их бесполезными для высокоскоростных последовательных соединений.

Вам также нужен адаптер к нуль-модему, выпускающийся американской фирмой Radio Shack, и соответствующие выходы, а также переходник DB25 Female-to-DB25 Female, чтобы соединить кабели для последовательного порта.

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

Если вам что-то непонятно, прочитайте Serial-HOWTO, чтобы ознакомиться в деталях с настройками кабеля RS-232 и протоколами передачи данных.

Прежде, чем соединить систему Mac и машину, работающую под операционной системой Linux, вы должны определить, что у вас есть рабочие последовательные порты на обеих машинах. Это можно проверить, "дозвонившись" с одной машины на другую, используя программы: minicom (Linux), ZTerm (Mac), kermit (оба), или с помощью коммуникационной программы по вашему выбору.

Самую последнюю версию minicom вы можете взять на sunsite.unc.edu/pub/Linux/apps/serialcomm/dialout и зеркальных сайтах.

ZTerm является целостной и легкой в использовании программой. К сожалению, она условно бесплатная. Текущую версию можно взять на mac.archive.umich.edu и подобных этому источниках.

Версии программы kermit есть для каждой машины и любой операционной системы. Архивы размещены на ftp.columbia.edu/kermit.

Вы должны серьезно обдумать возможность использования kermit на обеих машинах на этой стадии, по крайней мере, так как 1) она бесплатна (хотя не охвачена открытой лицензией (General Public License) фонда бесплатных программных обеспечений, и 2) гораздо удобнее иметь на обеих машинах kermit, вместо двух совершенно разных коммуникационных программ.

Если у вас другой способ определения состояния портов на двух машинах, то можете воспользоваться и им. Главное- убедиться в том, что у обеих систем есть работающие последовательные порты.

Фактическое осуществление последовательного соединения должно произойти легко. Если это вам не удалось, то, для справки, соединение выглядит так:

 Linux PC    DB9- or DB25-  Null     Gender   DIN9-to-       MacBox
---------   to-DB25 male   Modem    Changer  DB25 Mac      --------
|       |   serial cable. |     |  |     |   Serial Cable  |      |
|       |-----------------|     |--|     |-----------------|      |
|       |                 |     |  |     |                 |      |
---------                  Adapter                         --------

Соединение Клиента и Сервера, при помощи kermit.

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

Итак, вы запустили kermit и на Linux, и на Mac, и одна из них работает в режиме сервера. Не важно, какая система-клиент, а какая- сервер, потому что это прямое соединение. Однако у kermit Linux есть преимущество в возможности написания скриптов, так что будет логичным (для меня, по крайней мере) создать kermit на Linux как сервер, потому что это более автоматизировано.

Убедитесь, что правильно установили kermit и на ПК, работающем в Mac, и на ПК с Linux. Следуйте инструкциям в соответствующих дистрибутивах kermit. На машине, работающей в Linux, наберите kermit в командной строке, чтобы запустить ее. Вам нужны права пользователя root, чтобы установить порт и скорость передачи.

kermit - последняя версия POSIX для Unices, поддерживает скорость передачи до 115 Кб\с. Более поздняя версия Macintosh поддерживает скорость последовательных портов до 57.6 Кб\с. Это более, чем достаточно, для приложений использующих простой tty, но если вам нужно высокоскоростное соединение, то это может обеспечить kermit. Потому как kermit может предоставить вам средства для связи при помощи протокола TCP/IP (я не имел возможности это протестировать). При этом не забывайте (особенно того, что касается Mac) использовать отличный от TCP/IP соединений порт для последовательных соединений kermit, потому что kermit на Mac будет сильно забивать лишними данными последовательный порт.

С учетом этого ваш файл .kermrc будет содержать примерно следующее:

echo Executing site initialization file /usr/local/bin/ckermit.local.ini....
set prompt Chanel3 >
set line /dev/ttyS0
set baud 38400
set send packet-length 2000
set receive packet-length 2000
set block 3
set file type binary

Затем на вашем файле ~/.kermrc появится строка: take /usr/local/bin/ckermit.local.ini

На Macintosh установите такие же коммуникационные параметры для б\с, стоп-битов, четности и длины слова. Некоторые старые версии Mac Kermit не поддерживают пакетов объемом 2Кб, так что вам надо установить меньший размер пакета. Однако kermit устанавливает длину пакета, основанную на длине полученных пакетов, так что понадобится установить меньший размер пакета и на машине под Linux.Чтобы в действительности получить связь, надо установить режим сервера на Mac или на Linux. Не имеет значения где. Просмотрите подробно документы для kermit.

Источники Macintosh

Это одно из очень немногих приложений к kermit, где для передач полезна установка типа файла text. Это происходит потому, что файлы Macintosh имеют две части: data fork (область данных) и resource fork (область ресурсов). Область данных соответствует тому, что мы думаем о мире Linux, как о некоем файле: это фактические данные. Область ресурсов содержит растровые изображения для иконок, раскладки клавиатуры, настройки шрифта и тому подобное. Если вы передадите файл с Linux на Mac, последний не узнает этот файл как текстовый, если вы используете двоичный режим.

При передаче двоичных файлов от одной системы к другой, следует использовать формат Macintosh .hqx BinHex, который является 7-битовым кодированием 8-битового файла данных. Утилиты Mac, такие как BinHexer или StuffIt, преобразуют файл в его двоичную форму.

Если у вас будет текстовый файл, который вдруг закончится, как файл данных в системе Mac, скорее всего он даже не появится в диалоговом окне "Открыть". Вам придется открыть файл при помощи ResEdit, который можно взять с mac.archive.umich.edu. ResEdit скажет, что файл, который вы открываете, не имеет область источников и затем спросит, желаете ли добавить эту область. Вы должны ответить на этот вопрос положительно ("Yes"). Затем отредактируйте тип и программу, создавшую файл, выбрав специальную опцию "Открыть" в меню "Файл". Все текстовые файлы Macintosh являются типом TEXT, так что замените знаки вопроса в окне на TEXT. Код программы, создавшей файл (Creator code), зависит от вашего текстового редактора. Каждый из них уникален и зависит от того, как Mac идентифицирует различные приложения. Код для GNU Emacs на Mac будет, например, EMAC. Если вы сомневаетесь, каким будет код программы, создавшей файл для вашего текстового редактора, используйте ttxt, который является кодом для TeachText (эквивалент EDLIN.EXE.). Затем настоящий текстовый редактор сможет перевести файл с TeachText на его родной код.

Существует много других подобных вещей, которые под силу TeachText, так что имеет смысл постоянно держать его на своем Mac. Книга Voodoo Mac, написанная Kay Yarborough Nelson,- это источник уже испытанных способов работы Macintosh, которые используют ResEdit, TeachText, the Finder, а также другие программы.

Загрузка через kermit.

Настройка Linux для использования Mac как терминала login: легче. kermit идеален для этих целей, потому что это одна из нескольких бесплатных коммуникационных программ, которая обеспечит нужную степень эмуляции VT100/120/220.

Запустите kermit на Macintosh, как в предыдущем разделе, но не отдавайте команды серверу, а войдите в режим connect. Это режим эмуляции терминала, который используется в большинстве случаев.

На Linux, для настройки последовательного порта, надо использовать программу getty, чтобы получить приглашение на вход в систему. Для этого вам надо чтобы программа init распознала терминал на последовательном порте. В файле /etc/inittab необходимо иметь строку:

T1:23:respawn:/sbin/getty -L ttyS0 9600 vt100

Убедитесь, что вы заменили подходящее последовательное устройство для /dev/ttyS0 и поставили правильную скорость.Эта команда для getty запускает login (переключатель -L) на дисплее терминала, и когда время ввода истечет, перезапустите (respawn) программу ввода, пока кто-нибудь не войдет. Если ни одно устройство не соединится с последовательным портом или если соединение неправильное, вы увидите на консоли сообщение типа: /dev/ttyS0 respawning too fast: disabling for 5 minutes - слишком быстрая перезагрузка /dev/ttyS0: подождите 5 минут.. Если это случилось, вернуться к началу процесса (с правами пользователя root), терминируя процесс getty или используя команду init q. У них обеих тот же эффект, что и у перезапуска процесса(ов) getty. Если все в порядке, вам надо заглянуть в вывеску Linux и незамедлительно зайти в окно Mac kermit. Вроде все.

Также, если вы используете что-нибудь похожее, но не getty, например, getty_ps, вышеприведенная команда будет иной. Очень важно запомнить, что все, что находится справа от /sbin/getty, - это аргумент для самого getty, но не init. Просмотрите страницы руководства к getty, init и inittab, если у вас возникли вопросы.

В Serial HOWTO вы найдете подробное описание настройки /etc/inittab в getty_ps, если ваша система использует эту программу.

Чтобы передавать файлы туда и обратно между Macintosh и Linux, можно (через Mac Kermit ) дать команду kermit -x, чтобы запустить kermit на Linux в режиме сервера. Вы можете затем использовать команды для передачи файлов, чтобы посылать файлы через последовательное соединение. Стоит установить приглашение в своем файле ~/.kermrc строкой:

set prompt Linux-kermit >

Иначе вы спутаете, в какой системе находитесь.Другие программы для терминала Mac

Этот метод также хорош для любой другой программы терминалов Mac. Если у вас есть ZTerm, то можно использовать rz и sz на Linux для передачи файлов по протоколу ZModem. Если вы приобрели факс-модем вместе с программой Microphone Lite, то это тоже неплохое решение, они будут работать не хуже kermit.