Все о Linux. LinuxRSP.Ru

[an error occurred while processing this directive]

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Linux Ethernet-Howto

by Paul Gortmaker

v2.9, Aug 25, 2003

Перевод на русский язык: Владимир Царьков (Vladimir B. Tsarkov) Перевод не завершен. Присылайте свои дополнения.

    bvbn at lipetsk period ru


Ethernet-Howto - документ, в котором можно найти информацию о том, какие ethernet устройства поддерживаются Linux, и как их установить. Учтите, что данное руководство сфокусировано на аппаратном обеспечении и низкоуровневых драйверах ethernet сетевых карт и не затрагивает вопросы программного обеспечения и в частности таких программ как ifconfig и route. Информация об этом программном обеспечении может быть найдена в документации к операционной системе GNU/Linux.
Примечание переводчика: данный документ содержит русский перевод Linux Ethernet-Howto начиная с пункта 0. и до 2.5 включительно.

0. История

1. Введение

2. Часто задаваемые вопросы

Disclaimer and Copyright

История Linux Ethernet-Howto взята из Ethernet-Howto в формате SGML.
Не забудьте о том, что надо воспринимать справочную информацию помня о текущей версии ядра Linux, смотрите на дату/версию документа!

0. История

    ·  Где-то июль 1993 года - В поисках информации об e'net и ноутбуках, я просматривал файлы на ftp узле Дональда (в то время ftp.super.org) - у Дональда была куча документации, раскиданной то там то сям. Во время разговора с ним он упомянул, что было бы хорошо когда-нибудь собрать и упорядочить всю эту информацию в одном документе. Проект Howto только начинал развиваться, его первая ласточка - NET-Howto (появившийся из всей этой неразберихи с net-switch 0.99pl10). Я собрал всю документацию Дональда в один документ, добавил кучу информации, собранную мной из писем, взял в качестве эталона стиль NET-Howto, и первая версия Ethernet-Howto достигла Интернет где-то в августе 1993 года.
    ·  Где-то в декабре 93-го, Дональд сколотил HTML версию Ethernet-Howto, но она не получила широкого распространения и до сегодняшнего дня сохранилась лишь ASCII версия.
    ·  Весна 94-го, Ethernet-Howto опубликован в Linux Bible - 30 страниц ~750 страничной книги, изданной Linux System Labs.
    ·  Дональд меняет сферу деятельности и открывает WWW страницу, для публикации информации о новых linux драйверах, а также других новостях ethernet. Адрес этого сайта содержится в данном документе.
    ·  Год с того момента как все началось (июль 94-го), ужасное tab+space форматирование ушло в небытие. Последняя ASCII версия, созданная вручную - 1.03, датированная июнем 22/94. Любая более свежая ASCII версия была сгенерированна на основе этого SGML документа.
    ·  Из-за ошибки в перекрестных ссылках HTML я сидел над конверитированием документа до октября 94-го. Решение было близко, но никак не получалось его достигнуть. В конечном счете я нашел обходной путь.
    ·  Ноябрь 95-го ознаменовался крупной реорганизацией, после которой раздел часто задаваемых вопросов (FAQ), а также все самое интересное было перемещено в начало документа. Люди все равно никогда не читают больше первых нескольких страниц... :-)
    ·  Октябрь 96-го, кажется, что linux v2.0 достиг стабильности на патче под номером 21. Подходящее время обновить все это дело. Убрана устаревшая информация об ошибках, относящаяся к версиям ядра v1.0 и v1.1
    ·  Февраль 97-го принес несколько добавлений и исправлений, для версий 2.0.28 и 2.1.24 соответственно.
    ·  Ноябрь 97-го - версии pre-2.0.31 и 2.1.6x для новой книги LSL.
    ·  Февраль 98-го - версии 2.0.33 и 2.1.84, больше незначительных изменений, больше устаревшего хлама удалено.
    ·  Июль 98-го - 2.0.34/2.1.108, также как и в предыдущий раз, ко всему прочему, уделено больше внимания использованию модулей, эта традиция сохраняется и в свежих версиях документа.
    ·  Ноябрь 98-го - 2.0.35/2.1.126, значительные изменения, добавлено имя драйвера в строку статуса, чтобы помочь использующим модули (не опубликовано)
    ·  Май 99-го - 2.0.36/2.2.7, убрана куча устаревшего хлама, добавлен новый раздел про SMP, удалены ссылки на версию v2.1.
    ·  Октябрь 00 - 2.2.17/2.4.0 - тестовая серия. Множество присланных по электронной почте дополнений, cesdis более не является основным сайтом, посвященным драйверам.

