Заметим, что в каталоге /dev нет специального файла для сетевой карты. В Linux сетевые устройства создаются динамически, и поэтому не требуют наличия соответствующих файлов в каталоге /dev.
Прежде, чем пытаться подключаться к сети, вы должны убедиться, что установленное в вашей системе ядро скомпилировано с поддержкой сетевых возможностей. О. Кирх утверждает, что признаком этого является наличие каталога /proc/net. Но можно посмотреть и протокол загрузки системы (файл /var/log/dmesg), в котором должны найтись примерно такие строки:
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 8192 bind 8192)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
Далее нужно убедиться, что в состав ядра включен драйвер для вашей сетевой карты. Вообще-то, ядра, включаемые в стандартные дистрибутивы, обеспечивают поддержку большинства распространенных сетевых плат (что, конечно, увеличивает объем ядра). Так что с очень высокой вероятностью нужный драйвер входит в ядро. В процессе загрузки ядра выполняется процедура автоматического обнаружения сетевой карты. Если такое обнаружение было успешным, то в файле /var/log/dmesg вы найдете соответствующие сообщения. У меня они имеют вид:
eth0: 3Com PCI 3c905C Tornado at 0x4000, 00:01:02:b4:6c:65, IRQ 9
product code 'DU' rev 00.11 date 09-02-00
8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
MII transceiver found at address 24, status 782d.
Enabling bus-master transmits and whole-frame receives.
Если карта не обнаружена, то вам придется перекомпилировать ядро (или поменять карту). Перекомпиляция ядра может иметь смысл и в том случае, если вы хотите удалить из ядра ненужные драйверы устройств, которые вы не используете. Но все же в большинстве случаев стандартное ядро успешно решает задачи поддержки сетевых возможностей, так что на вопросе перекомпиляции ядра сейчас мы останавливаться не будем. Рассмотрим только вопрос о динамическом подключении драйвера сетевой карты.
13.1.2 Динамическое подключение драйверов
Для динамического подключения драйвера надо подгрузить модуль ядра, отвечающий за взаимодействие с данным сетевым устройством (например, сетевой картой) и передать ему параметры устройства. Сделать это можно с помощью команды insmod, вызов которой осуществляется следующим образом:
[root]# /sbin/insmod [-fkmpsxXv] [-o имя_устройства] файл_драйвера
Например, для сетевой карты можно выполнить команду следующего вида:
[root]# /sbin/insmod -o eth0 /lib/modules/2.2.x/net/net.o
Здесь 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, надо дать команду
[root]# /sbin/insmod /lib/modules/2.2.11/net/ppp.o
(драйвер должен существовать и располагаться в указанном каталоге).
13.1.3 Получение сетевого адреса и установка ПО
Поскольку вы собираетесь устанавливать машину с Linux в уже существующую сеть, то следующим вашим шагом при подключении к сети должно стать обращение к администратору сети за получением сетевого адреса. Точнее, вы должны получить следующую информацию:
• IP адрес вашего компьютера;
• IP адрес сети;
• широковещательный IP-адрес;
• имя домена, в который будет включен ваш компьютер;
• маску подсети; IP адрес маршрутизатора (router);
• IP адрес сервера имен (DNS-сервера).
Заодно согласуйте с администратором сетевое имя, которое вы выбрали для своего компьютера (чтобы избежать его совпадения с именем какого-то из уже включенных в сеть компьютеров).
Далее необходимо проверить, что у вас установлено программное обеспечение, необходимое для подключения к сети, а именно, пакет net-tools. Для проверки воспользуйтесь командой
Читать дальше