James wrote:
> Hi all. I have spent several days trying to get my wireless card working all 
> to no avail. It seems that several people have had similar problems, and I am 
> hoping that someone can help me. The only thing that I have not tried yet is 
> the pcitools script, because I don't quite understand it fully, and it looks 
> like I could quickly make things worse by using it haphazardly. Here is what 
> I have done and the specs for my card-
> 
> I only boot into the 32-bit kernel by appending "kernel/unix" to the kernel 
> line in menu.lst.
> 
> I tried using ndis-1.1 first, but I got the 
> 
> <pre>"../if_ndis.c:3038: error: `DDI_NT_NET_WIFI' undeclared (first use in 
> this function)"</pre>
> 
> error. 
> I edited ndis-1.1/if_ndis and commented out the several lines pertaining to 
> DDI_NT_NET_WIFI. It then compiled fine, and left me with 'bcmndis' and 
> 'ndisapi'. I moved them to /kernel/drv and /kernel/misc respectivly and:
> <pre>
> bash-3.00# add_drv -i '"pci14e4,4311"' bcmndis
> devfsadm: driver failed to attach: bcmndis
> Warning: Driver (bcmndis) successfully added to system but failed to attach
> </pre> 
> 
> After reading 'man add_drv' I also copied bcmndis and ndisapi to 
> /platform/i86pc/kernel/drv and /platform/i86pc/kernel/misc respectivly. Same 
> results.
> 
> I tried the 32-bit sys and inf files from the link on the OpenSolaris ndis 
> page as well as ones specifically for my system that have worked historically 
> with ndiswrapper in slackware, gentoo and ubuntu linux. Same results. 
> 
> I read up and found that this 'DDI_NT_NET_WIFI' error came from using 
> ndis-1.1 in Solaris 10. So, I removed all of the copies of bcmndis and 
> ndisapi and executed:
> 
> <pre>rem_mod bcmndis</pre>
> 
> I used ndis-0.1 and an odd thing happened. I followed all of the above steps- 
> tried both sets of windows files, copied to /kernel/-- and 
> /platform/i86pc/kernel/--. When I 'made ndis' I ended up with a binary 
> 'ndis', not 'bcmndis'
> 
> <pre>
> 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
> ld -r -o ndis ndis.o
> bash-3.00#</pre>
> 
> I tried copying it to /kernel/drv as both ndis and bcmndis. I get the same 
> thing either way- won't load. Below is an example of what I mean.
> 
> Here is my card info (scanpci -v):
> <pre>
> pci bus 0x0003 cardnum 0x00 function 0x00: vendor 0x14e4 device 0x4311
>  Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card
>  CardVendor 0x103c card 0x1374 (Hewlett-Packard Company, Card unknown)
>   STATUS    0x0010  COMMAND 0x0006
>   CLASS     0x02 0x80 0x00  REVISION 0x02
>   BIST      0x00  HEADER 0x00  LATENCY 0x00  CACHE 0x10
>   BASE0     0x00000000b6000004  addr 0x00000000b6000000  MEM 64BIT
>   MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0xff
>   BYTE_0    0x01  BYTE_1  0x58  BYTE_2  0x03  BYTE_3  0x06
> </pre>
> Here is the entire process of making and installing the driver from start to 
> finish- using 0.1 and the inf/sys files from the opensolaris page for 
> 14e4,4311. The iconv step is omitted below, but was obviously done:
> <pre>
> 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 ../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 ../subr_pe.c -o subr_pe.o
> 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
> 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
> 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
> ld -r -o ndis 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 ndis /kernel/drv/ndis
> 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
> 
> bash-3.00# rem_drv ndis
> bash-3.00# rm /kernel/drv/ndis
> bash-3.00# cp ndis /kernel/drv/bcmndis
> bash-3.00# add_drv -i '"pci14e4,4311"' bcmndis
> devfsadm: driver failed to attach: bcmndis
> Warning: Driver (bcmndis) successfully added to system but failed to attach
> 
> bash-3.00# rem_drv bcmndis
> bash-3.00# rm /kernel/drv/bcmndis
> bash-3.00# cp ndis /platform/i86pc/kernel/drv/bcmndis
> bash-3.00# rm /kernel/misc/ndisapi
> bash-3.00# cp ndisapi /platform/i86pc/kernel/misc/ndisapi
> bash-3.00# add_drv -i '"pci14e4,4311"' bcmndis
> devfsadm: driver failed to attach: bcmndis
> Warning: Driver (bcmndis) successfully added to system but failed to attach
> 
> bash-3.00# rem_drv bcmndis
> bash-3.00# rm /platform/i86pc/kernel/drv/bcmndis
> bash-3.00# cp ndis /platform/i86pc/kernel/drv/ndis
> 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
> 
> bash-3.00#
> </pre>
> Any ideals? Any safe pcitool scripts I could copy paste? Need any more info?
> I appreciate the help!

 From output of scanpci, the bridge setting for bcm4311 looks correct, 
no need for pcitool's help, however, due to lack of some Windows APIs 
implementation, ndis-0.l doesn't support bcm4311, I suggest you install 
OpenSolaris latest build to get ndis1.1 support.

- Michael
>  
>  
> This message posted from opensolaris.org
> _______________________________________________
> laptop-discuss mailing list
> laptop-discuss at opensolaris.org

Reply via email to