1.0 Введение

Ethernet-Howto содержит детальную информацию об уровне поддержки ОС GNU/Linux большинства доступных ethernet сетевых карт. Документ рассказывает об основных вопросах конфигурации и вопросах, связанных с выбором подходящего драйвера, а также последующей установке этого драйвера, его настройке и использовании. Здесь вы не найдете информации о дальнейших этапах настройки (выбор сетевого адреса, маршрутизация и т. д.). Эта информация может быть найдена в разнообразной Linux документации.

На заре развития linux, устаревшие на данный момент ISA ethernet сетевые карты были нормой. ISA шина не давала представления linux о том, какие сетевые карты установлены и какие настройки поддерживает каждая из них. Конечным пользователям было сложно разобраться с этой проблемой и они обращались к данному руководству, чтобы облегчить себе жизнь.

К счастью, PCI шина теперь есть почти в каждом современном компьютере, а ISA шина осталась на обочине глотать пыль вместе с 386 и 486 компьютерами. Разработчики PCI шины распознали проблему с определением сетевых карт на ISA шине и добавили PCI картам возможность сообщать компьютеру своего производителя и модель, а также те настройки, которые могут быть использованы.

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

Эта версия документа охватывает ethernet драйвера, поддерживаемые ядром вплоть до версии 2.4.21 включительно. Также были отмечены некоторые особенности грядущего релиза версии 2.6.

Авторы Ethernet-Howto:
    Paul Gortmaker, p_gortmaker @ yahoo.com
Основным источником информации для первоначальной ASCII-only версии Ethernet-Howto был:
    Donald J. Becker, becker @ scyld.com
которого мы должны поблагодарить за большое количество драйверов для ethernet сетевых карт, на сегодняшний день доступных в ОС GNU/Linux.

Права на этот документ: Copyright (c) 1993-2003 by Paul Gortmaker Да, я веду этот проект уже в течение 10 лет! Пожалуйста прочитайте Disclaimer и информацию о копировании (copying) в конце этого документа для получения сведений о том как переиздавать этот документ и привычного 'мы не несем ответственности за то, что вы ухитритесь сломать...' правового содержания.

1.1 Новые версии этого документа

Новые версии этого документа могут быть взяты с:
    http://metalab.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html
или для тех, кто хочет использовать FTP и/или добыть это руководство в форматах отличных от HTML:
    ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/

Это 'официальные' адреса, но помимо всего прочего, документ может быть взят с одного из множества WWW/ftp зеркал, посвященных Linux. Обновления будут проводиться когда новая информация и/или новые драйвера станут доступными. Если версия документа, который вы читаете старше 6 месяцев, то вам следует проверить наличие обновленных копий данного руководства.

Этот документ доступен в различных форматах (postscript, dvi, ASCII, HTML и т. д.). Я бы рекомендовал просматривать его в HTML воплощении (используя обозреватель) или Postscript/dvi формате. Оба они содержат перекрестные ссылки, не включенные в plain text ASCII формат.

1.2 Использование Ethernet-Howto

Так как это руководство со временем становится все больше и больше, вы наверное не захотите провести остаток дня читая все от начала и до конца. И хорошая новость в том, что вы и не обязаны этого делать. HTML и Postscript/dvi версии этого документа содержат оглавление, которое поможет вам гораздо быстрее найти то, что вы ищите.

Вероятно, вы читаете этот документ потому, что у вас что-то не работает и вы не знаете, что делать или в чем может быть загвоздка. Следующий далее раздел (ПОМОГИТЕ - Не работает!) нацелен на аудиторию, которой принадлежат люди плохо знакомые с linux и призван направить вас в верном направлении.

