Acer 5051AWXMI Broadcom wireless using ndiswrapper

Red Hat Enterprise Linux 5 seems to run reasonably well on my laptop. However, the “default” driver that is installed for the laptop’s Broadcom wireless adapter just doesn’t seem to work. Thankfully, ndiswrapper can help remedy the situation. According to the web site, “ndiswrapper implements Windows kernel API and NDIS (Network Driver Interface Specification) API within Linux kernel. A Windows driver for wireless network card is then linked to this implementation so that the driver runs natively, as though it is in Windows, without binary emulation“.

It seems that what appears to be the exact same Acer 5051AWXMI model can come with either an Atheros or a Broadcom wireless adapter, so check to make sure which one you have (in my case I actually knew it was a Broadcom, but ran the following command just as a sanity check):

# lspci | grep Broadcom
Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

Installation steps:

  • Install the kernel headers appropriate for your system (required by ndiswrapper). The following command tells you what kernel release you currently have installed:
    # uname -r
    2.6.18-8.1.8.el5
    Then install the kernel headers:
    # yum install kernel-devel
  • Download ndiswrapper from here. Untar the downloaded file, and run ‘make’ and ‘make install’ according to the instructions in the INSTALL file.
  • Find and download the Windows driver from the Acer support web site. Unpack the driver zip file to a location of your choosing.
  • Locate the driver .inf file (bcmwl5.inf). In my case, this file was located in (I’m running the 64-bit version of RHEL5):
    /Broadcom_WLAN-Driver_4.100.15.7_XP.zip_FILES/ZR3_Broadcom_4.100.15.7_XP_WHQL/XP_4_100_15_6_WHQL/X64
  • To simplify the next step, cd into the directory that contains the .inf file, as shown above.
  • Now install the driver, using ndiswrapper:
    # ndiswrapper -i bcmwl5.inf
  • Check that the installation was successful:
    # ndiswrapper -l
    which should display:
    bcmwl5 : driver installed
    device (14E4:4318) present (alternate driver: bcm43xx)
  • Run the following command to update /etc/modprobe.conf with an alias for the wireless adapter. This also ensures that ndiswrapper, and the broadcom driver, is loaded at startup time:
    # ndiswrapper -m
    Check /etc/modprobe.conf to make sure you have an entry such as:
    alias eth1 ndiswrapper
    In my case I noticed that the default (non-working) broadcom driver continued to load at startup, so I commented it out in /etc/modprobe.conf:
    #alias eth1 bcm43xx
    And to be safe, I added an entry for the existing (non-working) driver to /etc/modprobe.d/blacklist and to /etc/modprobe.d/blacklist-compat:
    blacklist bcm43xx
  • Unload the existing (non-working) driver:
    # rmmod bcm43xx
  • Load the ndiswrapper module:
    # modprobe ndiswrapper
  • Check that all’s ok:
    # dmesg | grep ndiswrapper
    ndiswrapper version 1.47 loaded (smp=yes)
    ndiswrapper (link_pe_images:576): fixing KI_USER_SHARED_DATA address in the driver
    ndiswrapper: driver bcmwl5 (Broadcom,10/12/2006, 4.100.15.5) loaded
    ndiswrapper: using IRQ 66
    usbcore: registered new driver ndiswrapper
    ndiswrapper: changing interface name from ‘wlan0’ to ‘eth1’
  • Whoohooh!
  • And finally configure your wireless adapter with the appropriate settings for your wireless network. I quite like kwifimanager – which works fine under Gnome, but you could of course use other utilities such as system-config-network or iwconfig.

kwifimanager

%d bloggers like this: