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

Reply via email to