Чаще всего, одни и те же типичные вопросы возникают снова и снова у разных людей. Возможно, ваш вопрос один из числа Часто Задаваемых Вопросов (ЧаВо, FAQ) и ответ на него есть в одноименном разделе данного документа (Часто Задаваемые Вопросы). Каждый должен обязательно просмотреть содержание данного раздела прежде чем писать письма с просьбами о помощи.

Если у вас нет ethernet сетевой карты, тогда вы должны начать с того, что решить какую именно приобрести. (Какую сетевую карту выбрать...)

Если у вас уже есть ethernet сетевая карта, но вы не уверены в том, можете ли ее использовать под управлением GNU/Linux, тогда вы наверное захотите прочесть раздел со специальной информацией о каждом производителе и его картах. (не входит в данную версию перевода документа)

Если вы заинтересованы в техническом аспекте драйверов устройств в Linux, тогда окиньте взглядом раздел, посвященный этой теме. (не входит в данную версию перевода документа)

1.3 Что мне нужно, чтобы заработала моя сеть на базе ethernet?

Кратко рассмотрим то, что вам необходимо:
1) вставить сетевую карту в разъем или найти материнскую плату со встроенной ethernet сетевой картой, 2) определить производителя и модель вашей ethernet сетевой карты или встроенного в материнскую плату ethernet чипа, 3) определить существует ли linux-драйвер для данной карты/чипа, 4) найти и скачать этот драйвер, 5) проверить информацию, которую выводит драйвер о вашей карте, убедиться, что он правильно ее определил, 6) установить необходимые сетевые параметры для вашего свежеобнаруженного сетевого интерфейса.

1.4 ПОМОГИТЕ - Не работает!

Ладно, не паникуйте. Данный раздел поможет вам разобраться с процессом настройки даже если у вас нет опыта работы с GNU/Linux или ethernet сетевыми картами.

В первую очередь вам нужно узнать точную модель вашей сетевой карты и выяснить существует ли для нее драйвер, входящий в поставку Linux. В большинстве случаев, разные модели сетевых карт управляются компьютером по-разному. Linux-драйвер (если он один) содержит информацию о том, как управлять устройством, эта информация находится в формате, который позволяет linux использовать сетевую карту.

Если у вас нет никакой документации, которая могла бы пролить свет на модель вашей сетевой карты, вы можете попробовать использовать утилиту lspci, она отображает информацию об PCI устройствах, установленных в вашей системе. Команда cat /proc/pci делает то же самое, но выводит меньшее количество информации. Для ISA сетевых карт смотрите раздел про карты - загадки. (раздел рекомендаций: не входит в данную версию перевода документа).

Теперь, когда вы знаете что у вас за сетевая карта, прочитайте ее описание в соответствующем разделе, (раздел рекомендаций: не входит в данную версию перевода документа), в котором в алфавитном порядке приведены производители, отдельные модели сетевых карт, а также рассказано о том существует ли для них linux-драйвер или нет. Если напротив названия вашей карты написано "Не поддерживается", вы можете быть уверены в том, что именно так и есть. Если вы не можете найти вашу карту в списке, проверьте в руководстве пользователя 'совместима' ли ваша сетевая карта с каким-либо иным типом карт. К примеру, существуют сотни, если не тысячи различных сетевых карт, совместимых с оригинальным Novell NE2000 дизайном.

Если вы удостоверились в том, что для вашей сетевой карты существует linux-драйвер, теперь нужно его найти и использовать. То, что для вашей сетевой карты есть linux-драйвер еще не означает того, что он входит в поставку каждого ядра. (Ядро - это базовая часть операционной системы, которая стартует первой при загрузке системы и, между прочим, содержит драйвера для разных типов аппаратного обеспечения.) В зависимости от разработчика конкретного GNU/Linux дистрибутива, может иметься всего несколько заготовок ядра (pre-built kernels) и куча драйверов в виде модулей или, может быть много ядер, содержащих разные комбинации встроенных драйверов.

Сегодня большинство GNU/Linux дистрибутивов комплектуются различными драйверами в виде модулей. Необходимые модули обычно загружаются в конце процесса загрузки системы или по требованию, если драйвер необходим для доступа к конкретному устройству. Вам потребуется присоединить этот модуль к ядру после его загрузки. Ознакомьтесь с документацией по установке и использованию модулей, поставляемой с вашим дистрибутивом, также прочитайте раздел этого документа, который посвящен модулям. (Драйвер в качестве модуля)

