>с прерыванием разобрался, можно выключить в ядре apic и карта встает куда
>надо. lavr огромное спасибо за ответ, неоднократно уже выручал.
>
>Но основная проблема продолжает присутствовать: карта не работает. Не работает в FBSD
>5.4, 5.3. Но однозначно работает в 5.1. После установки чистого дистрибута
>пересобираю ядро с device sbni, перегрузка и интересный факт:работает все корректно
>только в 5.1, благо дистрибут остался. Хотя канальный уровень устанваливает. Т.е.
>индикация что несущая найдена есть, лампочки горят. Ни ping'ов, ни arp'ов.
>Понимаю конечно что карты уже древние как мир, но все-таки теперь
>любопытство гложет.
Я столкнулся с этой же проблемой в FreeBSD6. Карточка работает, но sbniconfig говорит, что все приходящие и уходящие с неё пакеты имеют не правильную контрольную сумму.
Обращение в техподдержку ничего не дало, так как оказалось, что фирмы Гранч как таковой уже нет. Единственное что они мне посоветовали, это поменять оборудование.
Тогда я решил сам посмотреть исходные коды драйвера. Оказалось, что после FreeBSD 5.1 в драйвер были внесены изменения в функцию вычисления контрольной суммы (http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/sbni/if_sbni.c.diff?r1=1.10&r2=1.11&f=H). Благо в исходниках драйвера была этаже функция реализованная на C а не на ASM. После подмены функции в драйвере проблема пропала, но сетевая карта стала немного медленнее, в среднем, при выполнении ping, задержка увеличилась на 0,5 мс.
Резюме:
Для того чтобы заработала sbni 12 в FreeBSD 6 надо следующее
1) Добавить в конфиг ядра
device sbni
2) Добавить в /boot/device.hints (для isa карт)
hint.sbni.0.at="isa"
hint.sbni.0.irq="НОМЕР ПРЕРЫВАНИЯ (например 5)"
hint.sbni.0.port="НОМЕР ПОРТА (например 0x210)"
hint.sbni.0.flags="0"
3) Удалить из /sys/dev/sbni/if_sbni.c строчку
#define ASM_CRC 1
4) Пересобрать ядро