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
