How to Enable Broadcom Wireless BCM 4313 on OpenBSD

driversndiswrappersopenbsdwifi

Is there any hack/tip/trick to make this specific Broadcom Wireless work with OpenBSD?

After digging some FreeBSD-wireless threads and OpenBSD-tech/OpenBSD-misc, I noticed that adding the PCI vendor to any specific driver will not work since this specific device have differences on it´s hardware construction compared with Broadcom 4312 or Broadcom 4318.

Implementing this Broadcom Wireless driver will need a huge effort to get done, and many of the users are using wifi dongles or converting ndis (Windows XP version) drivers to get wireless conectivity.

Are there any patches floating through the internet that would enable ndis on OpenBSD, so I could "convert" this driver as a workaround like the one used on FreeBSD?

EDIT1 – The intent here is not to "stick with FreeBSD" or question the OpenBSD binary policy, and that is why i´m looking for guidance. A 3rd part port of ndis to OpenBSD could be a solution…

  • This thread, shows that adding the PCI Vendor id will just probe the hardware, but will not work.
  • This other thread, gives some insight about the different construction of the bcm4313 card.

Best Answer

I had the same question, and found the existing answers and comments here a little uninformative. After doing a little more research and asking on IRC, I found a more pragmatic answer.

Broadcom historically hasn't cooperated much with efforts to open-source drivers, although it's been changing its approach recently. Because of this, there are still some Broadcom wireless cards without reliable open source drivers, which many operating systems won't support. There's a good Wikipedia article listing which wireless cards common OSs support.

The issue for people with non-supported cards (like us) is that, in monolithic kernels like most 'nix OSs, device drivers are a part of the kernel. Because of this, they can only be installed when the kernel is compiled.

So, the tl;dr is that you'd have to take a driver that supported this wireless card (from FreeBSD, for example), and compile it into the kernel. This means a lot of compilation time and potential headache - you're actually building the operating system itself before you install it. Alternatively, you can buy a cheap USB wireless adapter for less than $10. Just make sure to first check that it's supported!

Related Question