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!
 
 
This message posted from opensolaris.org

Reply via email to