Token-Ring mini-HOWTO

Mike Eckhoff

     [email protected]
   

Перевод: Денис Дементьев, SWSoft Pte Ltd.

версия 4.1, 7 января 1998

Этот howto предназначен для того, чтобы помочь Вам установить и настроить TokenRing (в том числе, как установить патч в ядро). Обязательно прочитайте весь документ до того, как приступbть к установке драйвера Token-Ring для Linux.


Благодарности:

Mark Swanson, Peter De Schrijver, David Morris, Paul Norton и другим, кого я возможно упустил. Спасибо всем, кто находит время поддерживать этот драйвер. А также packrat за поддержку linux-tr listserv.


1. Copyright и ответственность

Я не гарантирую, что информация в данном howto в точности подойдет Вашей системе. Но у большинства людей не возникало никаких проблем.

ИСПОЛЬЗУЙТЕ ДАННЫЙ HOWTO НА СВОЙ СОБСТВЕННЫЙ СТРАХ И РИСК.

Если у Вас возникают проблемы с драйвером, то не стесняйтесь писать мне на [email protected]. Вы также можете воспользоваться списком рассылки Token-Ring. Для этого необходимо отправить письмо по адресу [email protected], написав в письме:

subscribe linux-tr

This document is copyright (c) 1995-1998 by Michael Eckhoff. You may make copies of this document in whole or in part, in any medium physical or electronic, as long as the copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, please notify me so that I can make sure that you have the most current information available.


2. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу


3. Аппаратные требования

Удостоверьтесь в том, что Ваша 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) режим.


4. Необходимое программное обеспечение

Примечание:

Если Вы работаете с ядром версии 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 


5. Установка

Примечаниe:

Эта инструкция предназначена для внесения исправлений в ядро версии 1.2. Если у Вас ядро версии 2.0, то пересоберите его и ответьте yes или module, на вопрос о поддержке Token-Ring. Вам надо сделать следующее:

  1. Установить Token-Ring-карту в систему и сконфигурировать ее в зависимости от того, для чего Вы хотите ее использовать. Будет хорошо, если есть возможность сперва проверить работоспособность карты под DOS, а только потом устанавливать ее под Linux. Скорее всего карта будет работать под Linux с теми же настройками, что и под DOS. Если карта поддерживает режим PnP, постарайтесь заблокировать его сразу, как только она начнет работать.

  2. Сделайте резервные копии каталога с исходными текстами ядра. Это пригодится, если понадобится полностью удалить Token-Ring-патч и вернуться к оригинальному состоянию исходных текстов.

    cd /usr/src
    tar cvzhf linuxbak.tar.gz linux
            

  3. Разархивируйте патч Token-Ring.

    cd /usr/src/patches/token
    gzip -d TokenRing.patch-1.2.0.gz
            

  4. Модифицируйте ваше ядро патчем 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
            

  5. Найдите все rej-файлы патча и внесите, если надо, необходимые изменения

    find . -name \*.rej -print
            

  6. Найдите orig-файлы и удалите их

    find . -name \*.orig -print | xargs rm
            

  7. Конфигурация и сборка ядра

    Примечание:

    Если у вас есть раздел подкачки, то удостоверьтесь в том, что он активен.

    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
            

  8. Настройка LILO. Сперва переименуйте каталог /vmlinuz в vmlinuz.old Затем копируйте ядро в /vmlinuz. На моей системе для этого необходимо было бы скопировать /usr/src/linux/arch/i386/boot/zImage в /vmlinuz и отредактировать /etc/lilo.conf для загрузки ядра. Теперь из командной строки запустите LILO, набрав "lilo"

  9. Сейчас Вы должны быть готовы к перезагрузке вашей системы и использованию Token-Ring-карты в Вашем компьютере. ,Пожалуйста прочитайте раздел "установки, специфичные для дистрибутивов".


6. Установка 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. (1) Скопируйте и разархивируйте исходные тексты NetTools в каталог исходных текстов.

    cp net-tools-1.2.0.patched.tar.gz  /usr/src
    tar -zxvof /usr/src/net-tools-1.2.0.tar.gz
            

  2. (5) Соберите NetTools.

    cd /usr/src/net
    make install
            


7. Известные проблемы

У меня самого возникало с этим драйвером несколько проблем. Если у Вас проблемы с Token Ring, а Вы используете Linux с ядром 1.2.х, пожалуйста, обновите его до 2.0. На момент написания этого документа, текущей версией ядра была 2.0.33. В патчи Token-Ring было внесено много усовершенствований со времен версии 1.2.x. Большинство этих исправлений не было перенесено назад.

Я бы не советовал вам использовать этот патч для ядер 2.0. В эти ядра уже встроена поддержка Token-Ring. Хотя существуют пробные патчи, поднимающие версию до 2.1.


8. Вопросы и комментарии

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" <[email protected]>
          Тема: Re: Token Ring патч для ядра

Я поменял параметр "device" на tr0, но при сборке получил сообщение "tr0: Can't assign device to adapter", и параметр "device" снова стал tr1. У Вас есть какие-нибудь идеи по этому поводу?

Спасибо!

Chuck Rickard
([email protected])

              

A:

От: David Morris <[email protected]>
              
Когда это единственное получаемое сообщение, то оно скорее всего означает, что программно заданный адрес порта не используется Вашей tr-картой (см. segment = inb(PIOaddr) в ibmtr.c)).

Q:


От:  Mike Glover <[email protected]>
Тема: 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 <[email protected]>
Тема: Нашел 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 <[email protected]>
              
Это сообщение означает или конфликт памяти с MMIO-областью или с TR-картой, которая не совместима с драйвером (по крайней мере эта сигнатура мне не известна).

Q:

От: Mike Glover <[email protected]>
Тема: Уже почти...

Я вижу в моем файле 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.


9. Установки, специфичные для дистрибутивов

9.1. 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}


9.2. 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 систем, поэтому данные инструкции я пишу по памяти. По крайней мере, они должны направить Вас на путь, по которому необходимо следовать при настройке.