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
