Freebsd как установить драйвер сетевой карты



Freebsd как установить драйвер сетевой карты

В наши дни мы не представляем себе компьютера без сетевого подключения. Добавление и настройка сетевой карты это обычная задача любого администратора FreeBSD.

В первую очередь определите тип используемой карты (PCI или ISA), модель карты и используемый в ней чип. FreeBSD поддерживает многие PCI и ISA карты. Обратитесь к Списку поддерживаемого оборудования вашего релиза чтобы узнать, поддерживается ли карта.

Как только вы убедились, что карта поддерживается, потребуется определить подходящий драйвер. В файле /usr/src/sys/i386/conf/LINT находится список драйверов сетевых интерфейсов с информацией о поддерживаемых чипсетах/картах. Если вы сомневаетесь в том, какой драйвер подойдет, прочтите страницу справочника к драйверу. Страница справочника содержит больше информации о поддерживаемом оборудовании и даже о проблемах, которые могут возникнуть.

Если ваша карта широко распространена, вам скорее всего не потребуется долго искать драйвер. Драйверы для широко распространенных карт представлены в ядре GENERIC , так что ваша карта должна определиться при загрузке, примерно так:

dc0: port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: on dc0 ukphy0: on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: on dc1 ukphy1: on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

В этом примере две карты используют имеющийся в системе драйвер dc (4) .

Как только для сетевой карты загружен подходящий драйвер, ее потребуется настроить. Как и многое другое, сетевая карта может быть настроена во время установки с помощью sysinstall .

Для вывода информации о настройке сетевых интерфейсов системы, введите следующую команду:

% ifconfig dc0: flags=8843 mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect (100baseTX ) status: active dc1: flags=8843 mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags=8810

mtu 1500 lo0: flags=8049 mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010

В этом примере были показаны следующие устройства:

dc0 : первый Ethernet интерфейс

dc1 : второй Ethernet интерфейс

lp0 : интерфейс параллельного порта

lo0 : устройство loopback

tun0 : туннельное устройство, используемое ppp

Для присвоения имени сетевой карте FreeBSD использует имя драйвера и порядковый номер, в котором карта обнаруживается при инициализации устройств. Например, sis2 это третья сетевая карта, использующая драйвер sis (4) .

В этом примере, устройство dc0 включено и работает. Ключевые признаки таковы:

UP означает, что карта настроена и готова.

У карты есть интернет ( inet ) адрес (в данном случае 192.168.1.3 ).

Установлена маска подсети ( netmask ; 0xffffff00 , то же, что и 255.255.255.0 ).

Широковещательный адрес (в данном случае, 192.168.1.255 ).

Значение MAC адреса карты ( ether ) 00:a0:cc:da:da:da

Выбор физической среды передачи данных в режиме автовыбора ( media: Ethernet autoselect (100baseTX ) ). Мы видим, что dc1 была настроена для работы с 10baseT/UTP . За более подробной информацией о доступных драйверу типах среды обращайтесь к странице справочника.

Статус соединения ( status ) active , т.е. несущая обнаружена. Для dc1 , мы видим status: no carrier . Это нормально, когда ethernet кабель не подключен к карте.

dc0: flags=8843
mtu 1500 ether 00:a0:cc:da:da:da

это означает, что карта не была настроена.

Читайте также:  Скачать драйвера для клавиатуры оклик гейминг

Для настройки карты вам потребуются привилегии пользователя root . Настройка сетевой карты может быть выполнена из командной строки с помощью ifconfig (8) , но вам потребуется делать это после каждой перезагрузки системы. Подходящее место для настройки сетевых карт это файл /etc/rc.conf .

Откройте /etc/rc.conf в текстовом редакторе. Вам потребуется добавить строку для каждой сетевой карты, имеющейся в системе, например, в нашем случае, было добавлено две строки:

ifconfig_dc0=»inet 192.168.1.3 netmask 255.255.255.0″ ifconfig_dc1=»inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP»

Замените dc0 , dc1 , и так далее на соответствующие имена ваших карт, подставьте соответствующие адреса. Обратитесь к страницам справочника сетевой карты и ifconfig (8) , за подробной информацией о доступных опциях и к странице справочника rc.conf (5) за дополнительной информацией о синтаксисе /etc/rc.conf .

Если вы настроили сетевую карту в процессе установки системы, некоторые строки, касающиеся сетевой карты, могут уже присутствовать. Внимательно проверьте /etc/rc.conf перед добавлением каких-либо строк.

Отредактируйте также файл /etc/hosts для добавления имен и IP адресов различных компьютеров сети, если их еще там нет. За дополнительной информацией обращайтесь к man.hosts.5; и к /usr/share/examples/etc/hosts .

