ПАВЕЛ ЗАКЛЯКОВ
Вторая жизнь модемов
Лирическое отступление
Если на обычном, пользовательском компьютере у вас стоит два модема, то это, наверное, уже много, а вот если говорить о серверах, то модемов много не бывает. Простой пример: распределённая сеть узлов, единый центр. Узлы связываются с центром и/или центр с узлами. На центральный узел осуществляется DDoS-атака. Как в этом случае связываться и передавать данные? Хорошо, если это происходит в Москве или другом крупном городе, где пальцем ткни, попадёшь в какого-нибудь провайдера. Несколько тысяч долларов, и у вас будет несколько резервных каналов связи на такой случай. Усугубим проблему, а если узлы находятся в других городах? Вот и получается, что самое оптимальное и по цене, и по реализации решение, если нет необходимости в создании видеоконференций, – создание резервной модемной сети связи. По моему мнению, даже в простой маленькой сетке должен быть на сервере модем, например, на случай передачи срочной почты, если упадёт основной канал подключения к Интернету.
Замечание: в недавние времена в столице, когда подключиться по выделенной линии было дорого, многие создавали домашние локальные сети, скидывались на один общий телефон и безлимитный dial-up-интернет. Получалось медленно, но всё же лучше, чем ничего, для почты и ICQ вполне хватало на несколько человек.
Во многих корпоративных сетях, если пропускная способность подключения к Интернету мала и не предвидится её увеличения, многие пользователи на своих рабочих местах имеют модемы, предпочитая соединяться по dial-up, когда общий интернет-доступ совсем не работает [5, стр. 208-209]. Если в организации имеется централизованная политика безопасности, контролируются все подключения к Интернету, то такого быть не должно. Злоумышленники и так постоянно пытаются обойти средства защиты, а тут появляется удобная лазейка для них. Зачем пытаться взломать МЭ снаружи, когда можно с большой лёгкостью взломать внутреннего модемного пользователя, установить у него cниффер и получить пароли для доступа к МЭ. Конечно, есть пользователи, которые могут настроить свой персональный МЭ для модема не хуже общего, но согласитесь, что это скорее исключение.
Случаев неконтролируемого применения модемов довольно много, многие из них описаны в литературе, в частности А.Лукацкий [5] пишет: «В процессе проведения аудита безопасности в одном из московских банков было обнаружено несколько компьютеров, к которым были подключены модемы. В процессе разбирательств выяснилось, что только на одном из компьютеров применение модема было «узаконено» (для доступа к обновлениям баз данных юридической консультационной системы). Другие модемы были установлены сотрудниками, которые использовали их для доступа в Интернет в обход МЭ локальной сети банка. В одном случае на компьютере с подключённым модемом была найдена программа pcAnywhere, которая позволяла сотруднику работать с конфиденциальными данными из собственного дома».
Всё это говорит о том, что если системный администратор или администраторы не успевают за новыми и старыми техническими решениями, то за них это делают пользователи. В конкретном примере выше это «отставание» было в вопросах организации резервной сети связи, выделения более широкого канала доступа к Интернету и организации безопасного удалённого доступа. Нередко администраторы вообще не знают о том, что определённые виды трафика разумнее делать более приоритетными по сравнению с другими. (Например, с помощью битов поля TOS в заголовках IP-пакетов.)
Чтобы такого не происходило и администратор был всегда «на высоте», рассмотрим несколько вопросов, связанных с использованием модемов.
Какие задачи можно решать с помощью модемов?
- Можно организовать резервную сеть связи. Если у организации несколько филиалов в разных городах, то это вполне здравое решение. Оплатить межгород может оказаться дешевле, чем заказать иные виды резервной связи. Следует отметить, что если и имеется тенденция к замене АТС на более современные цифровые, то темпы замен заметно отстают от последних модемных решений. Это означает, что для связи с каким-нибудь сельским районом совсем не нужен самый последний протокол v.92. Что и говорить, если постоянно появляются небольшие заметки, как эти v.92 или v.90 отключить. Даже v.34 (28800) в условиях использования нескольких ретрансляторов междугородней связи может оказаться завышенным требованием.
- Можно организовать резервную сигнальную сеть. Если денег нет на мобильные терминалы [6], нет денег на Интернет, либо деньги на Интернет есть, но ищется более надёжное решение (с меньшим числом используемых элементов), то возможна организация отправки пейджинговых сообщений с помощью тонального набора.
- Можно использовать функцию «факс». Не секрет, что мы далеки от цивилизованной рекламы. Один раз разместив свой факсовый номер где-то в открытом источнике, справочнике или засветив его на какой-нибудь выставке, вы обрекаете его на постоянные факсовые рассылки отнюдь не по направлению вашей деятельности. Вопрос имеет глубокие юридические корни, однако, если бороться со следствием, то можно установить факс-модем и, настроив mgetty (или vgetty), научить его принимать факсы.
- Можно использовать функцию «автоответчика» и сопутствующие ей. Голосовая почта и автоответчик могут зарегистрировать нужные звонки, проинформировать клиентов о часах работы вашей организации, рассказать о наличии ресурсов в сети Интернет. Даже при небольшом умении может прайс-лист по запросу зачитываться по телефону. Если во времена 286-х были отечественные программки вроде spp.exe (www.samag.ru/sourse/spp.zip) порядка 44 Kб, которые могли на PC Speaker читать понятно, без особой интонации, при этом различая обычную интонацию и вопросительную, то сейчас, я думаю, вообще не проблема научить компьютер читать текстовые файлы.
* From : Anton Loginov, 2:5024/11.30@fidonet
=============================================================================
Была такая программа – spp.exe, которая заставляла компьютер произнести спикером фразу, заданную в командной строке. При этом она различала обычную интонацию и вопросительную. Программа была русская. Среди прочих букв она знала и разные символы, например на $ говорила «доллары».
Итак – ночь, луна, за компьютером сидит усталый системный оператор, и разбирает User's UpLoad на своей BBS. Видит – программа spp.exe без комментария. Хотел он её уже F8, но любопытно стало – что она делает?
Состоялся следующий диалог:
Системный оператор: spp.exe
Компьютер: "пшш-ссс..." – легкое шипение спикера, типа хотел говорить, а нечего!
Системный оператор: spp.exe /?
Компьютер, голосом робота с лёгким грузинским акцентом: KОСАЯ СKОБKА ?
Системного оператора чуть удар не хватил – думал глюки у него начались... Вот как бывает.
- Можно сделать BBS (Bulletin Board System). Хотя последний раз я коннектился к BBS и провёл несколько ночных часов уже как лет 7 назад, не меньше, так что не знаю, актуальны они ещё или нет.
- Можно сделать почтовый (UUCP) сервер. До сих пор есть провайдеры, которые помимо обычного набора протоколов для организации доступа и работы с почтой tcp/ip/ppp + pop3/imap/smtp позволяют почту забирать по UUCP. А в школе, где я учился, и по сегодняшний день висит UUCP-почта для внутреннего обмена сообщениями, поднятая моим бывшим одноклассником на базе Red Hat Linux v.5.2. Uptime-системы уже исчисляется тысячами дней.
Замечание: имеется неплохой клиент для приёма и редактирования сообщений для DOS. Так что, имея загрузочную дискету, 286, хоть с монохромным CGA-монитором, и модем можно быть равноправным участником почтового обмена и по сей день!
- Можно сделать ФИДО-шный почтовый сервер (node). Для этого, правда, если не изменились порядки, для начала придётся побыть обычным пользователем ФИДО (point) порядка полгода.
- Можно поднять dial-in-сервер, скажем, для доступа в Интернет.
- Можно сделать шлюз IP-телефонии при наличии достаточных функций у модема, хотя, честно признаюсь, ни у кого такого не видел, и скорее эта возможность теоретическая.
- Можно объединить частично или полностью вышеупомянутые возможности.
Какой модем купить?
По поводу подключения нескольких модемов и модемных пулов мы поговорим ниже. А пока заметим, что не все пункты реализуемы всеми модемами, поэтому для решения той или иной задачи лучше остановить выбор на лучших моделях. Каждый волен выбирать, что ему больше нравится и больше подходит по цене. Я свой выбор остановил на старых профессиональных модемах фирмы ZyXEL серии 1496. Что ни говори, а стоечные версии и модемные пулы дороги, посему лучше выбирать профессиональные модели ближе к пользовательскому классу. На мой взгляд, таковыми являются три модели: ZyXEL U-1496B+, U-1496E+, U-1496S+, либо без «+».
Рисунок 1. Внешний вид модемов:
a) U-1496B+ б) U-1496E+ в) U-1496S+(U-1496+)
Именно доступность на рынке (цены порядка $7-20), высокое качество и широкий набор услуг обусловили мой выбор. Конечно, можно было взять и другие модели. Но тут критерий выбора был таков: если модемы ZyXEL, в частности U-1496S+ и USR Courier используются в банкоматах, то на них и стоит ставить свой выбор по надёжности. Касаемо хорошо работающих Courier, так они дороги, и я встречал глючные Courier, купленные дороже чем $150, может, это было исключение, но реализация того же ZyXEL под шину ISA (с определителем и голосовыми функциями) обойдётся куда дешевле ($7-10). Конечно, шина ISA сейчас не везде есть, но зато те, у кого она есть, могут в полной мере получить от неё пользу. За $100 можно собрать неплохо работающий сервер с не одним модемом на базе какого-нибудь Pentium.
Перед тем как разобрать модемы и начать их улучшать, хотелось бы сделать небольшой ликбез в области постоянной памяти, так как мы столкнёмся непосредственно с ней. Те, кто знакомы с устройством и видами постоянной памяти, могут смело пропустить этот раздел.
Организация постоянной памяти
ПЗУ
ПЗУ – постоянное запоминающее устройство, оно же ROM, Read Only Memory. Рассмотрим на пальцах работу данной схемы. В первом приближении для организации такой памяти ничего сложного не надо – простые перемычки, и устройство готово.
Рисунок 2. Внутреннее устройство одной ячейки памяти на 8 бит. Записанное число (01101011)
При подаче напряжения на вход, например, логической «1», на выходах, соединённых с входом, появится тоже «1». На неподключенных выходах (болтающихся в воздухе) будет «0». Если надо запомнить два байта, берём два таких устройства, если нужно запомнить n2 байт, берём n2 таких устройств. Легко заметить, что подобная линейная организация неудобна и избыточна, поэтому на практике используется двухмерная реализация, когда для снятия данных используются одни и те же выводы. Потеря пропускной способности (нельзя параллельно считывать все ячейки) компенсируется значительным упрощением схемы. Для того чтобы сигналы с разных ячеек не мешали друг другу, используются диоды.
Рисунок 3. Внутреннее устройство 2-х ячеек памяти (4 + 4 бита), записано: 1101 и 0101
а) неудобный способ изображения б) удобный способ изображения
Использовать 1024 вывода для выбора нужной ячейки также неразумно. На практике для выбора нужной ячейки используется несложный декодер, встроенный в то же ПЗУ, преобразующий двоичный параллельный сигнал в выбор нужной линии (ячейки) ПЗУ. Дорисовав последовательно с каждым диодом плавкие предохранители, целые, если диод есть, и сгоревшие предохранители вместе с диодами, если их в схеме нет, мы получим схему, более-менее приближающуюся к реальности и встречающуюся в литературе.
На практике организация записи в ПЗУ организуется по-разному. Если тираж очень большой, то дешевле получается штамповать уже зашитые ПЗУ, как обычные алюминиевые CD. Если тираж меньше и заранее неизвестно, что будет прошито, то дешевле обходится производить матрицы с диодами и предохранителями, после чего прожигать предохранители у ненужных ячеек либо на заводе-изготовителе, либо продавать непрошитые микросхемы. В данные микросхемы возможно осуществить одноразовую запись. Что-то вроде обычного CD-R получается, правда, аналога мультисессионности тут пока не придумали. По аналогии с пишущими приводами для записи CD существуют программаторы, осуществляющие запись.
Если на диоды, используемые при выборе какой-то ячейки памяти, посмотреть внимательно, то можно заметить, что у всех у них используется общий анод (или катод, если модифицировать схему). То же самое можно сказать про любую ячейку, у диодов, ответственных за её выбор, имеются общие выводы. Если взять половину транзистора, не обращая внимания на всё остальное, то это по сути тот же самый p-n переход. На практике, при реализации схемы в интегральном исполнении, оказывается более выгодным вместо отдельных групп диодов создавать n-p-n транзисторы с несколькими эмиттерами. Поэтому нередко ту же самую электрическую схему организации ПЗУ можно увидеть с транзисторами в следующем виде.
Рисунок 4. Схема ППЗУ построенная:
a) на диодах б) на многоэмиттерных транзисторах
При занесении информации через диоды или эмиттеры шин с информационными нулями пропускаются большие токи, выжигающие плавкие перемычки. При подаче адресного импульса сигналы появляются только на тех выводах, где перемычки сохранены. Так как прошивка данного вида ПЗУ возможна один раз в жизни, то в зарубежной литературе данный вид ПЗУ помимо ROM имеет ещё одно название OTP ROM (One-Time Programmable ROM), иногда One-Time опускают и получается ещё одно более общее название PROM (Programmable ROM).
В случае, если необходимо иметь возможность редкой перепрошивки записанных данных, следует использовать ППЗУ. Замечание: современные ПЗУ могут иметь немного отличную и своеобразную организацию, будучи построенными на полевых транзисторах либо смешанным образом. В этом случае единичный элемент может выглядеть и так.
Рисунок 5. Один из вариантов организации элемента памяти с помощью полевого транзистора
ППЗУ
ППЗУ – перепрограммируемое ПЗУ, ППЗУ с УФ-стиранием, EPROM (Erasable, Programmable, Read-Only Memory), UV-EPROM (UltraViolet EPROM). Несколько более дорогая технология, чем одноразовые ПЗУ, имеющая некоторые преимущества. В случае выполнения определённых действий позволяющая стирать старые и записывать новые данные. По внутреннему устройству данная память отличается от обычных ПЗУ. Вместо диодов и многоэмиттерных транзисторов используются специальные полевые МДП (металл-диэлектрик-проводник)-транзисторы, в частности МОП (металл-оксид кремния (окисел)-проводник) c плавающим затвором.
Рисунок 6. Полевой транзистор с плавающим затвором (ПЛМОП)
Из рисунка легко понять, почему затвор, состоящий из поликристаллического кремния, называется плавающим. Он со всех сторон окружён двуокисью кремния, не имеет выводов и соединений с остальной схемой. Такой транзистор представляет собой разомкнутую цепь до тех пор, пока на этот затвор не будет помещён заряд. Для этого между истоком и стоком прикладывается напряжение около 30 В, при этом происходит лавинный пробой, на затворе образуется остаточный заряд достаточный для образования канала под затвором. Положительный заряд на затворе притягивает свободные электроны из подложки, а притянутые электроны создают канал, способный проводить электрический ток. Транзистор становится проводящей цепью. Если заряды на плавающем затворе не накоплены, то данный транзистор ток не проводит. Таким образом можно различать логические «1» и «0». Для стирания данных с ПЗУ необходимо удалить накопленный на плавающем затворе заряд. Для этого используют ультрафиолетовое излучение. Микросхемы данного вида памяти имеют прозрачные окошечки, выполненные из кварцевого стекла. Обычно они заклеены чем-то непрозрачным. (Данные микросхемы мы встретим далее в модемах ZyXEL.) Ультрафиолетовое излучение за счёт попадания на кристалл и его ионизации позволяет постепенно растечься накопленному заряду. В зависимости от интенсивности УФ-излучения процесс стирания может колебаться от 10 минут и выше. Несмотря на то что для стирания рекомендуется использовать освещённость порядка 100 Вт/м2 при времени экспозиции 1 час, редко кто оказывается в состоянии ждать такое количество времени.
Срок хранения информации в ПЛМОП ППЗУ практически бесконечен – постоянная времени утечки заряда составляет десятки лет. У данной технологии также есть и минусы: малое число возможных циклов перепрограммирования, примерно порядка 10, плюс для стирания необходимо наличие источника УФ-излучения и другие связанные с этим неудобства. Так как у ПЛМОП-транзисторов нет затвора, то для выбора одного элемента памяти, как один из вариантов, последовательно с ними включаются обычные полевые транзисторы, что, несомненно, усложняет схему. Следующая технология лишена этих недостатков.
ЭС ППЗУ
Электрически стираемые ППЗУ, EEPROM, E2PROM (Electrically Erasable PROM), как легко предположить из названия, вместо ультрафиолетового излучения для стирания используется электрический ток. В районе 1967 года для решения вышеописанных неудобств с УФ ППЗУ, в частности, невозможности электрического стирания, были придуманы новые решения. В качестве ячейки памяти было предложено использовать транзисторы, выполненные по новой на то время МНОП (металл – нитрид кремния – оксид кремния (окисел) – полупроводник) или МАОП (металл – алунд – оксид кремния – полупроводник)-технологии.
Рисунок 7. Транзистор, выполненный по МНОП-технологии
Транзистор, выполненный по МНОП-технологии, представляет из себя обычный МДП-транзистор, в котором диэлектрик состоит из двух слоёв. Поверх обычного диоксида кремния, используемого в МОП-транзисторах, нанесён ещё слой нитрида кремния. Нитрид кремния обладает очень высоким сопротивлением, значительно большим, чем диоксид кремния. Эффект памяти в МНОП-транзисторах основан на изменении порогового напряжения транзистора при наличии захваченного в подзатворном диэлектрике положительного или отрицательного заряда, который хранится на глубоких (1.3-1.5 эВ) ловушках, в нитриде кремния вблизи границы SiO2-Si3N4 [11]. (В транзисторах памяти фирмы Hitachi толщина слоя окисла составляет порядка 20 ангстремов, а нитрида кремния – порядка 300-500 ангстремов [12].) Если на затвор подать напряжение порядка 30 В относительно подложки, то в течение 5 мс между тонким слоем окиси кремния и слоем нитрида кремния под затвором за счёт туннельного эффекта появятся неподвижные заряды. На образование токопроводящего канала между истоком и стоком будет влиять суперпозиция двух полей, от затвора и от накопленных в ловушках зарядах. Этим и объясняется следующая ВАХ МНОП-транзистора.
Рисунок 8. ВАХ (вольт-амперная характеристика) МНОП-транзистора
Разность пороговых напряжений транзистора в ВАХ и фиксирует запись логических «0» или «1» в ЭС ППЗУ. Для того чтобы снять накопленные заряды (стереть записанную информацию), необходимо на затвор подать напряжение порядка 30 В обратной полярности. В МНОП количество циклов перезаписи очень велико, однако обращения для чтения после записи постепенно уменьшают заряды, поэтому длительность сигналов чтения лимитирована. Как правило, ЭС ППЗУ допускает 1011-1012 обращений, пока заряд начинает заметно снижаться.
В некоторых ЭС ППЗУ этого типа вместо нитрида кремния используется аналогичный по свойствам оксид алюминия (алунд), при этом технология называется МАОП и получаются не p-канальные, а n-канальные приборы, причём нормально открытые. При записи их пороговое напряжение не снижается, а повышается. Большим преимуществом МАОП и МНОП ЭС ППЗУ является наличие у запоминающих транзисторов внешнего управляющего затвора, с помощью которого и производится выборка ячейки.
Flash-память
То, что у каждой ячейки ЭС ППЗУ имеется возможность записи и удаления одного бита за одну операцию, это хорошо, но реально на практике это порождает много проблем и замедляет процесс перезаписи. Если ёмкость ПЗУ составляет 128 Кб, то это означает, что следует выполнить порядка одного миллиона стираний. Следует отметить, что это не самый большой размер встречающейся на сегодня памяти. Для упрощения процесса стирания, чтобы это можно было сделать одной или несколькими командами, схема ЭС ППЗУ была немного внутренне усложнена и появилась на свет так называемая flash-EEPROM-память или flash-память. В технологии непосредственного хранения и записи информации во flash-памяти ничего нового не появилось. Сейчас это наиболее ходовая и удобная память, используемая в компьютерной и бытовой технике. Технология выпуска flash-памяти несколько дороже всех предыдущих, но получаемые преимущества с лихвой окупают повышение затрат.
Замечание 1: в некоторой литературе flash-EEPROM переводится как мигающий-EEPROM, моё мнение, что это не совсем правильно, если дословно перевести слово flash, то получится вспышка. Скорее всего, этот смысл и закладывали разработчики данной технологии, насколько быстра вспышка, настолько быстро и осуществляется стирание данных из памяти. Помимо этого, если посмотреть на технологию стирания УФ ППЗУ, о которой написано чуть выше, то именно вспышка как раз лучше всего подходит по смыслу.
Замечание 2: в иностранной литературе наблюдается некоторая путаница, так, у них имеется ещё одно сокращение для обозначения ЭС ППЗУ, а именно EAROM (Electrically Alterable ROM). По сути ничего нового не придумано, однако имеются два различных способа обозначений, частично противоречащих друг другу: часто схемы запоминающих устройств с более высокой ёмкостью обозначают как EEPROM, а с меньшей как EAPROM. Также через EEPROM иногда обозначают схемы запоминающих устройств, которые стираются целиком или поблочно, как flash-память, а под EAPROM понимают запоминаемые устройства, стираемые только по битам, либо по байтам. В плане внесения путаницы в обозначения мы также не стоим на последнем месте, иногда под ПЗУ у нас понимается любое ПЗУ из вышеописанных, в том числе и flash-память.
Все описанные выше типы памяти имеют одинаковое обозначение на электрических схемах, за исключением случаев, если используется функция записи. Выпуск памяти как отечественными, так и импортными производителями, производится в вариантах, сопрягаемых с ТТЛ, n-МОП и КМПОП-схемами. Это означает, что в пределах одной логики микросхемы памяти взаимозаменяемы. Сделано это целенамеренно с целью удешевления производства на этапах перехода к более массовому выпуску. Факт, что микросхемы памяти можно менять, нам пригодится при перепрошивке модемов ZyXEL в следующем разделе.
Перепрошивка модемов, использующих ПЗУ
Итак, после того как у меня появились вышеописанные модемы ZyXEL и возникла идея подключить их к Linux-серверу, я подумал, что неплохо было бы поменять в них прошивку на более современную перед установкой, благо, что такое ПЗУ я себе представлял довольно чётко. Для этого два внешних модема пришлось разобрать.
Рисунок 9. Разбор модемов. Вид снизу:
a) U-1496B+ б) U-1496S+
Во всех трёх встретились две микросхемы ПЗУ с версиями. Это были ППЗУ с УФ-стиранием.
Рисунок 10. Внутренний вид модемов, часть, где находится ПЗУ.
a) U-1496B+ б) U-1496E+ в) U-1496S+
Именно заменой их мы и займёмся сейчас.
Счастлив тот, у кого есть программатор, кварцевая лампа и два настроенных устройства /dev/hands и /dev/head. Менее часа, и проблема смены версии более не существует. К сожалению, первого устройства у меня под руками не оказалось, да и взять ненадолго не у кого тоже было, посему я пошёл по пути, описанному ниже.
Преамбула: несколько лет назад один из моих знакомых, перепрошивая модем Acorp-56EMS на своём компьютере, имел возможность на практике подтвердить один из законов Мерфи: «Если какая-то неприятность может случиться, то она случается». Как назло во время перепрошивки на время пропало электричество. Модем умер, он отказывался вообще себя как-либо идентифицировать, мигать лампочками и подавать какие-либо признаки жизни. После был куплен новый модем, а сломанный долго валялся у знакомого в ящике, после чего был подарен мне как «радиогубителю со стажем» в надежде, что мне он принесёт большую пользу, чем если бы он продолжал пылиться. Расчёт оказался как никогда точен. Модем переехал ко мне. Где-то через пару месяцев, в очередной раз, когда у меня появился блеск в глазах и желание чего-то покрутить, я взял отвёртку и разобрал модем. См. рисунок 11.
Рисунок 11. Разобранный модем Acorp-56EMS
Схема модема оказалась самой обычной, ПЗУ (flash), как полагается, стояла на панельке.
Преамбула к преамбуле: незадолго до этого я на своём Pentium-100 на Asus P/I-P55TP4N как раз занимался тем, что перепрошивал себе BIOS с целью: замены логотипа на более приятный моему глазу и отвоёвывания у жадного компьютера разницы между 9.1 Гб и 8.4 Гб, так как мой новый винт не хотел видеться в полном объёме. Мой школьный друг, зашедший ко мне тогда в гости, вдохновился тем, какие неизведанные возможности может сулить обновление версии BIOS (перед этим я с полгода жил, не используя свой диск в полном объёме по причине обычной нехватки времени) и решил повторить у себя операцию с обновлением и перепрошивкой BIOS. Пытаясь залить более совершенный BIOS от Pentium-II объёмом 256 Кб в ПЗУ объёмом 128 Кб на материнской плате первого Pentium, знакомый не знал тогда, что его ждёт неудача и поход ко мне с ПЗУ и винтом, так как на последний, а не на дискету была сохранена старая прошивка перед записью новой. Что делать, не пропадать же другу? Была выполнена известная операция перепрошивки «на лету», из работающего компьютера я вытащил свою ПЗУ, вставил его и зашил обратно ему его версию. Всё прошло на ура.
Припоминая свой недавний успех, я, недолго думая, решил вытащить flash из модема с целью её изучения и возможной прошивки в материнской плате. Но как выяснилось позже, это и не понадобилось, включив ради интереса модем без микросхемы памяти, оказалось, что он жив! Загорелись лампочки и на команду «AT» модем бодро отвечал «ok», правда, ничего более, кроме как «AT», он не понимал. На включённом модеме я воткнул ПЗУ обратно, модем продолжил жить своей жизнью. После этого я подключился к Интернету (хорошо, когда есть несколько модемов в компьютере) и нашёл там много информации по перепрошивке модемов Acorp и саму прошивку. Нам понадобится только одна ссылка – [13]. В процессе перепрошивки модему безразлично, что вы на нём прошиваете, то ли его родную прошивку, то ли что-то другое, главное, чтобы прошиваемая микросхема поддерживалась модемом, проверки содержимого прошиваемой программы нет.
Соответственно, я решил компенсировать отсутствие программатора тем, что у меня есть «волшебный» модем. Основываясь на теоретических знаниях и предположениях о совместимости различных типов микросхем памяти, я решил купить две микросхемы flash-памяти, с целью их прошивания и установки в модемы.
Рисунок 12. Две микросхемы flash-памяти AM29F010B
Далее, я зашёл на сайт фирмы ZyXEL и скачал оттуда последние версии прошивок для модемов. Для сокращения статьи я буду писать лишь про прошивку только одного модема ZyXEL U-1496+ (он же U-1496S+), так как прошивка двух других ничем не отличается, разве что версии программ для каждого типа модема свои. Воспользовавшись информацией из [13], я вставил в модем чистую микросхему flash-памяти, включил модем и набрал команду AT. Модем выдал «ok». Если у вас модем не включается, то, возможно, вам придётся вставлять микросхему памяти при включённом питании, но об этом и возможных проблемах далее.
(Набор программ по прошивке можно скачать тут: [16].) Для записи новой прошивки необходим специальный загрузчик (flash loader). Так как передавать напрямую двоичные файлы, особенно с помощью стандартных терминалов, невозможно (часть символов будут считаться служебными командами), были придуманы несколько альтернативных, в том числе и текстовых, форматов. (Например, существует формат sb7. Этот формат прошивок, предназначенных для заливки во flash ПЗУ модемов Diamond Supra.) Наибольшее распространение получил текстовый формат S37, понимаемый модемами Acorp. Соответственно, имеются утилиты конвертации s37 <–> bin, которые без проблем можно найти в Интернете. Программа загрузчика, загрузившись на модем, может позволить вам загружать прошивки по более удобному протоколу X-modem. Хотя, если у вас есть конвертор (bin –> s37), то эта возможность может вам и не понадобиться.
Если вы встретите файл формата s37, то его содержимое будет примерно следующее:
S308000080004C0380A8
S3150000800378B2D533B20090C900F00287908AD05374
S3150000801398D050B79027907A68C900F011C901F03B
....
S31500008CC2C947D0ED6820D383600000000000000091
S70500000000FA
Создавать свой загрузчик, может, и интересно, но зачем изобретать велосипед, берём готовый файл hsloader.s37 на сайте журнала: http://www.samag.ru/sourse/hsloader.37.zip (это доработанный загрузчик от Sergey.Korolew@p2.f4.n5053.z2. fidonet.org). Вместо hsloader.s37 можно взять uploader.s37 из [16]. Далее выполняем следующие действия по загрузке, краткая инструкция (модем у нас к этому моменту включён, ПЗУ вставлена и на команду AT он выдаёт «ok»):
- Даём модему команду AT**.
- Загружаем hsloader.s37 по протоколу ASCII, либо вставляем из буфера чтобы не набирать руками.
- Загружаем прошивку в формате s37, также по протоколу ASCII.
В некоторых случаях загрузчик не грузится без родной ПЗУ модема, поэтому смену ПЗУ на flash следует производить на лету после пункта 2. После замены следует нажать «G» (большое!) и перейти к пункту 3.
Замечание: описанные выше инструкции я выполнил у себя с небольшим исключением, вместо AT**, я набирал AT**2, разницы между этими командами я для себя не уяснил, похоже, что можно прошивать разные микросхемы, не только flash, если кто знает – поделитесь, пожалуйста, информацией. Вместо hsloader.s37 я использовал uploader.s37. Скачанный с ZyXEL файл: http://www.zyxel.ru/public/u-series/1496/firmware/6.22/rm622sp1.zip с нужной версией прошивки я успешно разархивировал и два файла rm622sp1.u24 и rm622sp1.u25 сконвертировал и прошил в две миросхемы flash памяти. После успешной прошивки я увидел надпись «Upload successfully completed».
Рисунок 13. Вид терминальной программы после успешной перепрошивки
Аналогичным образом можно прошить любые другие версии программ для других устройств.
Далее две прошитые микросхемы с новой версией я собрался установить в модем. При старой версии программы:
ATI1
модем выдавал:
61694
U1496S V 6.12 P
OK
После замены старых микросхем памяти на новые модем гордо показывал свою обновлённую версию как:
60837
U1496S V 6.22 P
Рисунок 14. Надпись на индикаторе перепрошитого модема «U1496S V 6.22 P»
На данном этапе задача номер 1 по обновлению программного обеспечения модемов была успешно нами выполнена.
Замечание 1: при попытке прошить на модели с плюсом версию от модели без плюса всё прекрасно прошивалось. При попытке вставить в модем не его версию он ругался, выдавая надпись на экранчике о несоответствии версии.
Замечание 2: после перепрошивки у меня модем U-1496S+ отказался общаться с терминальной программой, хотя на индикаторе показывал успешно пройденные тесты и функционировал при управлении им через клавиши меню. Как выяснилось, произошло это потому, что почему-то в ячейке Character Length вместо значения 10 байт, обычно используемых по умолчанию, оказалось записано значение 8. Я перепроверил все остальные настройки и сохранил профиль. После этого даже после ATZ и выключения питания модем оставался в здравом смысле.
Замечание 3: не знаю уж, насколько у меня плохая связь, но попытки установить связь с каким-либо из московских интернет-провайдеров не дали успеха, модем ни в какую не хотел соединяться. Понимая, что такого быть в принципе не может и проблема, видимо, в настройках, я покопался в инструкции [7], так как я далёк от всяких треллис-кодирований и полного досконального понимания происходящих явлений при установке соединений, я методом перебора выяснил что оптимальными настройками для соединения по моей линии (декадно-шаговая АТС) оказались команды:
- AT&N19 – выбор протокола v.32bis 7200/4800 для установления связи;
- AT&K4 – выбор протокола сжатия v.42bis и коррекции ошибок v.42;
- AT*E1 – устанавливать связь только с использованием протокола коррекции ошибок; ATX7 – выбор более информативной строки CONNECT при установке соединения.
После них модем, как танк, соединялся на 7200. Возможно, поэкспериментировав, вы найдёте для себя оптимальными другие настройки.
Для работы определителя номера советую дать команду AT&I4 – включить АОН, информация об определившемся номере будет выдаваться как до установки соединения, так и в строке CONNECT. Это очень удобно: знать номер звонящего при использовании модема для входящей связи.
Замечание 4: скорость работы COM-порта следует выбирать 57600, ZyXEL серии 1496 не поддерживает работу на 115200. (Если хочется больше, можно попробовать 76800.)
Замечание 5: дополнительная информация c [13] для желающих поэкспериментировать со своим модемом в вопросах перепрошивки:
Во время перепрошивки не забудьте о необходимости сигнала WE на 31 выводе Flash. Во время замены ПЗУ, надо вытаскивать её аккуратно, если у вас нет соответствующего прибора, то, используя отвёртку, старайтесь вытаскивать ПЗУ равномерно. Имеется опасность перекоса ПЗУ в последний момент, когда она уже вынимается легко, и отгибания вбок крайних ног. Несмотря на то, что при перекосах возможны проблемы по опыту Dmitry. Yalin@p12.f638.n5020.z2.fidonet.org вставлять flash надо начиная с 16-17 ног таким образом, чтобы питание, т.е. 32 и 1 ноги попадали последними. В общем, вставлять её под небольшим наклоном. Вытаскивать ПЗУ соответственно наоборот, если же вставлять flash по-другому, то наблюдается в лучшем случае зависание терминальной программы, в худшем помогает только кнопочка reset. (Лично у меня, даже при наличии желания что-то повесить, такого не происходило, возможно, мне повезло.)
Переставляя микросхемы подобным образом, вы можете испортить модем или Flash, так что вся ответственность за те или иные эксперименты лежит только на вас. Для того чтобы свести риск к минимуму, нужно либо установить ZIF-socket вместо вашей панельки под ПЗУ, либо соорудить конструкцию, подобную той, что описывает Dmitry Gzhibovsky (Dmitry.Gzhibovsky@p5.f52.n5080.z2.fidonet.org).
Берётся любая микросхема с «работающей» прошивкой (хоть родное одноразовое ПЗУ), на неё сверху напаивается панель для flash. 22-ые ноги верхней панели и ПЗУ отгибаются и через резисторы сопротивлением порядка 10 КОм подключаются к +5 В. Далее, с 22-ой ноги панели, которая стоит в модеме, сигнал подается на переключатель. С переключателя сигнал идёт на те же 22-ые ноги ПЗУ и верхней панели, то есть переключатель подает сигнал с модемной панели или на ПЗУ, или на верхнюю панель, куда собственно flash-память и ставится. Далее вся эта конструкция втыкается в модем, переключатель в режим «ПЗУ», включаем питание, at**, заливаем специально доработанный для этих целей uploader, переключатель в положение «flash», нажимаем на клавиатуре «G», uploader просит залить прошивку, что с радостью и делаем.
После того как все модемы оказались перепрошиты на новые версии, передо мной встала задача номер 2, а именно как подключить 3 или 4 модема к компьютеру и заставить их вместе работать под ОС Linux.
Несколько модемов
Купить модемный пул на 8/16/32 и более модемов или соответствующую многопортовую плату от фирм Digiboard, Eqiunox, Granato, Cyclades, Moxa могут позволить себе не все, да и как-то бессмысленно покупать столь хитрые и дорогие устройства, если вам надо подключить всего лишь 3 модема, а не 16 или 32. Можно обойтись покупкой одного или нескольких переходников USB-COM. Хотя по цене не скажу, что выйдет дешевле. Также можно поискать старые дешёвые мультикарты, позволяющие гибко настраивать параметры встроенных в неё COM-портов, но это будет то же самое решение, что мы рассмотрим ниже. Физически нам ничего не мешает воткнуть в компьютер один или два внутренних модема и к двум внешним портам подключить ещё два внешних модема. Но работать вместе без особой настройки данный квартет или трио не будут.
А в чём собственно проблема? Поняв суть проблемы, может, мы сможем решить или обойти её. Изучив по этому вопросу литературу, можно хорошую инструкцию от какого-нибудь модема или [17], мы можем выяснить, что для работы COM-порта, к которому подключаются модемы, либо которые встроены в сам модем, если он внутренний, необходимо иметь адрес, по которому будут производиться операции чтения и записи и прерывание, через которое будет регулироваться этот процесс. Надеюсь, что все понимают, что с точки зрения повышения производительности асинхронная запись оказывается более выгодной, чем синхронная. В своей основе это и порождает необходимость в существовании прерываний и вытекающие из этого проблемы.
В наследство от MS-DOS стандартная настройка COM-портов оказывается следующей:
/dev/ttys0 (COM1), port 0x3f8, irq 4
/dev/ttys1 (COM2), port 0x2f8, irq 3
/dev/ttys2 (COM3), port 0x3e8, irq 4
/dev/ttys3 (COM4), port 0x2e8, irq 3
Замечание: для меня, кстати, до сих пор является секретом, почему в моей любимой терминальной программе Telemate под DOS имеется возможность выбора COM1-COM8. Мне интересно понять, как разработчикам виделось использование, скажем, COM7 или COM8.
Если вы уже заметили, то прерывания у COM1 и COM3, COM2 и COM4 совпадают. В этом как раз и состоит основная проблема. Из-за существующих ограничений в силу особенностей реализации ранее придуманной AT/ISA архитектуры одно прерывание нормально не может использоваться одновременно двумя или несколькими COM-портами. Если же подключить несколько СОМ-портов на одно прерывание и попытаться работать с ними всеми одновременно, возникнут сбои, ошибки и зависания. Данные ограничения можно обойти путём использования специальных многопортовых карт, о которых я упомянул выше. Эти карты умеют делить одно прерывание между несколькими портами. Кстати, большинство из них поддерживается Linux/FreeBSD. Соответственно правильным решением, по которому мы пойдём, является поиск свободных прерываний и развод модемов, чтобы используемые ими прерывания не пересекались.
Обычно старые внутренние модемы имеют разъём ISA 8-bit (именуемый также PC). Выбор прерывания на такой шине значительно ограничен по сравнению с полной ISA (16-bit). А с учётом, что не все прерывания могут быть использованы, модемы очень редко предоставляют возможность выбора большего, чем 4 числа прерываний. При этом используются прерывания по умолчанию, закреплённые за параллельными и последовательными портами:
IRQ 3: COM2
IRQ 4: COM1
IRQ 5: LPT2
IRQ 7: LPT1
У ZyXEL 1496E+ с помощью перемычек (jumpers) можно выбрать следующие параметры:
Рисунок 15. Схема выбора адреса COM-порта и прерывания с помощью перемычек на модемах ZyXEL U1496B+
Если же вам повезло и у вас модем более продвинутый, а ещё и 16-битный, то вам станут доступны все прерывания, в том числе верхние 10-15. Не все прерывания можно выбрать и использовать, поэтому, скорее всего, для вас окажется более полезной следующая информация по выбору прерываний.
Стандартное использование прерываний следующее:
- IRQ 0 – Таймер, канал 0.
- IRQ 1 – Клавиатура.
- IRQ 2 – Cascade for controller 2.
- IRQ 3 – Последовательный порт 2 (COM2).
- IRQ 4 – Последовательный порт 1 (COM1).
- IRQ 5 – Параллельный порт 2 (LPT2).
- IRQ 6 – Накопитель на гибких дисках.
- IRQ 7 – Параллельный порт 1 (LPT1).
- IRQ 8 – Часы реального времени.
- IRQ 9 – Перенаправлено на IRQ2.
- IRQ 10 – Не назначено.
- IRQ 11 – Не назначено.
- IRQ 12 – Не назначено.
- IRQ 13 – Математический сопроцессор.
- IRQ 14 – Первый контроллер жёстких дисков.
- IRQ 15 – Второй контроллер жёстких дисков.
Использовать можно любое неиспользуемое прерывание, однако следует понимать, что есть прерывания, которые всегда заняты и соответственно без конфликтов в системе при их использовании обойтись нельзя. Данный факт значительно сужает диапазон нашего выбора, но кто же несколько лет назад знал, что прерываний будет катастрофически не хватать, как не хватает сейчас пропускной способности московской подземки и автомобильных дорог.
Давайте рассмотрим, чем мы можем смело пользоваться, а от чего придётся воздержаться. Без сомнения, прерывание 0 использовать не получится. Прерывание 1 при особых усилиях можно попытаться использовать. Зачем на сервере клавиатура, ибо можно подключить её по USB, либо вообще управлять компьютером по сети. Однако столь радикальные меры можно позволить на давно отлаженных системах, где клавиатура точно не нужна. Посему для большинства это прерывание также окажется закрытым для использования. Прерывание номер 2 зарезервировано за неким хитрым устройством, которого, как и людей, его использующих, я никогда не видел. Так что вполне можно использовать это прерывание для своих нужд. Следует учесть, что 2-е и 9-е прерывание в силу особенностей реализации идентичны друг другу, если не сказать честно, что это одно и то же прерывание, а поэтому использовать их вместе никак не получится. Прерывания 3 и 4 у нас уже заняты двумя внешними COM-портами, к которым мы уже подключили два модема. IRQ 5 – редко кто у себя на компьютере использует его по прямому назначению, а именно для организации второго параллельного порта. Хотя, несомненно, это удобно – развести устройства в случае, если у вас на одном параллельном порту висят одновременно: ФАКС (комбайн), принтер, card reader и сканер. Появление USB частично решило эту проблему, однако никто же не будет бесплатно менять все используемые устройства на их USB-аналоги, а также переписывать коды предыдущих версий ОС, в которых нет поддержки USB. Иногда на это прерывание вешают звуковую карту. Если у вас нет ничего из вышеописанного, то это прерывание для вас открыто. IRQ 6 используется дисководом. Не секрет, что многие, покупая новые компьютеры, не ставят туда дисковод не потому, что им жалко лишние 180 рублей, а потому, что он им не нужен. На серверах можно также обойтись без дисковода. Посему, если отключить соответствующий контроллер в BIOS, данным прерыванием можно смело пользоваться. IRQ 7 – это скорее принтерное прерывание, лишь потому, что чаще всего на первый параллельный порт, использующий это прерывание, устанавливают принтер. Соображения тут аналогичны LPT2. Если у вас порт не используется, то прерывание можно смело использовать. IRQ 8 – часы реального времени, использовать это прерывание вряд ли получится. IRQ 9 – см. IRQ 2. IRQ 10-12 если не используются, то мы можем забрать их под свои нужды. IRQ 13 отвечает за математический сопроцессор. Если ваш процессор более чем 486 DX2, то есть имеет встроенный сопроцессор, то вряд ли вы сможете использовать это прерывание, однако если у вас стоит какая-нибудь 386 или 486 без сопроцессора, то это прерывание для вас открыто. IRQ 14 – вряд ли вы обойдётесь без жёсткого диска, поэтому данное прерывание скорее всего будет для вас занято. Хотя, если пользоваться только дисководом (дискетные версии Linux или других ОС), либо сетевой картой (полная загрузка по сети) или отдельным SCSI-котроллером, то при особых усилиях можно это прерывание задействовать для своих нужд. IRQ 15 – если у вас не используется и отключён второй контроллер IDE (CD-ROM и винчестер висят на одном шлейфе), то без проблем можно использовать и это прерывание.
В общем, не пусто, но и не густо. В целом, если не вдаваться в описанную выше экзотику, то с большой вероятностью вы не сможете использовать IRQ 0, 1, 6, 8, 13 или 14. Они будут использоваться вашей материнской платой. Используя их необдуманно и не по назначению, вы можете заработать множество неприятностей. Когда вы закончите ваши эксперименты, посмотрите в /proc/interrupts (если в ядре есть поддержка /proc) и удостоверьтесь, что конфликтов нет. Выбрав для себя, что для третьего модема следует использовать IRQ 5, я установил перемычки на модеме ZyXEL в следующее положение и вставил модем в компьютер.
Рисунок 16. Выбор конфигурации адрес=3E8, IRQ 5 с помощью перемычек
В BIOS внешние COM1 и COM2 я назначил стандартно. В результате у меня получилась следующая «железная» конфигурация:
COM1 - Port: 0x03f8, IRQ: 4 (/dev/ttyS0)
COM2 - Port: 0x02f8, IRQ: 3 (/dev/ttyS1)
COM3 - Port: 0x03e8, IRQ: 5 (/dev/ttyS2)
Соответственно, если первые два порта Linux определит сам, так как они стандартны, то что же касаемо COM3, то ядру Linux надо будет дать пояснение, чтобы оно знало, где именно искать наш COM3. В качестве программы, объясняющей ядру, что и где из COM-портов находится, в Linux используется setserial. Следует заметить, что эта программа ничего не устанавливает сама, она просто сообщает ядру о тех настройках, о которых вы её попросите. Файл конфигурации последовательных портов в некоторых версиях Linux по умолчанию находится в директории /etc и называется serial.conf. Для описанной выше конфигурации у меня он получился следующего содержания:
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test
/dev/ttyS1 uart 16550A port 0x02f8 irq 3 baud_base 115200 spd_normal skip_test
/dev/ttyS2 uart 16550A port 0x03e8 irq 5 baud_base 115200 spd_normal skip_test
Заглянув в директорию с документацией от Red Hat Linux v.7.3 /usr/share/doc/setserial-2.17q, можно увидеть там два файла: README и rc.serial, вот поистине правда: RTFM и станете умнее.
Естественно, что в случае нестандартной конфигурации запускать setserial во время начальной загрузки вам придётся постоянно. Запускать его руками не есть хорошее решение, прописывать файл в /etc/rc.d/rc.local тоже не стоит, поэтому наиболее элегантным решением будет использование уровней загрузки и rc?.d директорий. В README написано, что файл rc.serial следует поместить в /etc/rc.d/init.d (переименовав просто в serial) и сделать на него ссылки из rc?.d либо руками, либо командой:
# chkconfig --add serial
У второго способа есть особенности. При запуске /etc/rc.d/init.d/serial с параметром stop или save осуществляется запись существующей конфигурации в /etc/serial.conf, причём туда попадают и все лишние устройства. Мне это показалось не очень удобным, поэтому я удалил файлы /etc/rc.d/rc?.d/K??serial, осуществляющие ненужное мне сохранение, и удалил лишние сохранённые строчки из /etc/serial.conf. Конечно, сделав так, через годик-другой можно забыть про эту особенность, но будьте начеку и тренируйте память. Очень плохо, когда всегда и все настройки идут по шаблону, даже там, где это особо не нужно.
Соответственно, помимо установки файлов, отвечающих за сообщение ядру нужных параметров во время загрузки. Операцию по указанию этих самых нужных параметров следует хотя бы один раз выполнить вручную. В моём случае это была команда:
# setserial /dev/ttyS2 irq 5
Сменяющая стандартно ассоциированное IRQ 4 для COM3 на выбранное мной IRQ 5. Следующие команды проверяют правильность установки (выводят настройки на экран, чтобы вы могли их проверить сами) и сохраняют имеющуюся конфигурацию, как это было описано выше:
# setserial /dev/ttyS0
# setserial /dev/ttyS1
# setserial /dev/ttyS2
# /etc/rc.d/init.d/serial stop
У меня получилась следующая конфигурация:
COM1 /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
COM2 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
COM3 /dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 5
Замечание 1: пока я в BIOS не проассоциировал руками прерывание номер 5 с шиной ISA, в которую был установлен модем, модем не виделся.
Рисунок 17. Закрепление прерывания номер 5 за устройствами шины ISA
Замечание 2: запуск программы kudzu, осуществляющей поиск нового оборудования, следует производить после установки параметров последовательных портов, то есть после serial, чего при установке по умолчанию не наблюдается. Если вы хотите, чтобы kudzu обнаружил модем, запущенный у вас нестандартно на COM3 и после не терял его, сообщая вам, что устройство удалено из компьютера, то вам придётся поменять номер запуска kudzu на более высокий, например, с 05 на 51. Сделать это можно просто, удалив старые ссылки, запустив для этого:
# chkconfig --del kudzu
Затем подправив 05 на 51 в /etc/rc.d/init.d/kudzu и создав новые ссылки:
# chkconfig --add kudzu
Если данное решение неудобно, то можно просто руками переименовать все файлы S05kudzu в директориях /etc/rc.d/rc?.d на S51kudzu. Скорее всего, изменение уровня запуска kudzu ни на что другое не повлияет. Убедиться в том, что все модемы установлены и доступны для дальнейшей настройки использующих их приложений, можно с помощью стандартной терминальной программы minicom. Если модем будет правильно реагировать на передаваемые ему команды, скорее всего, он работает. Для большей надёжности в правильной работе всех модемов, несомненно, следует проверять работу всех модемов одновременно, но из-за сложности подобной реализации мы опустим этот тест, ограничившись проверкой на жизнеспособность каждого модема по отдельности.
Если у вас не установлена терминальная программа minicom, установите её (или используйте свою). В RedHat Linux v.7.3 она находится на 2-м диске (RHL v.9 – на 1-м).
Запустите:
# minicom -s
в появившемся меню:
Рисунок 18. Окно конфигурации после запуска «minicom –s»
Выберите Serial port setup, у вас выскочит новое окно:
Рисунок 19. Настройка параметров COM-порта
Нажав «A», исправьте используемый вами порт на нужный и установите скорость на 57600. Нажмите «Enter» для выхода из подменю. В случае необходимости сохраните конфигурацию – пункт «Save setup as dfl» и, нажав «ESC», запустите терминал. На некоторое время у вас выскочит надпись Initializing Modem. После чего у вас должна появиться строка, где, как обычно, можно набирать AT-команды. (Например, ATI или ATI1.) Выход из терминала «CTRL-A, Q».
Повторив вышеописанные операции по отношению ко всем остальным модемам, можно также убедиться, что они работают. Если это так, то значит подключение 3 модемов прошло у вас успешно и далее вы можете настраивать другие программы, прописывая в них модемы просто как устройства /dev/ttyS0, /dev/ttyS1, /dev/ttyS2.
Литература, ссылки:
- Хоровиц П., Хилл У. Искусство схемотехники: Пер. с англ. – Изд. 6-е – М.: Мир, 2003.
- Гальперин М.В. Электронная техника: Учебник. – М.: ФОРУМ: ИНФРА-М, 2003.
- Фрике К. Вводный курс цифровой электроники – М.: Техносфера, 2003.
- Жеребцов И.П. Основы электроники – 5-е изд., перераб. и доп. – Л.:Энергоатомиздат. Ленинградское отделение, 1989. – 122-123 с.
- Лукацкий А.В. Обнаружение атак. – СПб: БХВ-Петербург, 2001. – 624 с.
- Закляков П. Плохое электропитание, или «Грабли» с UPS. – Журнал «Системный администратор», №8(9), 2003 г. – 52-61 с.
- Руководство для пользователей. Универсальный модем серии U-1496. Документ № 83011501, Версия 2.21 ZyXEL Communications Corporation и АО МКЦ «Вариант»
- Доска объявлений по купле/продаже/обмену: http://www.komok.com
- Доска объявлений по продаже.(интернет-аукцион): http://www.molotok.ru
- Каталог продукции фирмы ZyXEL: http://www.zyxel.ru/techsup/zyx_fil.asp
- Учебник по теме «Микропроцессоры». Постоянные запоминающие устройства. http://docs.lab127.karelia.ru/hardware/microcpu/pam1.htm
- Информация о некоторых видах памяти. http://digital5.ece.tntech.edu/Public/611/Clements%20CDROM/DATA/HITACHI/A_RAM.PDF
- Как менять прошивку на модемах Acorp: http://pirogoff.chat.ru/rockwell/firm.htm
- Официальный сайт Митинского городского радиорынка (г. Москва): http://www.tkmitino.ru/
- Сайт сети магазинов «Чип и Дип» по продаже электронных компонентов, цены, наличие, справочная информация. http://www.chip-dip.ru
- Набор программ для прошивки flash-памяти в Acorp модемах: http://pirogoff.chat.ru/files/firmware.zip
- man setserial