Opensolaris & wifi Broadcom BCM4312 on Dell Vostro 1710 0
The steps of the procedure can be found in various places but I like to summarize the information my own way.
Starting point : OpenSolaris 2008.11 snv_101a_rc1b X86 The procedure seems to be valid for build 101 to 105 (Crossbow requires some small changes)
Problem : there are no native drivers available for (Open)Solaris so we need to use NDIS, essentially a way to use the Windows drivers on a Solaris box.
Procedure :
- Make sure that you are running a 32-bits OpenSolaris kernel. If you have a 64-bits capable CPU, OpenSolaris will boot a 64-bits kernel by default.
# isainfo -v
32-bit i386 applications
sse4.1 ssse3 ahf cx16 mon sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpuIf you get the same output, go to the next point, you are already running a 32-bits kernel. If you see output that relates to “amd64″, this means that you are running a 64-bits kernel. In that case, you need to update the GRUB boot loader so that it adds a choice for you to boot a 32-bits kernel.
# bootadm list-menu
The location for the active GRUB menu is: /rpool/boot/grub/menu.lst
default 0
timeout 3
0 OpenSolaris 2008.11 snv_101a_rc1b X86
In my case, the GRUB boot menu is /rpool/boot/grub/menu.lst
Update the menu with the following lines :
# cat /rpool/boot/grub/menu.lst
splashimage /boot/grub/splash.xpm.gz
background 215ECA
timeout 3
default 0
#———- ADDED BY BOOTADM - DO NOT EDIT ———-
title OpenSolaris 2008.11 snv_101a_rc1b X86
findroot (pool_rpool,0,a)
bootfs rpool/ROOT/opensolaris
splashimage /boot/solaris.xpm
foreground d25f00
background 115d93
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics
module$ /platform/i86pc/$ISADIR/boot_archive
#———————END BOOTADM——————–
#———- ADDED BY JC - DO NOT EDIT ———-
title OpenSolaris 2008.11 snv_101a_rc1b X86 32 bits
kernel$ /platform/i86pc/kernel/unix -B $ZFS-BOOTFS,console=graphics
module$ /platform/i86pc/boot_archive
#———————END JC——————–
Then reboot your box & choose to boot a 32-bits kernel - Fetch all the required packages & files and store them in a common directory
- Broadcom driver : From the HP support site
- Last version of the NDIS driver : on the OpenSolaris NDIS page
- The flex package : ( You need to be connected to the Internet )
# pkg install -v pkg:/SUNWflexlex - The onbld package : From Sun download center
Bunzip, untar & add the pkg using# pkgadd -d .
- Broadcom driver : From the HP support site
- Unzip the ndis archive
# gzip -dc ndis-1.2.1.tar.gz | tar xvf -
- Extract the Windows driver archive, rename the relevant files & convert the .inf file to ascii instead of UTF encoding
-
# mv Bcm_wlan_drivers.exe Bcm_wlan_drivers.exe.7z
# p7zip -d Bcm_wlan_drivers.exe.7z
# mv bcmwl5.sys ndis-1.2.1/i386/ndis.sys
# iconv -futf-16 -t ascii bcmwl5.inf > ndis-1.2.1/i386/ndis.inf
# cd ndis-1.2.1/i386/
-
- Follow the building procedure :
-
# make ndiscvt
# ./ndiscvt -i ndis.inf -s ndis.sys -o ndis.h
# make ndis
# cp bcmndis /kernel/drv/bcmndis
# make ndisapi
# cp ndisapi /kernel/misc
-
- Find the identifier of your network card : in my case “pci14e4,4315”
# scanpci -v
pci bus 0×0006 cardnum 0×00 function 0×00: vendor 0×14e4 device 0×4315
Broadcom Corporation BCM4312 802.11b/g
CardVendor 0×1028 card 0×000b (Dell Wireless 1395 WLAN Mini-Card)
- Load the driver module
# add_drv -i ‘”pci14e4,4315″‘ bcmndis
- Check that OpenSolaris now shows your newly configured network card
# ifconfig -a
(…)
bcmndis0: flags=201004803mtu 1500 index 3
inet 0.0.0.0 netmask ff000000
ether 0:22:5f:2e:9a:d1
- Start configuring with Nwam, wificonfig, …
Sources :
OpenSolaris
T: OpenSolaris