Как только вы внесете необходимые изменения в /etc/rc.conf , перегрузите компьютер. Изменения настроек интерфейсов будут применены, кроме того будет проверена правильность настроек.

Как только система перезагрузится, проверьте сетевые интерфейсы.

Для проверки правильности настройки сетевой карты, попробуйте выполнить ping для самого интерфейса, а затем для другой машины в локальной сети.

Сначала проверьте локальный интерфейс:

% ping -c5 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms — 192.168.1.3 ping statistics — 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

Затем проверьте другую машину в локальной сети:

% ping -c5 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms — 192.168.1.2 ping statistics — 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

Вы можете также использовать имя машины вместо 192.168.1.2 , если настроен файл /etc/hosts .

Решение проблем с аппаратным и программным обеспечением всегда вызывает сложности, которые можно уменьшить, проверив сначала самые простые варианты. Подключен ли сетевой кабель? Правильно ли настроены сетевые сервисы? Правильно ли настроен межсетевой экран? Поддерживается ли используемая карта в FreeBSD? Всегда проверяйте информацию об оборудовании перед отправкой сообщения об ошибке. Обновите FreeBSD до последней версии STABLE. Просмотрите архивы списков рассылки, или поищите информацию в интернет.

Некоторые пользователи встречаются с несколькими «device timeouts», что нормально для некоторых сетевых карт. Если это продолжается и надоедает, убедитесь, что устройство не конфликтует с другим устройством. Внимательно проверьте подключение кабеля. Возможно также, что вам просто надо установить другую карту.

Время от времени, пользователи видят несколько ошибок « watchdog timeout ». Первое, что требуется сделать, это проверить сетевой кабель. Многие карты требуют поддержки Bus Mastering слотом PCI. На некоторых старых материнских платах, только один PCI слот имеет такую поддержку (обычно слот 0). Сверьтесь с документацией на сетевую карту и материнскую плату, чтобы определить, может ли это быть проблемой.

Читайте также:  Как правильно установить драйвера видеокарт для windows 7

Сообщение « No route to host » появляются, если система не в состоянии доставить пакеты к хосту назначения. Это может случиться, если не определен маршрут по умолчанию, или кабель не подключен. Проверьте вывод команды netstat -rn и убедитесь, что к соответствующему хосту есть работающий маршрут. Если это не так, прочтите Chapter 19 .

Сообщения « ping: sendto: Permission denied » зачастую появляются при неправильно настроенном межсетевом экране. Если ipfw включен в ядре, но правила не определены, правило по умолчанию блокирует весь трафик, даже запросы ping! Прочтите Section 10.8 с более подробной информацией.

Иногда карты недостаточна, или ниже среднего. В этих случаях лучше всего изменить режим выбора типа подключения с autoselect на правильный тип. Обычно это работает для большинства оборудования, но не может решить проблему во всех случаях. Проверьте еще раз настройки сети и прочтите страницу руководства tuning (7) .

Источник

FreeBSD 9.x Установка драйверов на примере установки Intel PRO/1000 PT Dual Port Server Adapter EXPI9402PTBLK PCI-E x4 чип 82571GB. Ремонт, тестирование Intel сетевой карты

Скачиваем драйвера с сайта производителя Intel. Карта установлена в PCI-E слот x16. Проверяем, что при загрузке увидела система:

Интересует то, что с классом network. Сетевая на материнке называется nfe0. Всего 5 сетевых интерфейсов, но ещё 2х интерфейсов не видно -это установленная сдвоенная Intel карта.

Выше видим 2 каких-то none:

none это неправильно, нужно установить драйвера, которых у производителя материнки под FreeBSD не было. К текущему вопросу это не относится и три года с этим всё жило прекрасно.

Intel сетевой карты не видно, так быть не должно.

Скачанный архив с драйверами распаковываем в какую либо папку:

