FreeBSD 7.1 i386 Dlink de220e ISA network card
C трудом заработала под Windows XP как ne2000-совместимая.
ndisgen ./dlink.inf ./dlink.sys
Выдает ошибку на последнем шаге:
Generating Makefile... done.
Building kernel module... /usr/share/misc/windrv_stub.c:124: warning: redundant redeclaration of 'device_probe_desc'
./device_if.h:27: warning: previous declaration of 'device_probe_desc' was here
/usr/share/misc/windrv_stub.c:125: error: redefinition of typedef 'device_probe_t'
./device_if.h:29: error: previous declaration of 'device_probe_t' was here
build failed. Exiting.
Открываю windrv_stub.c и удаляю строки с «redundant redeclaration»:
extern struct kobjop_desc device_probe_desc;
typedef int device_probe_t(device_t dev);
После этого ndisgen завершается нормально. Однако после загрузки созданного модуля dlink.ko карта не подает признаков жизни в dmesg.
Господа, что посоветуете, кроме как выкинуть карту? Хочется сделать правильно все и не потакать трудностям.
Может как-то использовать ndiscvt по старинке, чтобы не вырывать куски из исходников, а аккуратно задать параметры компиляции чтоб он не ругался на переопределение?
P.S. Видел этот же баг с PCI картой тут http://foro.elhacker.net/mac_os_x_bsd/broadcom_freebsd-t248626.0.html Это дает надежду на то что баг не связан с ISA, а просто программный недочет...