Realtek 8180 wireless and FreeBSD

This is a short howto on how to get your Realtek 8180 (chipset) based wireless cards working with FreeBSD. I had an LG 2100P, and using the ndis emulation present in the 5.3 BSD kernel, I had no trouble getting the card to work. It's a mini-howto, and I've tried to reduce the steps as much as possible.

  1. Download the latest Windows drivers for your chipset from the Realtek website. The link changes often, so I'm not providing a direct link here.

  2. Set up FreeBSD. Once you've got the system working and able to boot, proceed with the next steps. Get familiar with the ports collection, and it's helpful if you update the ports database too.

  3. Make the ndis kernel module (/usr/src/sys/modules/ndis)

  4. Now you have to make the if_ndis kernel module. To do this, cp over your .sys and .inf files from the driver zip you downloaded to the if_ndis kerenel module directory (/usr/src/sys/modules/if_ndis). Now cd to the directory, and do this in a shell:

    ndiscvt -i .inf -s .sys -o ndis_driver_data.h

    Then, make and install the if_ndis module.

  5. That's it. To test the configuration, load the kernel modules dynamically so:

    kld_load ndis kld_load if_ndis

    An ndis0 device should show up in ifconfig.

  6. If it does, try assigning a static ip and pinging your router. If that works, and you use DHCP to assign ips from your router, you can add the line...

    ifconfig_ndis0="DHCP"

    ...to your /etc/rc.conf to get dhcp working on ndis0. To load the kernel modules at next boot, add the lines...

    ndis_load="YES" if_ndis_load="YES"

    ...to /boot/loader.conf.

    You may have to set the ssid earlier by using a line such as...

    ifconfig ndis0 ssid

    ... in a startup script somewhere in /etc (I named mine /etc/start.if_ndis0) to get dhcp to work correctly.

  7. That's it. Please post any feeback in the comments.

Submitted by jim on Sat, 2005-11-12 19:08.
is it not kldload rather than kld_load? Newbies like me will trip up on that! Thanks for the howto.