Thanks Michael. I had tried using OpenSolaris's ndis-1.1 before, but compile of
bcmndis failed. I tried again, with no success, as follows. I am attaching
every step so that someone can notice if I just made a stupid mistake:
bash-3.00# rm /kernel/drv/ndis /kernel/drv/bcmndis /kernel/misc/ndisapi \
/platform/x86pc/kernel/misc/ndisapi /platform/x86pc/kernel/drv/ndis \
/platform/x86pc/kernel/drv/bcmndis
bash-3.00# rem_drv bcmndis
Driver (bcmndis) not installed.
bash-3.00# rem_drv ndis
Driver (ndis) not installed.
bash-3.00# rm -r ndis-0.1
bash-3.00# gunzip Desktop/ndis-1.1.tar.gz && tar -x Desktop/ndis-1.1.tar
bash-3.00# cd ndis-1.1/i386
bash-3.00# mv /Desktop/sp31463.exe ./
bash-3.00# cabextract sp31463.exe
Extracting cabinet: sp31463.exe
extracting bcm43xx.cat
extracting bcm43xxa.cat
extracting bcmwl5.inf
extracting bcmwl5.sys
extracting bcmwl5a.ini
extracting bcmwld2k.exe
extracting bcmwlhoa.ini
extracting bcmwlhom.exe
extracting bcmwlhom.ini
extracting bcmwlntp.sys
extracting bcmwlu00.exe
extracting data1.cab
extracting data1.hdr
extracting data2.cab
extracting ikernel.ex_
extracting is.exe
extracting launcher.ini
extracting layout.bin
extracting setup.exe
extracting Setup.ini
extracting setup.inx
extracting setup.iss
extracting setupa.ini
extracting setupd.ini
extracting sp31463.cva
All done, no errors.
bash-3.00# mv bcmwl5.sys ndis.sys
bash-3.00# iconv -c -f utf16 -t ascii bcmwl5.inf >ndis.inf
bash-3.00# head -3 ndis.inf
;;
;; bcmwl5.inf
;;
bash-3.00# make ndiscvt
/usr/sfw/bin/gcc -I../include -O -c ../err.c -o err.o
/usr/sfw/bin/gcc -I../include -O -c ../err.c -o err.o
/usr/sfw/bin/gcc -I../include -O -c ../inf.c -o inf.o
/usr/sfw/bin/gcc -I../include -O -c ../inf.c -o inf.o
/usr/sfw/bin/gcc -I../include -O -c ../ndiscvt.c -o ndiscvt.o
/usr/sfw/bin/gcc -I../include -O -c ../ndiscvt.c -o ndiscvt.o
/usr/sfw/bin/gcc -I../include -O -c ../subr_pe.c -o subr_pe.o
/usr/sfw/bin/gcc -I../include -O -c ../subr_pe.c -o subr_pe.o
/usr/ccs/bin/yacc -d -v ../inf-parse.y
conflicts: 1 reduce/reduce
mv y.tab.c inf-parse.c
/usr/sfw/bin/gcc -I../include -O -c inf-parse.c -o inf-parse.o
/usr/ccs/bin/yacc -d -v ../inf-parse.y
conflicts: 1 reduce/reduce
mv y.tab.c inf-parse.c
/usr/sfw/bin/gcc -I../include -O -c inf-parse.c -o inf-parse.o
rm -f inf-token.c
/usr/sfw/bin/flex -t ../inf-token.l > inf-token.c
/usr/sfw/bin/gcc -I../include -O -c inf-token.c -o inf-token.o
rm -f inf-token.c
/usr/sfw/bin/flex -t ../inf-token.l > inf-token.c
/usr/sfw/bin/gcc -I../include -O -c inf-token.c -o inf-token.o
/usr/sfw/bin/gcc -I../include -O -o ndiscvt err.o inf.o ndiscvt.o subr_pe.o
inf-token.o inf-parse.o
/usr/sfw/bin/gcc -I../include -O -o ndiscvt err.o inf.o ndiscvt.o subr_pe.o
inf-token.o inf-parse.o
bash-3.00# ./ndiscvt -i ndis.inf -s ndis.sys -o ndis.h
$Windows NT$
bash-3.00# make ndis
/usr/sfw/bin/gcc -g -O2 -D_KERNEL -D__i386__ -I../include -I. -c ../if_ndis.c
-o ndis.o
../if_ndis.c: In function `ndis_attach':
../if_ndis.c:3038: error: `DDI_NT_NET_WIFI' undeclared (first use in this
function)
../if_ndis.c:3038: error: (Each undeclared identifier is reported only once
../if_ndis.c:3038: error: for each function it appears in.)
*** Error code 1
make: Fatal error: Command failed for target `ndis'
bash-3.00# gedit ../if_ndis.c
and I comment out:
/*
(void) snprintf(strbuf, sizeof (strbuf), "%s%d",
NDIS_DRIVER_NAME, instance);
err = ddi_create_minor_node(devinfo, strbuf, S_IFCHR,
instance + 1, DDI_NT_NET_WIFI, 0);
if (err != DDI_SUCCESS)
NDISDBG((CE_WARN, "ndis_attach(): ddi_create_minor_node()
failed\n"));
*/
and
bash-3.00# make ndis
/usr/sfw/bin/gcc -g -O2 -D_KERNEL -D__i386__ -I../include -I. -c ../if_ndis.c
-o ndis.o
/usr/ccs/bin/ld -r -o bcmndis ndis.o
--
bash-3.00# make ndisapi
/usr/sfw/bin/gcc -g -O -D_KERNEL -D__i386__ -I../include -c ../subr_ndis.c -o
subr_ndis.o
/usr/sfw/bin/gcc -g -O -D_KERNEL -D__i386__ -I../include -c ../subr_ntoskrnl.c
-o subr_ntoskrnl.o
/usr/sfw/bin/gcc -g -O -D_KERNEL -D__i386__ -I../include -c ../subr_pe.c -o
subr_pe.o
/usr/sfw/bin/gcc -g -O -D_KERNEL -D__i386__ -I../include -c ../subr_hal.c -o
subr_hal.o
/usr/sfw/bin/gcc -g -O -D_KERNEL -D__i386__ -I../include -c ../kern_ndis.c -o
kern_ndis.o
/usr/sfw/bin/gcc -g -O -D_KERNEL -D__i386__ -I../include -c ../kern_windrv.c -o
kern_windrv.o
ld -r -o ndisapi subr_ndis.o subr_ntoskrnl.o subr_pe.o subr_hal.o kern_ndis.o
kern_windrv.o
bash-3.00# cp bcmndis /kernel/drv/bcmndis
bash-3.00# cp ndisapi /kernel/misc/ndisapi
bash-3.00# add_drv -i '"pci14e4,4311"' ndis
devfsadm: driver failed to attach: ndis
Warning: Driver (ndis) successfully added to system but failed to attach
Any other ideals? Yes, the switch is on :-)
James
This message posted from opensolaris.org