Если вам не удалось найти ядро со встроенным драйвером сетевой карты, счастливым обладателем которой вы являетесь, вам придется самостоятельно перекомпилировать ядро. В принципе, это вовсе не сложная задача. Вы просто отвечаете -да- или -нет- на вопросы о том, что будет содержать новый вариант ядра, а потом даете команду -компилировать-. Документ Kernel-HowTo поможет вам в этом деле.

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

Если сетевая карта опять не работает, тогда вам надо выяснить действительно ли ядро распознало ее. Чтобы получить эту информацию, после загрузки ядра, модулей и пройдя авторизацию скажите dmesg | more. Результатом выполнения этой программы будет список сообщений, которые выводились ядром при загрузке системы. Если карты была распознана, вы должны найти в списке сообщений строку, начинающуюся с eth0, в этой строке также будет указано имя драйвера сетевой карты и установленные для нее параметры (прерывание, адрес порта ввода/вывода и т. д.) (Замечание: При загрузке linux выводит список всех доступных PCI карт, не обращая на то, доступны ли для них драйвера - так что не ошибитесь, определение драйвера идет дальше!)

Если вам не удалось найти запись об идентификации сетевой карты, тогда драйвер не может ее идентифицировать. (Следовательно опять ничего не работает :-) Прим. перев.). Ознакомьтесь с содержанием раздела часто задаваемых вопросов (Часто Задаваемые Вопросы), чтобы узнать, что делать если сетевая карта не распознается. Если у вас NE2000 совместимая карта, в разделе ЧаВо (FAQ) существует несколько советов на тему как заставить операционную систему распознать ее.

Если карта распознается, но при этом в сообщении о ее идентификации выдается ошибка, что-то вроде конфликта на уровне ресурсов, то драйвер скорее всего не будет инициализирован корректно и сетевая карта будет не доступна. Наиболее часто встречающиеся сообщения об ошибках, приведены вместе с путями их решения в разделе часто задаваемых вопросов (FAQ).

Если идентификационные сообщения выглядят нормально, дважды проверьте настройки карты, отображаемые драйвером с теми, что являются родными для нее (для этого можно использовать небольшие черные перемычки на карте или утилиту, поставляемую производителем вашей сетевой карты). Эти данные должны совпадать на все сто процентов. К примеру, если у вас карта, перемычки на которой установлены так, что она настроена на передачу данных через 15-й канал прерывания (IRQ), а драйвер при загрузке системы сообщает, что номер канала прерывания равен 10, ничего не будет работать. Раздел часто задаваемых вопросов (FAQ) содержит информацию о наиболее часто встречающихся случаях некорректного распознавания настроек сетевых карт драйверами.

