So I've been trying to get my Broadcom 4328 wifi card working in OpenSolaris 
2008.11 for the past week now, and everything I have tried hasn't worked.  So 
here's the rundown of what I've done.

Do a Fresh install of OpenSolaris 2008.11 then install gcc, flex, and SUNWonbld.
Edit grub to boot to the 32 bit kernel
Reboot

mbynum at opensolaris:~# isainfo -k
 i386

mbynum at opensolaris:~# /usr/X11/bin/scanpci -v
 pci bus 0x000c cardnum 0x00 function 0x00: vendor 0x14e4 device 0x4328
 Broadcom Corporation BCM4328 802.11a/b/g/n
 CardVendor 0x1028 card 0x000a (Dell Wireless 1500 Draft 802.11n WLAN Mini-card)
  STATUS    0x0010  COMMAND 0x0046
  CLASS     0x02 0x80 0x00  REVISION 0x03
  BIST      0x00  HEADER 0x00  LATENCY 0x00  CACHE 0x10
  BASE0     0x00000000f1ffc004  addr 0x00000000f1ffc000  MEM 64BIT
  BASE2     0x00000000f000000c  addr 0x00000000f0000000  MEM PREFETCHABLE 64BIT
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x0a
  BYTE_0    0x01  BYTE_1  0x58  BYTE_2  0x02  BYTE_3  0xc6

Download and extract ndis-1.2.1 from from 
http://www.opensolaris.org/os/community/laptop/wireless/ndis/ndis-1.2.1.tar.gz 
Download and extract the bcm4328 driver sp39243.exe from
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&prodTypeId=321957&prodSeriesId=3442832&prodNameId=3442833&swEnvOID=1093&swLang=5&taskId=135&swItem=ob-60549-1&mode=3

cd to ndis-1.2.1/i386

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386$ iconv -f utf-16 -t ascii 
bcmwl5.inf > ndis.inf
mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386$ mv bcmwl5.sys ndis.sys

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386$ 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
/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
/usr/sfw/bin/gcc -I../include -O -o ndiscvt err.o inf.o ndiscvt.o subr_pe.o 
inf-token.o inf-parse.o

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386$ ./ndiscvt -i ndis.inf -s 
ndis.sys -o ndis.h
$Windows NT$

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386$ make ndis
/usr/sfw/bin/gcc -g -O2 -D_KERNEL -D__i386__ -I../include -I. -c ../if_ndis.c 
-o ndis.o
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER ndis.o
/usr/ccs/bin/ld -r -o bcmndis ndis.o
/opt/onbld/bin/i386/ctfmerge -l NDISWRAPPER -o bcmndis bcmndis
./ndiscvt -i ndis.inf -s ndis.sys -o ndis.h
$Windows NT$ 

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386$ su

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386# cp bcmndis /kernel/drv/bcmndis

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386# 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
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER subr_ndis.o
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER subr_ntoskrnl.o
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER subr_pe.o
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER subr_hal.o
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER kern_ndis.o
/opt/onbld/bin/i386/ctfconvert -g -l NDISWRAPPER kern_windrv.o
/usr/ccs/bin/ld -r -o ndisapi subr_ndis.o subr_ntoskrnl.o subr_pe.o subr_hal.o  
kern_ndis.o kern_windrv.o
/opt/onbld/bin/i386/ctfmerge -l NDISWRAPPER -o ndisapi subr_ndis.o 
subr_ntoskrnl.o subr_pe.o subr_hal.o  kern_ndis.o kern_windrv.o

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386# cp ndisapi /kernel/misc/ndisapi

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386#  add_drv -i '"pci14e4,4328"' 
bcmndis
devfsadm: driver failed to attach: bcmndis
Warning: Driver (bcmndis) successfully added to system but failed to attach

mbynum at opensolaris:~/Desktop/ndis-1.2.1/i386# ifconfig bcmndis0 plumb
ifconfig: cannot open link "bcmndis0": DLPI link does not exist

Reboot to 32 bit kernel

mbynum at opensolaris:~# ifconfig bcmndis0 plumb
ifconfig: cannot open link "bcmndis0": DLPI link does not exist

So that's where I'm at I've also tried using ndis-1.2 with the fix for 
if_ndis.c from http://blogs.sun.com/fintanr/entry/adventures_in_macbook_land 
but got the same errors in the end.  I've also tried using Dell's driver 
R151517.exe instead of sp39243.exe (I have a XPS M1330) to no avail.  I think 
I'm close but I'm not sure what to do now.
-- 
This message posted from opensolaris.org

Reply via email to