Делаем всё, как написано в README файле
/drivers/eth82571GB/em-7.4.2/*README

В /boot/kernel появится *if_em.ko. Но от туда, по некоторой рекомендации if_em.ko переместил в директорию /boot/modules

В файл /boot/loader.conf прописываем строку:
if_em_load=»YES»

Перезагрузился, но Вы не спешите, ибо воз и ныне там, система не видит вновь установленную карту.

Заходим в /etc/make.conf прописываем строку:
WITHOUT_MODULES=em -компилировать ядро без стандартного модуля «em» штатного сетевого драйвера intel

Идём в конфигурацию ядра:
/usr/src/sys/платформа/conf/myKERNEL и для надёжности комментируем строку «device em»:

Компилируем ядро:
# cd /usr/src
# make buildkernel KERNCONF=myKERNEL

Ждём минут 40-60

Устанавливаем ядро:
# make installkernel KERNCONF=myKERNEL

Перезагружаемся:
# shutdown -r now

Смотрим дату и время установленного ядра и убеждаемся, что дата и время текущее:
# uname -a

Ну теперь точно всё получится… перезагружаемся и… не получилось, установленную сетевую сдвоенную карту система не видит.

На пробы поиски раздумья ушли сутки, заглянул в BIOS
Отключил всё, что не использовалось, в том числе и встроенную сетевую карту, поменял некоторые параметры, и…
Чудо свершилось:

Всё отлично, Intel PRO/1000 PT Dual Port Server Adapter EXPI9402PTBLK установлена.

Пробовал вернуть настройки BIOS обратно как было, чтобы сетевая снова не заработала и точно определить, в чём же было дело. Номер не прошёл. Из настроек менял, в том числе, настройки SLI, приоритетность запуска видеокарты. На материнке два PCI-E x16. В одном временно установлена видеокарта, в другом EXPI9402PTBLK сетевая карта.

Делаю вывод, настройки BIOS были не причём, но их переброс помог FreeBSD 9.2 увидеть сетевую карту. Какие именно настройки, выяснить не удалось. Возможно перезагрузка через полное отключение питания помогла.

Переходим к настройке и тестированию.
Карта была куплена с рук, продавец заверял что новая. Оказалась неновая и с отломанным C243 чип 0402 конденсатором в цепи развязывающего трансформатора одного из портов. В сумраке коридора х… что разглядишь. Продавец перец тёртый). Утверждал, что уже несколько таких же карт до этого продал. Хорошо, обнаружил дефект при более тщательном осмотре. Надеюсь именно проблемы с одним из двух сетевых каналов и были причиной продажи. Внешне сетевая карта выглядит не поддельной, надпись Intel, Yottamark в наличии, внешний вид совпадает с оригинальным.

Вместе с C243 меняем, обязательно, сразу все 4ре конденсатора: C234, C240, C241, C243. Пайка без свинцовая, плата многослойная, температуру жала паяльника нужно выставлять 380. При проверке отпаянного конденсатора ёмкость оказалась 10n -десять нано фарад. Под рукой оказалась катушка с таким номиналом, но в 0805 корпусе, разницу в размерах видим на фотографии. Получилось так, что рядом с контактной площадкой конденсаторов были переходные отверстия и после лужения они стали отличной контактной площадкой. Поэтому с 0805 размером вместо 0402 проблем не возникло.

Заодно проверяем защитные диоды/супрессоры/стабилитроны на пробой, это DP200, DP201, DP202, DP203 -3304N. Замер сопротивления между общей шиной -куда припаяны R203, R207, R212, R213 и выводами 1,3,7,9 DP200, DP201 сборок защитных диодов должен показать 75Ом. И соответственно замер сопротивления между общей шиной -куда припаяны R217, R218, R220, R228 и выводами 1,3,7,9 DP202, DP203 сборок защитных диодов должен показать 75Ом. Всё оказалось в порядке.

Тестирование попробовал произвести с помощью iperf.
На машине с тестируемой сетевой картой и удалённой на 0.5 метра, устанавливаем iperf:

# cd /usr/ports/benchmarks/iperf
# make config
# make
# make install
# rehash

На удалённой машине настраиваем ipwf и запускаем сервер:
Настройка в меру подробных, для проверки работоспособности, правил ipfw:

$ 00040 allow ip from any to $ via $
$ 00041 allow ip from $ to any via $

Настраиваем правила ipfw на машине с тестируемой картой:

$ 00040 allow ip from aa.bb.cc.dd to me via $
$ 00041 allow ip from me to aa.bb.cc.dd via $

Соединяем пачкордом удалённую машину с запущенным сервером с первым испытываемым сетевым интерфейсом и запускаем клиента:

Выше тест Realtec сетевых карт.

Iperf на 15.07.2015 оказалась недоработанной. По разному ведёт себя сервер, по началу была демонстрация активности, затем пропала. Ему пришлось открывать все порты иначе соединение не устанавливалось. Не работала опция -t, когда заработала, то пропала реальная передача данных и демонстрация активности стала такой:

Перезапуска машин сервера и клиента не помог, iperf больше не работал, вывод был вышеприведённый, обмена не было.
В общем iperf 2.0.5 то-ли сырой порт, то-ли не отлаженный под FreeBSD, ну очень подозрительный. Удаляем.

Воспользовался sftp клиентом для заливки и скачивания массива данных 8G через испытуемые интерфейсы. Конечно это не полноценная проверка, но проблем не наблюдалось.

Источник

Поделиться с друзьями
Комп ремонт
Adblock
detector