На данный момент у вас должна быть распознана и правильно настроена сетевая карта, будем надеяться, все теперь заработало как надо. Если нет, тогда у вас скорее всего ошибка в настройках программного или аппаратного обеспечения. Ошибка в конфигурации ПО скорее всего заключается в неправильно заданных с помощью команд ifconfig и route сетевых адресах, то как это правильно сделать детально описано в документах Network HowTo и `Network Administrator's Guide', которые скорее всего находятся на вашем CD-ROM с дистрибутивом ОС.

Ошибкой конфигурации аппаратного обеспечения можно назвать тот случай, когда конфликт на уровне ресурсов или ошибка в конфигурации (которую драйвер не распознал при загрузке) не дают сетевой карте работать корректно. Данный вид ошибки может проявляться по-разному. (1) Вы получаете сообщение об ошибке, когда ifconfig пытается инициализировать устройство для использования. Вот приблизительное содержание этого сообщения:``SIOCSFFLAGS: Try again''. (2) Драйвер во время загрузки системы сообщает об ошибке интерфейса eth0 (dmesg | more) или неизвестных конфликтах каждый раз как пытается отослать или принять информацию. (3) Команда cat /proc/net/dev в колонках errs, drop, fifo, frame или carrier, для интерфейса eth0, выводит числа не равные нулю. (4) Результатом выполнения команды cat /proc/interrupts является запись о том, что номер канала прерываний сетевой карты равен нулю. Большинство типичных проблем конфигурации аппаратного обеспечения также рассмотрены в разделе часто задаваемых вопросов (FAQ).

Что ж, если вы дошли до этой строки и ничего до сих пор не заработало, прочтите раздел часто задаваемых вопросов (FAQ) этого документа, прочитайте детальную информацию о вашей сетевой карте в разделе, посвященном специфике поставки, если и после этого ничего не заработало, тогда вам, возможно, следует послать в соответствующую группу новостей письмо с просьбой о помощи. Если вы отправляете письмо, пожалуйста укажите всю относящуюся к проблеме информацию, такую как модель сетевой карты, версию ядра, сообщения, которые при загрузке выводит драйвер, вывод команды cat /proc/net/dev, ясное описание проблемы и, разумеется, список того, что вы уже сделали пытаясь заставить сетевую карту заработать.

Вы можете быть удивлены тем, как много людей пишут бесполезные письма типа: ``Кто-нибудь может мне помочь? Моя сеть не работает.'' и больше ничего. Читатели групп новостей в большинстве случаев просто игнорируют подобные глупые письма, тогда как, детальное и информативное описание проблемы позволит какому-нибудь 'linux-гуру' помочь вам решить ее. Разумеется, тоже самое верно и для отправки отчета об ошибке - всегда предоставляйте как можно больше информации. (Относящейся к делу, разумеется. :-) Прим. перев.)

1.5 Тип кабеля, который должна поддерживать ваша сетевая карта

Витая пара с RJ-45 (большой телефонный разъем) коннектором, обозначается термином 10BaseT. Возможно, вам приходилось слышать другое название этого кабеля, UTP (Unsheilded Twisted Pair).

Тонкий ethernet кабель (RG-58 коаксиальный кабель) с BNC (T-образный коннектор, который вставляется в разрыв кабеля и подключается к разъему на задней стенке компьютера) коннекторами, обозначается термином 10Base2.

Более старый толстый ethernet кабель (10мм коаксиальный кабель), обозначаемый 10Base5. 15-ти штырьковый D-образный разъем, который можно найти на некоторых ethernet cетевых картах (AUI коннектор) используется для подключения к тонким ethernet кабелям и внешним приемопередатчикам (трансиверам).

Большинство ethernet сетевых карт поставляются в комбинированном варианте, стоят они всего на $10-$20 дороже. В их поставку входят разъем для витой пары и тонкого ethernet кабеля, что несомненно дает возможность подумать над тем какой тип кабеля выбрать.

Большинство оборудования использует 10BaseT/100BaseT, 10Base2 не дает возможности увеличить скорость передачи данных в сети до 100 Мбит/с. 10Base2 хорош для домашних сетей, где покупка концентратора по той или иной причине нежелательна.

Прочитайте соответствующий раздел (не входит в данную версию перевода документа) для ознакомления с другими типами ethernet кабелей.

2.0 Часто задаваемые вопросы (FAQ)

Вот несколько наиболее часто задаваемых вопросов о том, как использовать GNU/Linux для установки Ethernet соединения. Наиболее специфические вопросы отсортированы 'по производителю'. Вероятнее всего, что вопрос, на который вы хотите получить ответ уже был задан (и на него был получен ответ!) кем-то другим, даже если вам не удастся найти ответ на ваш вопрос в этом разделе, скорее всего вы найдете его в архиве новостей, например, http://www.dejanews.com.

2.1 Как я скажу Linux о том, какой драйвер использовать?

В большинстве GNU/Linux дистрибутивов драйверы представлены в виде загружаемых модулей, ими являются небольшие двоичные файлы, которые сливаются с операционной системой во время ее работы. Модуль дает операционной системе (ядру) информацию о том как управлять конкретной ethernet сетевой картой. В этом документе, указано имя модуля для каждой сетевой карты, эти данные находятся в специальном разделе. Узнав имя модуля, вам потребуется добавить его в файл /etc/modules.conf, так Linux узнает какой модуль нужно загрузить для вашей сетевой карты. Синтаксис команды, которую следует добавить в /etc/modules.conf похож на указанный ниже.

    alias eth0 module_name
    options module_name option1=value1 option2=value2 ...

Строка опций обычно требуется только для старого аппаратного обеспечения на базе шины ISA. Для систем с несколькими сетевыми картами чаще всего нужно использовать дополнительные строки c именами интерфейсов eth1, eth2 и т. д.

Модули обычно проживают в каталоге /lib/modules/, который далее ветвится согласно версии ядра (uname -r) и подсистеме (в нашем случае, net). Эти файлы кладутся сюда разработчиком дистрибутива или пользователем, когда после создания своего собственного ядра и модулей он говорит make modules_install (см. kernel howto для получения более детальной информации по этому вопросу).

Если вы создаете свое собственное ядро, вместо использования отдельных файлов, можно встроить все драйвера непосредственно в ядро. В этом случае, драйверы будут распознавать аппаратное обеспечение при загрузке операционной системы. Передача опций для драйверов поддерживается командной строкой ядра, появление которой предшествует загрузке системы (см. BootPrompt Howto для получения более детальной информации по этому вопросу). Пользователь выбирает какие драйвера использовать при выполнении команды make config (опять же, за деталями обращайтесь к kernel howto).

2.2 Какая сетевая карта подойдет для использования под управлением Linux?

Ответ на этот вопрос в значительной степени зависит от того, в каких целях вы соберетесь использовать свое сетевое соединение и какой объем трафика будет через него проходить.

Если один единственный пользователь будет время от времени использовать ftp или WWW соединение, тогда и старенькой ISA сетевой карты будет вполне достаточно, чтобы осчастливить вас (скорость 10Mbps, даже не 100).

Если вы намереваетесь создавать сервер и желательно, чтобы загрузка процессора при перемещении данных по сети была минимальной, вероятно, вам захочется использовать одну из PCI сетевых карт, которая использует чип с функцией, называемой bus-mastering (эта функция позволяет разгрузить CPU (ЦПУ), так как переносит основную нагрузку от операций ввода/вывода на процессор сетевой карты. Прим. перев.). К тому же, сейчас некоторые сетевые карты могут выполнять проверку контрольной суммы для пересылаемых по сети данных, это еще больше разгружает CPU (ЦПУ). Для получения более детальной информации по данному вопросу, смотрите:

    http://www.uow.edu.au/~andrewm/zerocopy.html

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

2.3 Альфа-версии драйверов - Где их взять и как использовать

Я слышал, что существует обновленный или предварительный/альфа (preliminary/alpha) драйвер для моей сетевой карты. Где я могу его достать? Новейшие из 'новых' драйверов можно найти на WWW сайте Дональда: www.scyld.com - он обновляется достаточно часто. Альтернативным и, возможно, более простым вариантом является визит по адресу:

    http://www.scyld.com/network/
чтобы определить местонахождение драйвера, который вы ищите. Старайтесь избегать использования WWW обозревателей, которые могут испортить исходник заменив табуляции пробелами или натворив чего-нибудь еще - используйте ftp или хотя бы FTP URL для скачивания). Теперь, если то, что вы скачали действительно альфа или pre-альфа драйвер, воспринимайте его таким, какой он есть. Другими словами, не жалуйтесь если вы не можете сообразить, что с ним делать. Если вы не в состоянии понять как его установить, тогда, скорее всего, вам и тестировать его не следует. Опять же, не жалуйтесь, если такой драйвер повесит вашу систему. Вместо этого, отправьте нам хорошо документированный bug report, а еще лучше, патч! Заметим, что некоторые 'пригодные к эксплуатации' экспериментальные/альфа драйвера были включены в стандартный набор исходников ядра. Когда вы скажете make config, то первое о чем вас спросят, это нужна ли ``Поддержка кода/драйверов, находящегося в разработке''. Вам надо будет ответить 'Y' если хотите, чтобы потом вам предложили установить какие-нибудь альфа/экспериментальные драйвера.

2.4 Использование более, чем одной Ethernet сетевой карты в системе

Что нужно сделать, чтобы Linux мог работать с двумя или более ethernet сетевыми картами?

Ответ зависит от того, является ли драйвер(а) загружаемым(и) модулем/модулями или встроен(ы) в ядро ОС. На сегодняшний день, большинство дистрибутивов GNU/Linux использует драйвера, являющиеся модулями. Существует один базовый вариант ядра, а драйвера, нужные для конкретной пользовательской системы загружаются тогда, когда процесс загрузки получает доступ к файлам модулей (обычно находящимся в /lib/modules/).

Если у вас PCI сетевая карта, PCI драйвера/модули должны распознать все установленные и поддерживаемые карты автоматически. Пользователь не должен работать с базой ввода/вывода или информацией о прерываниях. Такие действия нужны только если об этом сказано в документации к драйверу, чаще всего это требуется для работы с нестандартными машинами.

Ранние версии ядер имели лимит в 16 ethernet карт, которые могли быть распознаны при старте системы, для некоторых ISA модулей существовал лимит в 4 карты на загруженный модуль. При этом, в любой момент вы можете загрузить копию этого модуля под другим именем и получить поддержку еще четырех карт согласно лимиту или перекомпилировать модуль с поддержкой нужного количества сетевых карт.

2.4.1 Драйвер в качестве модуля

Настроить драйвера ISA карт таким образом достаточно сложно, вам потребуется разбираться с базовым адресом ввода/вывода сетевой карты, чтобы модуль знал где ее искать. Эта информация хранится в файле /etc/modules.conf.

К примеру, возьмем пользователя у которого две ISA сетевые карты NE2000, одна по адресу 0x300, другая 0x240. Чтобы все это заработало, в файл /etc/modules.conf нужно добавить следующие строки:

    alias eth0 ne
    alias eth1 ne
    options ne io=0x240,0x300

Указанные выше строки можно прокомментировать следующим образом: Если администратор (или ядро) скажет modprobe eth0 или modprobe eth1, для интерфейса eth0 или eth1 должен быть загружен драйвер с именем ne.o. Более того, когда модуль с именем ne.o будет загружен, он будет знать где искать сетевые карты (io=0x240,0x300). Отметим, что префикс 0x важен, так как часто используемые в мире DOS записи типа 300h не будут работать. Порядок записи адресов ввода/вывода имеет значение, так как именно на нем основывается отождествление имени интерфейса с физическим воплощением сетевой картой.

Большинство драйверов ISA сетевых карт, работая как модули, могут принимать разделенные запятой значения адресов ввода/вывода и таким образом управлять несколькими картами. Тем не менее, некоторые (еще более старые?) драйвера, такие как 3c501.o модуль, могут контролировать только одну карту на загруженный модуль. В этом случае, для того чтобы распознать обе сетевые карты, вы можете загрузить модуль дважды. Тогда файл /etc/modules.conf будет иметь следующий вид:

    alias eth0 3c501
    alias eth1 3c501
    options eth0 -o 3c501-0 io=0x280 irq=5
    options eth1 -o 3c501-1 io=0x300 irq=7

В этом примере опция -o указывает на то, что необходимо каждой копии модуля дать уникальное имя, так как невозможно использовать два модуля с одинаковыми именами. Опция irq= была использована для указания уникального номера канала прерывания для каждой сетевой карты. (Этот метод также применим при использовании модулей, понимающих адреса ввода/вывода, перечисленные через запятую, но подход будет менее эффективен, так как модуль будет загружен дважды, хотя он в этом и не нуждается.)

В качестве завершающего примера, возьмем пользователя с двумя картами, одной 3c503 и адресом 0x350, а другой SMC Elite16 (wd8013) и адресом 0x280. В результате:

    alias eth0 wd
    alias eth1 3c503
    options wd io=0x280
    options 3c503 io=0x350

Для PCI сетевых карт вам скорее всего потребуется указать только alias строки для того, чтобы установить соотношение между ethN интерфейсом и конкретным именем драйвера. Адреса ввода/вывода у PCI карт распознаются без проблем.

Доступные модули обычно хранятся в /lib/modules/`uname -r`/net, где uname -r команда, определяющая версию ядра (пример: 2.0.34). Вы можете ознакомиться с содержимым этого каталога и найти подходящий для вашей сетевой карты драйвер. Один раз по-человечески настроив modules.conf, вы сможете тестировать все используя:

    modprobe eth0
    modprobe eth1
    ...
    modprobe ethN-1

где 'N' - это количество ваших ethernet сетевых интерфейсов. Отметим, что имя интерфейса (ethX), устанавливаемое для драйвера ядром не зависит от имени, использованного в alias строке. Для более детального знакомства с проблемой почитайте: (не входит в данную версию перевода документа)

2.4.2 Драйвер, встроенный в ядро

По той причине, что процесс распознавания некоторых ISA карт замедляет работу компьютера, ядра до и включая версию 2.4 по умолчанию пытаются автоматически распознать только одну ISA сетевую карту. Так как больше не существует поставок ядер с большим количеством встроенных ISA драйверов, данное ограничение не распространяется на версию 2.6 и старше.

Что касается ядер версии 2.2 и старше, распознавание устройств при загрузке было разделено на безопасное и небезопасное, так что в результате безопасных (к примеру, PCI и EISA) попыток распознавания устройств, соответствующие карты будут найдены автоматически. Системы с более чем одной ethernet сетевой картой, среди которых есть хотя бы одна ISA сетевая карта, все еще должны делать одну из следующих вещей.

Существует два варианта активизации возможности автораспознавания второй (и третьей, и...) сетевой карты. Самый простой путь - это передать ядру несколько аргументов при загрузке, обычно это делается при помощи LILO. Попытка распознавания второй сетевой карты будет произведена после передачи ядру аргумента ether=0,0,eth1. В данном случае, интерфейсы eth0 и eth1 будут ассоциироваться в соответствии с тем порядком, в котором они были найдены при загрузке. Если нужно, чтобы карта с адресом ввода/вывода 0x300 ассоциировалась с eth0, а карта с адресом ввода/вывода 0x280 с eth1, тогда вы можете сказать:

    LILO: linux ether=5,0x300,eth0 ether=15,0x280,eth1

Команда ether= в качестве аргументов может принимать не только IRQ + I/O + имя интерфейса, как показано выше. Ознакомьтесь с (не входит в данную версию перевода документа) для получение полной информации об этой команде, специфических параметрах карт, а также советам по использованию LILO.

Второй (не рекомендуемый) путь заключается в том, что нужно отредактировать файл Space.c и заменить адрес ввода/вывода 0xffe0 на нуль. Запись 0xffe0 блокирует автораспознование данного типа устройства, а нулевое значение разрешает автораспознование.

2.5 Команда ether= не помогает. Почему?

Как было сказано выше, команда ether= работает только с драйверами, встроенными в ядро. Сейчас большинство дистрибутивов используют драйвера в виде модулей, поэтому команда ether= используется все реже. (Некоторая старая документация нуждается в обновлении, чтобы отражать данное изменение.) Если вы хотите использовать опции драйвера ethernet сетевой карты, работающего в виде модуля, то вы должны вносить изменения в файл /etc/modules.conf.

Если вы используете встроенный в ядро драйвер и добавили команду ether= в конфигурационный файл LILO, то изменения вступят в силу только после перезапуска lilo.

3.0 Disclaimer and Copyright

This document is not gospel. However, it is probably the most up to date info that you will be able to find. Nobody is responsible for what happens to your hardware but yourself. If your ethercard or any other hardware goes up in smoke (...nearly impossible!) we take no responsibility. ie. THE AUTHORS ARE NOT RESPONSIBLE FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMATION INCLUDED IN THIS DOCUMENT.

This document is Copyright (c) 1993-2000 by Paul Gortmaker. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that this copyright notice is included exactly as in the original, and that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions.

A hint to people considering doing a translation. First, translate the SGML source (available via FTP from the HowTo main site) so that you can then generate other output formats. Be sure to keep a copy of the original English SGML source that you translated from! When an updated HowTo is released, get the new SGML source for that version, and then a simple diff -u old.sgml new.sgml will show you exactly what has changed so that you can easily incorporate those changes into your translated SMGL source without having to re-read or re-translate everything.

If you are intending to incorporate this document into a published work, please make contact (via e-mail) so that you can be supplied with the most up to date information available. In the past, out of date versions of the Linux HowTo documents have been published, which caused the developers undue grief from being plagued with questions that were already answered in the up to date versions.


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2024 LinuxRSP