Token Ring
Аппаратные требования
Удостоверьтесь в том, что Ваша Token-Ring-карта поддерживается данным драйвером. В настоящее время драйвер поддерживает только карты на основе чипсета Tropiс.
Карты, работающие с данным драйвером:
3Com 3C619B Token Link
3Com 3C619C Token Link
HyperRing Classic 16/4
IBM Turbo 16/4 ISA adapter**
IBM Token Ring Auto 16/4 ISA adapter
IBM Token Ring Auto 16/4 adapter /A
IBM Token Ring 16/4 adapter /A
IBM Token Ring adapter /A
IBM Token Ring adapter II (4 Megabit only)
IBM 16/4 ISA Token Ring card (16bit)
IBM 16/4 ISA Token Ring card (8bit)
Madge Blue (100% IBM compatible)
Остальные IBM-совместимые адаптеры с разделяемой памятью также должны прекрасно работать. Пожалуйста, сообщите мне, если Вы найдете другие работающие карты. Рекомендую в настоящее время использовать адаптеры с 16КБ разделяемой памяти.
Карты, использование которых с данным драйвером может вызвать проблемы:
IBM Turbo 16/4 ISA adapter
На самом деле эта карта будет прекрасно работать с драйвером Token-Ring под Linux, однако Вам надо будет запустить карту в режиме, совместимом с Auto 16/4. Самый простой путь его установить - использовать диски LANAID, поставляемые вместе с Вашей картой, и воспользоваться командой:
LANAIDC /FAST=AUTO16
Для настройки карты Вы должны использовать LANAIDC или LANAID.
Token-Ring Network 16/4 Adapter II
Эта карта не работает. Не путайте ее с IBM Token Ring adapter II (4mbit), который работает без проблем. Это DMA/Busmaster-адаптер для ISA.
3Com TokenLink Velocity ISA
Эта карта может как работать, так и не работать. У меня было много писем от людей, у которых была такая карта, причем у одних она работала без проблем, а у других не работала вообще.
PCI адаптеры
В настоящее время ни один из IBM PCI-адаптеров не поддерживается.
IBM Auto LanStreamer 16/4 Token-Ring PCI Adapter
Данный адаптер в настоящее время не поддерживается, но работал. Этот драйвер должен поддерживать и полнодуплексный (Full Duplex) режим.
Необходимое программное обеспечение
Примечание:
Если Вы работаете с ядром версии 2.0 и выше, то обратитесь к следующему разделу данного документа. Все, перечисленное ниже, касается, главным образом, ядер версий 1.2.
Я предполагаю, что в данный момент перед Вами находится работающая Linux-машина.Возьмите Token Ring патч по адресу:
ftp://ftp.wayne.esu1.k12.ne.us/pub/Linux/Token-Ring/TokenRing.patch-1.2.0.gz
Возьмите исправленные исходные тексты NetTools по адресу: ftp://ftp.wayne.esu1.k12.ne.us/pub/Linux/Token-Ring/net-tools-1.2.0.patched.tar.gz
Создайте каталог для хранения патчей (например, /usr/src/patches) и скопируйте патчи туда. Создать каталоги можно следующими командами:
Mkdir /usr/src/patches - основной каталог для хранения патчей
Mkdir /usr/src/patches/token - сюда разместите патч Token Ring
Установка
Примечаниe:
Эта инструкция предназначена для внесения исправлений в ядро версии 1.2. Если у Вас ядро версии 2.0, то пересоберите его и ответьте yes или module, на вопрос о поддержке Token-Ring. Вам надо сделать следующее:
Установить Token-Ring-карту в систему и сконфигурировать ее в зависимости от того, для чего Вы хотите ее использовать. Будет хорошо, если есть возможность сперва проверить работоспособность карты под DOS, а только потом устанавливать ее под Linux. Скорее всего карта будет работать под Linux с теми же настройками, что и под DOS. Если карта поддерживает режим PnP, постарайтесь заблокировать его сразу, как только она начнет работать.
Сделайте резервные копии каталога с исходными текстами ядра. Это пригодится, если понадобится полностью удалить Token-Ring-патч и вернуться к оригинальному состоянию исходных текстов.
cd /usr/src
tar cvzhf linuxbak.tar.gz linux
Разархивируйте патч Token-Ring.
cd /usr/src/patches/token
gzip -d TokenRing.patch-1.2.0.gz
Модифицируйте ваше ядро патчем Token-Ring
cd /usr/src/linux
patch -p1 < /usr/src/patches/token/TokenRing.patch-1.2.0
-или- patch -p1 < <directory-of-patchfile>/TokenRing.patch-1.2.0
Найдите все rej-файлы патча и внесите, если надо, необходимые изменения
find . -name \*.rej -print
Найдите orig-файлы и удалите их
find . -name \*.orig -print | xargs rm
Конфигурация и сборка ядра
Примечание:
Если у вас есть раздел подкачки, то удостоверьтесь в том, что он активен.
cd /usr/src/linux
make config
(Патч должен добавить две строки к Вашему файлу config.in) Token Ring support (CONFIG_TR) [y]
(and further down the list...) IBM Tropic chipset based adaptor support (CONFIG_IBMTR) [y]
make dep
make clean
make zImage
Настройка LILO. Сперва переименуйте каталог /vmlinuz в vmlinuz.old Затем копируйте ядро в /vmlinuz. На моей системе для этого необходимо было бы скопировать /usr/src/linux/arch/i386/boot/zImage в /vmlinuz и отредактировать /etc/lilo.conf для загрузки ядра. Теперь из командной строки запустите LILO, набрав "lilo"
Сейчас Вы должны быть готовы к перезагрузке вашей системы и использованию Token-Ring-карты в Вашем компьютере. ,Пожалуйста прочитайте раздел "установки, специфичные для дистрибутивов".
Установка NetTools
Пакет NetTools содержит много основных утилит работы с сетевыми устройствами. NetTools включает в себя программы arp, rarp, route, ifconfig и netstat и т.п. Эти программы не знают о Token Ring изначально, поэтому Вам необходимо модифицировать NetTools для того, чтобы эти утилиты могли более эффективно работать с драйвером Token Ring.
Примечание:
Текущая версия NetTools предназначается для ядра 1.2.x. Если Вы используете ядро версии 2.0, то Ваша версия NetTools, скорее всего, новее. Однако можно взять последнюю версию NetTools по адресу
ftp://tapac.inka.de/pub/comp/Linux/networking/NetTools/
(1) Скопируйте и разархивируйте исходные тексты NetTools в каталог исходных текстов.
cp net-tools-1.2.0.patched.tar.gz /usr/src
tar -zxvof /usr/src/net-tools-1.2.0.tar.gz
(5) Соберите NetTools.
cd /usr/src/net
make install
Известные проблемы
У меня самого возникало с этим драйвером несколько проблем. Если у Вас проблемы с Token Ring, а Вы используете Linux с ядром 1.2.х, пожалуйста, обновите его до 2.0. На момент написания этого документа, текущей версией ядра была 2.0.33. В патчи Token-Ring было внесено много усовершенствований со времен версии 1.2.x. Большинство этих исправлений не было перенесено назад.
Я бы не советовал вам использовать этот патч для ядер 2.0. В эти ядра уже встроена поддержка Token-Ring. Хотя существуют пробные патчи, поднимающие версию до 2.1.
Вопросы и комментарии
Q:
Может ли Token Ring собираться как модуль?
A:
Да, это можно сделать, причем Token-Ring при этом будет довольно хорошо работать. Имеется дополнительный параметр, который Вы можете использовать для компиляции Token Ring в качестве модуля. Если Вам когда-нибудь понадобится "обмануть" программы, например загрузочные диски RedHat, то в конфигурации Token-Ring-карты (для NFS/FTP и т.п.) используйте параметр "device", отличный от tr0. Вероятно возникнут проблемы, если попробовать использовать этот трюк с несколькими Token-Ring-совместимыми адаптерами. Он предназначен, главным образом, для нескольких несовместимых устройств. Пример:
/sbin/insmod ibmtr device=eth0
Q:
Я получаю ошибку с кодом "0011". Что это значит?
A:
Удостоверьтесь, что Вы подсоединены к сети, и что у Вас есть loopback-коннектор на Token-Ring-карте. Это сообщение может означать, что не открыта сеть. В 99,99% оно означает, что Вы не подключены к ней.
C:
Если на машине установлена звуковая карта, использующая порт 0x220, то она может конфликтовать с Token-Ring-картой, использующей порт 0xa20. Если возникла данная ситуация, то попробуйте поменять порт Token-Ring-карты на 0xa24, или переместите/удалите звуковую карту.
Также у меня сохранились некоторые письма, касающиеся Token Ring под Linux. В некоторых сообщениях для экономии места я удалил не очень интересные части.
Q:
От: "Mr. Chuck Rickard" <chuck@gl.umbc.edu>
Тема: Re: Token Ring патч для ядра
Я поменял параметр "device" на tr0, но при сборке получил сообщение "tr0: Can't assign device to adapter", и параметр "device" снова стал tr1. У Вас есть какие-нибудь идеи по этому поводу?
Спасибо!
Chuck Rickard
(chuck@umbc8.umbc.edu)
A:
От: David Morris <dwm@shell.portal.com>
Когда это единственное получаемое сообщение, то оно скорее всего означает, что программно заданный адрес порта не используется Вашей tr-картой (см. segment = inb(PIOaddr) в ibmtr.c)).
Q:
От: Mike Glover <glover@credit.erin.utoronto.ca>
Тема: Token ring проблемы.
Спасибо за ответ. Вот мой файл /var/adm/messages:
May 2 10:03:14 linux kernel: tr0: Unable to assign adapter to device.
May 2 10:03:14 linux kernel: tr1: Unable to assign adapter to device.
Устройство tr0 не может связаться с адаптером, это смущает меня. Документации очень мало и я не знаю как поступить при таком сообщением. Я знаю, что я не ввел никакие параметры tr-карты, но я не знаю где это делать.
Железо:
PC-клон (Dell OMNIPLEX 560, если быть точным)
tr-карта Olicom 16/4 Adapter.
У меня есть tr-драйвер для DOS и под DOS моя карта работает. Мне кажется, что я чего-то не доделываю в Linux.
A:
Olicom 16/4 Adapter не использует Tropic-чипсет. Попробуйте использовать одну из карт, которые указаны в самом начале данного howto.
Q:
От: Mike Glover <glover@credit.erin.utoronto.ca>
Тема: Нашел IBM-карту...
Я взял IBM tr-карту и добился немного большего, но все еще не могу полностью установить ее.
(Я изменял /etc/rc.d/rc.inet1 ifconfig от eth0 до tr0). Вот часть моего файла /var/adm/messages :
May 2 16:23:07 linux kernel: IPX Portions Copyright (c) 1995 Caldera, Inc.
May 2 16:23:07 linux kernel: tr0: PIOaddr: a20 seg/intr: b8 mmio base:
000dc000 intr: 0
May 2 16:23:07 linux kernel: tr0: Channel ID string not found for PIOaddr: a20
May 2 16:23:07 linux kernel: tr0: Expected for ISA: 5049434f3631313039393020
May 2 16:23:07 linux kernel: tr0: found: 000902003021111000182000
May 2 16:23:07 linux kernel: tr0: Expected for MCA: 4d4152533633583435313820
May 2 16:23:07 linux kernel: tr0: Unable to assign adapter to device.
May 2 16:23:07 linux kernel: tr1: Unable to assign adapter to device.
May 2 16:23:07 linux kernel: PPP: version 0.2.7 (4 channels) NEW_TTY_DRIVERS
OPTIMIZE_FLAGS
Это Вам говорит о чем-нибудь? Мне - практически ни о чем.
A:
От: David Morris <dwm@shell.portal.com>
Это сообщение означает или конфликт памяти с MMIO-областью или с TR-картой, которая не совместима с драйвером (по крайней мере эта сигнатура мне не известна).
Q:
От: Mike Glover <glover@credit.erin.utoronto.ca>
Тема: Уже почти...
Я вижу в моем файле messages следующее:
May 3 14:50:24 linux kernel: tr0: now opening the board...
May 3 14:50:24 linux kernel: tr0: board opened...
May 3 15:11:47 linux kernel: tr0: Arrg. Transmitter busy for more than 50 msec.
Donald resets adapter, but resetting
May 3 15:11:47 linux kernel: the IBM tokenring adapter takes a long time.
It might not even help when the
May 3 15:11:47 linux kernel: ring is very busy, so we just wait a little longer
and hope for the best.
May 3 15:11:47 linux kernel: tr0: Arrg. Transmitter busy for more than 50 msec.
Donald resets adapter, but resetting
May 3 15:11:47 linux kernel: the IBM tokenring adapter takes a long time.
It might not even help when the
May 3 15:11:47 linux kernel: ring is very busy, so we just wait a little longer
and hope for the best.
May 3 15:11:47 linux kernel: tr0: Arrg. Transmitter busy for more than 50 msec.
Donald resets adapter, but resetting
Запись Arrg появляется только тогда, когда я запускаю telnet, rlogin или
ftp на удаленной машине. Как только это происходит, процесс связи надолго
зависает. Я попробовал удалить все устройства из моего компьютера (такие
как SCSI-карта) и работать только с tr-картой. Так что проблема не в
аппаратной части. Вот переключатели DIP на карте:
1 Up |
2 Down |
3 Down | Согласно руководству эти переключатели устанавливают
4 Up | базовый адрес CC000, что вполне подходит для моей машины.
5 Up |
6 Down |
7 Down + Эти устанавливают IRQ=2, что тоже меня устраивает
8 Down +
9 Up X Первичный сетевой адаптер.
10 Up = 16 KB RAM. Это хорошо?
11 Down =
12 Up # 16 Mbps скорость данных.
Я буду удивлен, если дело в DIP-переключателях, мне кажется, у меня
неправильно сконфигурирована таблица маршрутизации и другие сетевые
настройки.
Mike
A:
Эта проблема полностью устранена в ядре 2.0, исправления не были перенесены в ядро 1.2, поэтому, я советую переходить на ядро 2.0.
Установки, специфичные для дистрибутивов
Slackware 96
Если у Вас еще не запущен "netconfig", то сделайте это сейчас. Настройте все так, как если бы ваша машина находилась в Ethernet. Отредактируйте /etc/rc.d/rc.inet1 так, чтобы сперва проверялось устройство tr0, а потом eth0. У вас должна быть следующая строка:
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}
Переделайте ее в строку вида /sbin/ifconfig tr0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}
RedHat 4.0+
В дистрибутиве RedHat 4.0+ имеется прекрасная панель управления XWindows, предназначенная для конфигурирования модулей и устройств. Если Вы устанавливаете tr-адаптер в стандартной комплектации RedHat 4.0+, то там уже должна быть поддержка Token Ring, собираемая в в качестве модуля. Попробуйте использовать команду:
modprobe ibmtr
Если в Вашем дистрибутиве действительно есть поддержка tr-адаптера, то, скорее всего, больше ничего не надо делать.
Самый простой способ сконфигурировать Ваш интерфейс - это использовать панель управления (control-panel). Сперва загрузите новое сетевое устройство Token Ring. При этом автоматически должен загружаться драйвер ibmtr. Затем перейдите в конфигурацию сети и добавьте новое устройство - tr, присвойте ему ip-адрес и т.п. После перезагрузки Ваш Linux RedHat 4.0+ будет работать с Token Ring.
Пожалуйста, обратите внимание, что уже в течении длительного времени мне не приходилось настраивать ни одну из моих RedHat систем, поэтому данные инструкции я пишу по памяти. По крайней мере, они должны направить Вас на путь, по которому необходимо следовать при настройке.