Попала к нам материнская плата INTEL: Intel® Server Board S3420GP
На «мамке» две встроенные сетевые карты:
- Integrated LAN Embedded Intel® 82574L Gigabit Ethernet Controller
- Integrated LAN Embedded Intel® 82578DM Gigabit Ethernet Controller
Установили FreeBSD 7.2 (в нашем случае это RELEASE), но из сетевых карт FreeBSD сервер видит только одну и это 82574L, а вот 82578DM не видит…
Смотрим вывод команды и ищем класс «network»:
pciconf -lv
none@pci0:0:25:0: class=0x020000 card=0x34ec8086 chip=0x10ef8086 rev=0x05 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet em0@pci0:2:0:0: class=0x020000 card=0x34ec8086 chip=0x10d38086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet
Как говорится что и требовалось доказать…. Она есть, но стандартные драйвера от em не подошли, вот она и «висит» как none
Что с этим делать ? Ответ один: искать дрова.
«Гугл в руки» и вперед ! Дрова найдены. Вот они: em-6.9.20.tar.gz.
Теперь можно приступать к установке драйверов на FreeBSD сервер.
Распаковываем архив:
tar -xzf em-6.9.20.tar.gz
Переходим в папку с исходками:
cd em-6.9.20/src
Собираем это дело:
make
После окончания сборки в папке появится файл if_em.ko, вот он то нам и нужен.
Переносим его в /boot/modules:
mv if_em.ko /boot/modules
Далее ставим его на загрузку при буте сервера, добавляем строчку в /boot/loader.conf:
echo ‘if_em_load=»YES»‘ >> /boot/loader.conf
Затем, чтобы при пересборке ядра родной драйвер em не собирался добавим в /etc/make.conf:
echo ‘WITHOUT_MODULES=em’ >> /etc/make.conf
Теперь нужно пересобрать ядро без поддержки em, т.е. убрать или закоментарить в ядре строчку:
device em # Intel PRO/1000 Gigabit Ethernet Family
После пересборки ядра делаем серверу перезагрузку:
reboot
Сервер поднялся, посмотрим же снова:
pciconf -lv
em0@pci0:0:25:0: class=0x020000 card=0x34ec8086 chip=0x10ef8086 rev=0x05 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet em1@pci0:2:0:0: class=0x020000 card=0x34ec8086 chip=0x10d38086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet
А вот и наша вторая сетевая карта !
Теперь 82578DM это em0, а 82574L это em1.
Посмотрим вывод ifconfig:
ifconfig -a
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>metric 0 mtu 1500 options=399b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_UCAST,WOL_MCAST,WOL_MAGIC> ether 00:15:17:ae:0c:d9 media: Ethernet autoselect (1000baseTX ) status: active em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=399b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_UCAST,WOL_MCAST,WOL_MAGIC> ether 00:15:17:ae:0c:d8 media: Ethernet autoselect (1000baseTX ) status: active
Ссылки:
Драйвер для em от Yandex: http://people.yandex-team.ru/~wawa/
Источник статьи