Костромин Виктор Алексеевич
Шрифт:
Нужно сказать для начала, что на русском языке имеется (по крайней мере в электронном варианте, доступном в Интернете) несколько замечательных руководств, в которых подробно разбираются все аспекты подключения вашего компьютера как к локальной сети, так и к Интернету. Самым лучшим руководством является, безусловно, книга О. Кирха [П1.2]. Приводимое ниже описание действий, выполняемых при подключении к локальной сети, представляет собой конспект этих материалов.
13.1. Подготовка к выходу в сеть
13.1.1 Драйверы сетевых устройств в ядре
Естественно, что для того, чтобы работать с локальной сетью, необходимо иметь сетевую карту (плату) и подключение к сети. Я не буду объяснять, как физически подключиться к сети, предполагая, что вы уже установили сетевую карту в ваш компьютер и соединили его (кабелем или витой парой) с существующей сетью.
Заметим, что в каталоге /dev нет специального файла для сетевой карты. В Linux сетевые устройства создаются динамически, и поэтому не требуют наличия соответствующих файлов в каталоге /dev.
Прежде, чем пытаться подключаться к сети, вы должны убедиться, что установленное в вашей системе ядро скомпилировано с поддержкой сетевых возможностей. О. Кирх утверждает, что признаком этого является наличие каталога /proc/net. Но можно посмотреть и протокол загрузки системы (файл /var/log/dmesg), в котором должны найтись примерно такие строки:
Далее нужно убедиться, что в состав ядра включен драйвер для вашей сетевой карты. Вообще-то, ядра, включаемые в стандартные дистрибутивы, обеспечивают поддержку большинства распространенных сетевых плат (что, конечно, увеличивает объем ядра). Так что с очень высокой вероятностью нужный драйвер входит в ядро. В процессе загрузки ядра выполняется процедура автоматического обнаружения сетевой карты. Если такое обнаружение было успешным, то в файле /var/log/dmesg вы найдете соответствующие сообщения. У меня они имеют вид:
Если карта не обнаружена, то вам придется перекомпилировать ядро (или поменять карту). Перекомпиляция ядра может иметь смысл и в том случае, если вы хотите удалить из ядра ненужные драйверы устройств, которые вы не используете. Но все же в большинстве случаев стандартное ядро успешно решает задачи поддержки сетевых возможностей, так что на вопросе перекомпиляции ядра сейчас мы останавливаться не будем. Рассмотрим только вопрос о динамическом подключении драйвера сетевой карты.
13.1.2 Динамическое подключение драйверов
Для динамического подключения драйвера надо подгрузить модуль ядра, отвечающий за взаимодействие с данным сетевым устройством (например, сетевой картой) и передать ему параметры устройства. Сделать это можно с помощью команды insmod, вызов которой осуществляется следующим образом:
Например, для сетевой карты можно выполнить команду следующего вида:
Здесь 2.2.х надо заменить на версию установленного у вас ядра, а вместо net.o надо подставить имя модуля, соответствующего вашей сетевой плате. Поскольку у меня была плата 3Com, я выбрал 3с509.o (посмотрите перечень в подкаталоге /lib/modules/2.2.x/net/).
Замечание:
В последних версиях Linux вместо insmod используется modprobe.
Ядро именует драйверы Ethernet как eth0, eth1 и т. д., так что для подключения, например, второй сетевой карты надо в этом примере eth0 заменить на eth1.
Кстати, ядро не может автоматически определить наличие двух сетевых адаптеров. В этом случае вам придется произвести некоторые дополнительные настройки. Однако обсуждение этого вопроса выходит за рамки данной книги, ищите ответы в книге О. Кирха и других источниках.
В некоторых случаях в команде требуется дополнительно задать номер порта и номер используемого прерывания, а также некоторые другие опции, но подробнее об этом см. на странице man insmod.
Аналогично, для подключения модуля, обеспечивающего работу с модемом по протоколу PPP, надо дать команду