Configurar tarjetas Broadcom en OpenSolaris usando Ndiswrapper

En este articulo mostraremos como hacer funcionar esas fastidiosas tarjetas wifi de broadcom mediante ndiswrapper,  la cual es una herramienta que nos permite usar los drivers de las tarjetas para  windows  en nuestra plataforma libre ya sea GNU/Linux o como en esta ocasión en OpenSolaris.

Antes que nada instalamos el paquete SUNWonbld, el cual encontramos aqui, y lo instalamos de la siguiente manera

$ bzip2 -dc SUNWonbld.i386.tar.bz2 | tar xf –
$ pkgadd -d onbld SUNWonbld

En OpenSolaris  el ndiswrapper se llama Solaris NDIS Wrapper Toolkit.  para instalarlo necesitamos algunas dependencias como gcc y flex, asi que procedemos a instalarlas, La forma mas fácil de hacerlo es por medio del Pakage Manager (System –> Administration –> Package Manager ), Buscamos gcc y lo marcamos para instalar. Lo mismo para el paquete flexlex

Ahora necesitamos los drivers de windows, el archivo .inf y .sys estos archivos se pueden encontrar desempaquetando el archivo .exe  del instalador que descargamos en la pagina del fabricante, en este caso son bcmwl5.sys y bcmwl5.inf.
Por lo general los archivos .inf viene en formato UNICODE, sin embargo  el Solaris NDIS Wrapper Toolkit necesita tenerlos en formato ASCII, para ello lo convertiremos de la siguiente manera:

iconv -f utf-16 -t ascii bcmwl5.inf > ndis.inf
Renombramos el archivo .sys (en este caso bcmwl5.sys a ndis.sys)

Ya tenemos todo listo, lo único que nos hace falta es descarga nuestra herramienta e instalarla:

La descargamos desde aca
gzip -dc ndis-0.1.tar.gz | tar x – // lo extraemos
cd ndis-0.1/i386 // en esta ubicacion copiamos ndis.sys y ndis.inf que obtuvimos anteriormente
make ndiscvt
./ndiscvt -i ndis.inf -s ndis.sys -o ndis.h
make ndis

ahora como su o usando el comando pfexec hacemos lo siguiente:

cp bcmndis /kernel/drv/bcmndis
exit
make ndisapi
cp ndisapi /kernel/misc

Ahora cargamos el modulo ndisapi y el driver vinculado a la tarjeta  de la siguiente forma (como root o pfexec):

add_drv -i ‘”Vendor ID,Device ID”‘ bcmndis

Para obtener el vendor id y el device id ejecutamos el comando:

pfexec scanpci -v (lista todos los dispositivos pci del pc)

En este caso son vendor 0x14e4 device 0x4318, por lo tanto nuestro comando quedaria asi:

add_drv -i ‘”pci14e4,4318″‘ bcmndis nota: omitimos los ox

Por ultimo levantamos la interfaz:

pfexec ifconfig bcmndis0 plumb
pfexec svcadm restart nwam

y listo  si no ha salido algun errorcillo tendremos nuestra interfaz bcmndis0

One Comment