docs/ibmx130.txt: Использование IBM Xstation 130 в качестве Х-терминала в Linux BlackCat 6.2, HOWTO by Pavel Tsybulin pavelt@moscow.vestedev.com v 1.0, 18 January, 2001 ____________________________________________________________ Оглавление 1. Введение 1.1 Авторские права и торговые марки. 1.2 Благодарности 1.3 Обзор предмета 2. Подключение и настройка системы 2.1 Физическое подкючение 2.2 Конфигурация XStation 2.3 Конфигурация сервера Linux 3. Вопросы без ответов 4. Ссылки в Сибирь ______________________________________________________________________ 1. Введение Этот документ описывает особенности использование Х-терминала IBM Xstation модель 130 (из комплекта RS/6000 под управлением OS AIX) в среде Linux, в данном конкретном случае - BlackCat 6.2. В остальных дистрибутивах могут встречаться незначительные отличия. 1.1 Авторские права и торговые марки. Автор отдает себе отчет, что фирма IBM не обязательно разделяет точку зрения автора на предемет обсуждения в данном HOWTO. Некоторые имена в этом документе обьявлены как авторские права и/или торговые марки некоторых персон и/или компаний. Эти имена представлены полностью или начальными буквами в этом документе. Автор отказывается от каких-либо прав на этот документ и не налагает каких-либо ограничений на способы его распространения. Автор не берет на себя ни малейшей отвественности за возможный ущерб, нанесенный последователям в ходе каких-либо действий по претворению в жизнь описанных в этом документе идей и предложений. 1.2. Благодарности. Прежде всего, считаю своим долгом выразить благодарность дрожайшей супруге, Татьяне Цыбулиной tanya@shadow.udch.cbsd.donetsk.ua, которая своими ненавязчивыми действиями, направленными на изгнание меня с моего-же компьютера, подвигла меня на поиск альтернативных способов выживания. Без нее этому документу было бы не суждено появиться на свет. ______________________________________________________________________ 1.3 Обзор предмета В локальных группках людей, где колчиество умеющих, либо желающих, работать на компюьтерах больше количества этих самых компьютеров, зачастую возникает множество проблем, связанных с разделением "машинного времени". В последнее время появилось довольно много статей, авторы которых пытаются предложить решения этой проблемы. Но зачастую, они либо связаны с рекомендациями по использованию терминальных серверов на платформе Windows (что само по себе отнюдь не оптимальное и совсем не дешевое решение, даже если не брать во внимание аспекты использования нелегального ПО), либо предлагают использование устаревших компьютеров класса 386..486 как терминалов системы X Windows. На мой взгляд, последнее решение не совсем оптимально, ввиду того, что установленные в них графические адаптеры на сегодняшний момент не совсем отвечают требованием быстродействия и т.д. Работать это все будет, но так медленно и печально, что все таки вызывет споры на тему, кому сей агрегат достанется. На наше счастье, довольно обширный класс организаций в 80-х и 90-х годах прошлого столетия был оснащен качественной вычислительной техникой класса IBM RS/6000 и им подобных. Сейчас, при переходе на PC, эти организации стараются от этой техники избавиться, продавая ее за сущие копейки и публикуя объявления в конференциях на IXBT hardware и других. В состав этих комплексов входят аппаратные X терминалы, специально предназначенные для выполнения такого круга задач. На свое время, когда PC-ки только осваивали горизонты компьютерной графики, терминальные станции прекрасно работали с отображениями 1800x1600 при глубине цвета 8 бит и более. При своей низкой цене и широким возможностям, они, как никто другой, подходят для решения проблемы нехватки пользовательских мест. В руки автора попала IBM Xstation 160, подключению которой к Linux и посвящен данный документ. Подключение терминалов других типов может и различаться, хотя принципы наверняка останутся аналогичными. Вообще, существует такая книжица, как IBM Xstation Handbook. Ранее, она была доступна в on-line на сайте IBM в разделе RedBooks, но теперь ее оттуда изъяли, видимо по причине моральной смерти. В ней говорится, что "It also need the xstationmgrd daemon running and this is AIX-specific code." Весьма устрашающе, если не знать всей правды. Попробуем доказать, что это не совсем верно. 2. Подключение и настройка системы Приступим непосредственно к действиям. 2.1 Физическое подключение Под крышкой препарированного экземпляра красовался процессор x86 (80186), но графический чипсет TI340 несколько обнадеживал. Из внешних соединений наличествовали ps/2 разьемы для мыши-клавиатуры, VGA разьем монитора, сетевой BNC и разьем питания. Вполне подошли стандартные мышь и клавиатура, у моего монитора на разъеме пришлось аккуратно отломать 9-й штырек, по стандарту не задействованный, т.к. на Xstation соответствующая дырка была обозначена, но не просверлена. Переработанный таким образом монитор сохранил работоспособность и при подключении к обычному компьютеру. Опасающихся отправляю читать стандарты. Подключение к сети тривиально и внимания не заслуживает. 2.2 Конфигурация XStation Настало время включить терминал. Если все подключено верно, то на экране монитора появится самодиагностика, объем памяти, версия системы и прочее. У меня терминал что-то находил ненормальное во внешних девайсах и выводил ошибку 169. Точно я не могу это узнать в виду отсутствия мануала, но ошибка работе абсолютно не мешала. По прошествию десята секунд (или по нажатию клавиши ANYKEY) начиналась собственно загрузка системы. Нажимаем F12 и попадаем в секцию настроек станции. Network Setup Page 1 ----------------------------------------------- Primary Network..................Ethernet Enable SLIP......................NO Serial Port...................SERIAL 1 Baud Rate.....................38400 Terminal Internet Address..... Host Internet Address......... Subnet Mask................... Dial String................... Disable Bootp.................YES TFTP File Name............. Tag Field.................. Сразу устанавливаем тип используемой сети - Ethernet и отключаем SLIP. Остальное не имеет значения. Могу только добавить, что станция имеет стандартный 25 пиновый сериальный порт, пробовал подключать модем - работает, кабель стандартный подходит. Нажимаем PgDown и попадаем на вторую страницу. А вот это уже интереснее. Network Setup Page 2 ----------------------------------------------- Ethernet/IEEE 802.3 ..............Automatic Gateway Internet Address ......... Terminal Internet Address ........192.168.1.3 Host Internet Address ............192.168.1.1 Disable BOOTP ....................YES TFTP File Name ................/tftpboot/Xstation/boot/bootfile4 Tags Field ....................T178=01: ----------------------------------------------- Позволю себе пояснить лишь отдельные моменты: Станция не содержит постоянного кода загрузчика и X-сервера, а загружает их с сервера. Задание параметров загрузки может производиться либо статически, как показано, либо динамически, при помощи BOOTP. Я не устанавливал себе bootpd, посему его использование посчитал излишним. Загрузка происходила по TFTP протоколу, для чего требуется указать полное имя файла начального загрузчика. Поле Tags позволяет управлять режимами загрузки и дальнейшей работы. Полного описания всех вариантов у меня нет, известно лишь что тэг T178=01: устанавливает режим BROADCAST XDMCP, о чем подробнее будет рассказано далее. Нажатие F12 записывает конфигурацию в NVRAM и начинает загрузку станции. 2.3 Конфигурация сервера Linux Для начала хочу заметить, что полностью избавиться от наследия AIX все-же не удается, три файлика из поставки x_st_mgr нам все-таки понадобятся. Это бинарники начального загрузчика bootfile4, X-сервера x11or4.out и раскладка клавиатуры keymap.us Вся мерзость заключалась в том, что моя станция использовалась вместе с AIX 4.1, где стоял еще весьма старенький x_st_mgr. Так что в наличии были только bootfile2 и иже с ним. Это творение IBM действительно хотело чего-то своего, доморощенного. Мне помогло наличие конференции fido7, посвященной AIX. Я написал слезную просьбу по пяти адресатам, двое из которых откликнулись и оказались владельцами желанного. Если у Вас возникнут аналогичные проблемы - напишите мне и я постараюсь Вам помочь ASAP. Пока решаются лизензионные проблеблемы с IBM, мы займемемся подготовкой остального. Первым делом, установите (если необходимо) TFTP сервер и пропишите его в inetd (xinetd). Как это сделать подробно описано в документации, скажу только, что нам понадобятся корневой каталог tftpd, в нашем случае это будет /tftpboot (умолчательная конфигурация) и каталог /tmp. Не знаю почему и зачем, но при загрузке станция пытается скачать с сервера файлик /tmp/(ip_of_terminal).pag. В моем случае это был 192.168.1.3.pag Его отсутствие не влияет на работу, хотя я и создал такой нулевой длины. В /tftpboot создадим структуру каталогов, начиная с Xstation, куда сложим все необходимое. Итак, это будет /tftpboot/Xstation/ - корневой для Х-станции rgb.txt - взять из Вашего X11 rsh.sh - создадим, иногда его ищет /tftpboot/Xstation/boot/ - исполняемые модули станции, содержит bootfile4 x11or4.out bootfile4.cf - файл конфигурации, сделаем сами /tftpboot/Xstation/nls - каталог клавиатур и сообщений keymap.us msg - файл нулевой длины /tftpboot/Xstation/fonts - каталог шрифтов /tftpboot/Xstation/fonts/koi8-r /tftpboot/Xstation/fonts/iso8859-1 - каталоги шрифтов, см. далее Структуру создали, заполняем. bootfile4, x11or4.out и keymap.us получили, разложили. rgb.txt берем из поставки X11 вашего Линукса, см в /usr/X11/lib/X11 Теперь дело за cf файлом. Обычный текст, с фиксированным назначением строк. У меня выглядит так : /tftpboot/Xstation/nls/keymap /tftpboot/Xstation/nls/msg /tftpboot/Xstation/boot/x11xor4.out /tftpboot/Xstation/fonts/koi8-r,/tftpboot/Xstation/fonts/8859-1 /tftpboot/Xstation/rgb.txt Остались шрифты. Берем 75dpi шрифты с линукса. К сожалению, пролинковать это дело не поулчается, т.к. сервер не понимает зипованные шрифты. Их нужно распаковать при помощи gzip -d *.gz Далее берем файлики fonts.dir с линукса и правим их, удаляя ".gz" как класс Далее берем fonts.alias, проверяем на наличие алиасов на cursor, fixed и variable, удаляем все пустые строки (включая последнюю), кавычки и комметарии. Типичный признак ошибки в файле алиасов - отметка в системном логе линукса: tftpd: read refused У меня файл алиасов содержал переопределения koi8-r шрифтов на koi8-ub. пришлось руками сделать замену -ub на -r в fonts.dir, а из fonts.alias удалить эти строки. В DNS или /etc/hosts добавляем запись на наш терминальчик. пусть это будет 192.168.1.3 thin Разрешаем нашему xdm принимать соединения извне, что в BalckCat выключено по умолчанию : /etc/X11/xdm/Xaccess : thin CHOOSER BROADCAST /etc/X11/xdm/xdm-config : DisplayManager.requestPort: 177 Создадим пробную сессию для этого терминала, /etc/X11/xdm/xdm-config: DisplayManager.thin_0.session: /etc/X11/xdm/Xsession.thin Теперь копируем Xsession в Xsession.thin и урезаем последнюю, на предмет всяческих startkde, gnome_session и заменой их на twm Уф, вот теперь можно и проверить, что у нас получилось. Запускаем/перезапускаем xdm, включаем терминал The IBM Xstation Version 1.5 (c) Copyright IBM Corporation 1981, 1990 Ethernet Hardware Address 08005A010F33 Ethernet Thick/Thin Thin BOOTP - 0000 0000 0000 0000 TFTP - 0000 0000 0000 0000 В строке TFTP при этом должны побежать цифирьки, указывая на процесс загрузки bootfile4. Отследить это дело можно на сервере через tail -f /var/log/messages, где будет ясно и понятно сказано, что и как качается и что происходит. Если все нормально - секунд через 5 первая стадия закончится, загрузчик запустится и на экране терминала выведется нечто вроде Copyright 1989, 1994 AGE Logic Inc. All rights reserved, Release 072594 В этот момент начнется загрузка bootfile4.cf, и сразу-же - всего остального. В ходе моих неординарных отношений слегка сексуального характера с bootfile2 выяснилось, что возможна загрузка bootfilex.cf и прочего по NFS, возможность чего проверяется перед тем, как продолжить качать по TFTP. Но эту часть марлезонского балета я не исследовал. У меня терминал выдавал последовательно запросы на монтирование /, /tftpboot, /tmp, /tftpboot/Xstation, /tftpboot/Xstation/boot.... Еще через пару секунд должен запуститься X-server терминала. Если вместо этого вы увидали сообщение "Can't find fileserver" - значит вам подсунули bootfile2 версию. Его в морг, а дубину - в руки :-) На экране, уже в графичекой моде должно появиться типично "серое в муаре" заполнение и X-образный курсор. если вместо курсора наличествует белый прямоугольник - проблема со шрифтами, либо нет шрифта cursor.pcf, либо нет алиаса cursor cursor, либо вообще что-то не так в структуре каталогов либо в правах доступа. Медленно и печально смотрим на лог линукса, в крайнем случае - сами запускаем tftp клиент ипытаемся изобразить из себя терминал... Если все нормально - практически сразу выскакивает приглашение ввести login & password. Все, к xdm мы подключились. Если приглашения нет - проверяем конфигурации, сами пытаемся сделать X :1 -broadcast и анализируем последствия. Логинимся и пытаемся просмотреть что-нить кириллическое. Есои все нормально - шрифты встали. В бой за клавиатуру. Поскольку XKB расширения наш терминал не поддерживает, а понятия /usr/X11.. нет в принципе по причине отсутствия файловой системы как таковой, остается старый-знакомый xmodmap. Станция в лице keymap.us ориентирована на несколько нестандартную клавиатуру, scan-коды которой не совпадают с PC-ными. Посему какой-нибудь из готовых Xmodmap-ов не подходит, происходит сдвиг клавиш на одну. Придется изготовить самостоятельно, тряхнув стариной. Проше всего, сначала получить текущую по "xmodmap -pke >Mymomap", а затем уже курочить ее на предмет добавления всяких Cyrillic_SHCHE. Для ленивых привожк свою, где переключатель повешен на правый Ctrl и виндузячую стрелочку рядом с ним, (пусть хоть тут поработает), и проставлены только буквы. Остальное не тронуто, желающие могут в 5 сек. настроить по вкусу : ! ! Rus/Lat - Right Control or Windows_Property_key ! keycode 9 = grave asciitilde Cyrillic_io Cyrillic_IO keycode 10 = 1 exclam keycode 11 = 2 at keycode 12 = 3 numbersign keycode 13 = 4 dollar keycode 14 = 5 percent keycode 15 = 6 asciicircum keycode 16 = 7 ampersand keycode 17 = 8 asterisk keycode 18 = 9 parenleft keycode 19 = 0 parenright keycode 20 = minus underscore keycode 21 = equal plus keycode 22 = BackSpace keycode 23 = BackSpace keycode 24 = Tab keycode 25 = q Q Cyrillic_shorti Cyrillic_SHORTI keycode 26 = w W Cyrillic_tse Cyrillic_TSE keycode 27 = e E Cyrillic_u Cyrillic_U keycode 28 = r R Cyrillic_ka Cyrillic_KA keycode 29 = t T Cyrillic_ie Cyrillic_IE keycode 30 = y Y Cyrillic_en Cyrillic_EN keycode 31 = u U Cyrillic_ghe Cyrillic_GHE keycode 32 = i I Cyrillic_sha Cyrillic_SHA keycode 33 = o O Cyrillic_shcha Cyrillic_SHCHA keycode 34 = p P Cyrillic_ze Cyrillic_ZE keycode 35 = bracketleft braceleft Cyrillic_ha Cyrillic_HA keycode 36 = bracketright braceright Cyrillic_hardsign Cyrillic_HARDSIGN keycode 37 = backslash bar keycode 38 = Caps_Lock keycode 39 = a A Cyrillic_ef Cyrillic_EF keycode 40 = s S Cyrillic_yeru Cyrillic_YERU keycode 41 = d D Cyrillic_ve Cyrillic_VE keycode 42 = f F Cyrillic_a Cyrillic_A keycode 43 = g G Cyrillic_pe Cyrillic_PE keycode 44 = h H Cyrillic_er Cyrillic_ER keycode 45 = j J Cyrillic_o Cyrillic_O keycode 46 = k K Cyrillic_el Cyrillic_EL keycode 47 = l L Cyrillic_de Cyrillic_DE keycode 48 = semicolon colon Cyrillic_zhe Cyrillic_ZHE keycode 49 = apostrophe quotedbl Cyrillic_e Cyrillic_E keycode 50 = asterisk mu keycode 51 = Return Return keycode 52 = Shift_L keycode 53 = less greater keycode 54 = z Z Cyrillic_ya Cyrillic_YA keycode 55 = x X Cyrillic_che Cyrillic_CHE keycode 56 = c C Cyrillic_es Cyrillic_ES keycode 57 = v V Cyrillic_em Cyrillic_EM keycode 58 = b B Cyrillic_i Cyrillic_I keycode 59 = n N Cyrillic_te Cyrillic_TE keycode 60 = m M Cyrillic_softsign Cyrillic_SOFTSIGN keycode 61 = comma less Cyrillic_be Cyrillic_BE keycode 62 = period greater Cyrillic_yu Cyrillic_YU keycode 63 = slash question keycode 64 = underscore underscore keycode 65 = Shift_R keycode 66 = Control_L keycode 67 = keycode 68 = Alt_L keycode 69 = space keycode 70 = Alt_R keycode 71 = keycode 72 = Execute keycode 73 = keycode 74 = keycode 75 = keycode 76 = keycode 77 = keycode 78 = keycode 79 = keycode 80 = keycode 81 = keycode 82 = keycode 83 = Insert keycode 84 = Delete keycode 85 = keycode 86 = keycode 87 = Left keycode 88 = Home keycode 89 = End keycode 90 = keycode 91 = Up keycode 92 = Down keycode 93 = Prior keycode 94 = Next keycode 95 = keycode 96 = keycode 97 = Right keycode 98 = Num_Lock keycode 99 = KP_7 keycode 100 = KP_4 keycode 101 = KP_1 keycode 102 = keycode 103 = KP_Divide keycode 104 = KP_8 keycode 105 = KP_5 keycode 106 = KP_2 keycode 107 = KP_0 keycode 108 = KP_Multiply keycode 109 = KP_9 keycode 110 = KP_6 keycode 111 = KP_3 keycode 112 = KP_Decimal keycode 113 = KP_Subtract keycode 114 = KP_Add keycode 115 = keycode 116 = KP_Enter keycode 117 = keycode 118 = Escape keycode 119 = keycode 120 = F1 keycode 121 = F2 keycode 122 = F3 keycode 123 = F4 keycode 124 = F5 keycode 125 = F6 keycode 126 = F7 keycode 127 = F8 keycode 128 = F9 keycode 129 = F10 keycode 130 = F11 keycode 131 = F12 keycode 132 = Print keycode 133 = Cancel keycode 134 = Pause keycode 135 = keycode 136 = keycode 137 = keycode 138 = keycode 139 = Multi_key keycode 140 = Kanji keycode 141 = Mode_switch ! clear lock add lock = Caps_Lock clear mod2 add mod2 = Num_Lock clear control add control = Control_L clear mod5 add mod5 = Execute Mode_switch ! ! The END ! 3. Вопросы без ответов Естественно, что по уважительным причинам типа лени, отсутствтия времени или необходимой документации, ряд вопросов остался без ответа или не исследован до конца. Я перечислю их в этом разделе. если у кого-то есть дополнения, я с удовольствием приму их. e-mail укакзан в заголовке, ICQ UIN# 31918995 1) Где взять IBM Xstation Handbook GG243695 и иные по этой теме ? 2) Что хотел bootfile2 на 7000-м порту линукса. Проверить можно по nc -u -l -p 7000 выдавал : '/tftpboot/Xstation/boot/bootfile2.cf 3) Зачем ему нужен 192.168.1.3.pag ? 4) Влияет ли работа по NFS на скорость исполнения ? 5) Как заставить станцию работать с font-сервером ? !!! Неявные указания на возможность есть на сайте IBM, где в баг-листах есть сообщение, что останов одного из фонт-серверов ведет к немедленному зависанию станции ? 6) Как изменить разрешение/частоту/interlaced-mode/глубину_цвета ? Вроде как бы это возможно при обновлении firmware до версии v4.1 ??? 7) Tag T177=1: включает работу в внутренним жестким диском, а куда и как его подключить ? 8) Работа с локальным принтером ? LPT-порт на станции есть. 4. Ссылки в Сибирь Естественно, я не сам все это придумал, часть информации была обнаружена в интернете. Так что если есть желание - можете пройти по стопам и пойти дальше. Это - www.ibm.com и, безусловно, www.rs6000.ibm.com - Nestation HOWTO - X-Terminal HOWTO - www.deja.com - www.talk.ru - Значительная порция доки есть на Linix Gazette N%51 http://www.asplinux.ru/LDP/LDP/LG/issue51/dellomodarme.html - Еще улетная фишка на http://www.ultranet.com/~crfriend/museum/machines/IBM-X130.html ____________________________________________________________ А все, кина больше не будет...