View Poll Results: Did this work for you?

Voters
119. You may not vote on this poll
  • Yes

    94 78.99%
  • No

    25 21.01%
Page 1 of 42 12311 ... LastLast
Results 1 to 10 of 416

Thread: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

  1. #1
    Join Date
    Jun 2007
    Location
    Melbourne, Australia
    Beans
    1,171

    How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    This How-To describes how to get WiFi working with the Broadcom 1390 WLAN offered in many Dell and HP laptops using ndiswrapper. Many of us use ndiswrapper as an alternative to the native drivers (b43), as we feel the native drivers have not quite reached a point where they compare with ndiswrapper, usually this relates to only being able to use 802.11b connections (11Mbps) as opposed to 802.11g (54Mbps).

    The how-to has been tested and found to work on both AMD64 and i386 installs of Ubuntu Hardy Heron, and should also work on all future versions. If you have any troubles, leave a post and I'll do my best to sort them out.

    NOTICE: There is no 'linux-ubuntu-modules' meta-package that can be used to install new versions of this package whenever a kernel update is pushed through. Therefore, everytime you install a new kernel, make sure to also install the corresponding linux-ubuntu-modules package, for example:
    Code:
    sudo apt-get install linux-ubuntu-modules-2.6.24-19-generic


    The How-To is loosely based on Paperdiesel's How-To for earlier versions of Ubuntu which can be found here. If you are running a version older than Hardy, you should refer to paperdiesel's How-To.

    DISCLAIMER It's important to note that many people struggle to get wireless working simply because they have unsuccessfully tried a variety of methods and left their system in a shambles. If you've been playing around with alternative methods there's a good chance you won't be able to get this to work until you reverse any previous changes you may have made. It's perhaps best to come straight to this How-To after a fresh install.

    To check that you have the same card that this how-to is written for, run the following command:
    Code:
    lspci -nn | grep 14e4
    and you should see something similar to the following:
    Code:
    05:00.0 Network controller [0280]: Broadcom Corporation BCM94311MCG wlan mini-PCI [14e4:4311] (rev 01)
    The section in bold is the important part. If that part doesn't match then you will need a different driver to use with ndiswrapper. The how-to should still be valid however! If you don't have the same WiFi card, have a look at the list of supported cards here, and it should point you in the right direction for a driver to use.

    STEP 1: OBTAINING THE REQUIRED PACKAGES
    Thankfully, Hardy (and onwards) includes a new enough version of ndiswrapper to remove the need for installing it from source. This saves a lot of trouble during the install process.

    For the install process I find it best to create a separate working directory to get all this done in. You can use whatever directory you'd like so long as you're consistent, if you're unsure copy the way I've done it.

    Most of the work from here on will be done from the command-line, so open up a terminal (Applications > Accessories > Terminal), and use it to create your working directory:
    Code:
    mkdir wireless-install
    cd wireless-install
    First we need to obtain the correct XP driver (Vista drivers WILL NOT WORK with ndiswrapper) for this chipset, and also install some extra packages. This is easy if you have access to the internet (via a wired connection or otherwise):
    Code:
    wget http://ftp.us.dell.com/network/R151519.EXE
    NOTE: If lspci above showed that you had a different chipset, this driver won't work. You're welcome to try using a different driver, however ndiswrapper is a temperamental thing, so I can't guarantee it will work with just any driver. A google search for the number relating to your card, ie. 14e4:4315 or 14e4:4318, and ndiswrapper should return a driver you can use quite quickly.

    Next install ndiswrapper. The latest version is available from the repositories which is a rather nice change for those of us who are used to the need to recompile ndiswrapper on every kernel change! Although, on that note, the most recent kernel update didn't install the modules that were needed alongside it, so I'll include the installation here.
    Code:
    sudo apt-get update
    sudo apt-get install ndiswrapper-common ndiswrapper-utils-1.9
    sudo apt-get install linux-ubuntu-modules-$(uname -r)
    If you have no internet access on your Ubuntu machine then you'll need to get the appropriate driver from here and copy it to your working directory (~/wireless-install). The packages can be installed from your trusty LiveCD:
    Code:
    sudo mount /dev/cdrom /cdrom
    sudo apt-cdrom add -m
    sudo apt-get update
    sudo apt-get install ndiswrapper-common ndiswrapper-utils linux-ubuntu-modules-$(uname -r)

    STEP 2: PREVENTING THE NATIVE MODULES FROM INTERFERING WITH NDISWRAPPER

    NOTE FOR ANYONE WHO IS NOT USING A FRESH INSTALL
    If you used ndiswrapper in Gutsy and upgraded directly to Hardy (or tried another method before coming here), odds are good that you'll have a line in the /etc/modules file that loads ndiswrapper, in order for this part of the how-to to work you'll need to remove that line:
    Code:
    gksudo gedit /etc/modules
    #if under KDE, replace gksudo with kdesudo and gedit with kedit
    And delete any line(s) that contain "ndiswrapper"
    END NOTE

    This process is not quite as simple as it has been in the past due to the different native modules and how they interact with each other. So firstly we're going to blacklist a few things by adding them to the /etc/modprobe.d/blacklist file:
    Code:
    echo blacklist b43 | sudo tee -a /etc/modprobe.d/blacklist
    echo blacklist b43legacy | sudo tee -a /etc/modprobe.d/blacklist
    echo blacklist wl | sudo tee -a /etc/modprobe.d/blacklist
    NOTE: You can do this with a text editor, using "gksudo gedit /etc/modprobe.d/blacklist" for example. I like the fancy way because it means you can copy and paste just one command and removes the chance of typos.

    NOTE II: The wl module is a new addition and is intended for the 4315 chipset, but there have been reports of it also being loaded for the 4311 chipset (it doesn't appear to work at all, however). If anyone is interested, b43 (and b43legacy) are the in-kernel drivers, these are the supported open source drivers (which I've never found to work particularly well). wl however appears to be Ubuntu only and is found in ubuntu-restricted-extras, so if you don't have this package installed, there's no need to blacklist this module, however doing so can't harm anything.

    We also need to add a bootscript to load a couple of modules in an order that suits us. The reason being that the ssb module takes control of our card, thus preventing ndiswrapper from controlling it, however ssb is required by the b44 driver, which handles wired broadcom cards, so we can't just blacklist it. If you would like (and know how to), you can easily use a new script to do this, however the easiest way I find is to add it to /etc/rc.local. To do this we need to edit the file:
    Code:
    gksudo gedit /etc/rc.local
    #if under KDE, replace gksudo with kdesudo and gedit with kedit
    Feel free to replace gedit with the text editor of your choice (kate, mousepad, emacs, nano, vi, bluefish, etc), then add the following to lines to the end of the script, just before the "exit 0":
    Code:
    modprobe -r b44
    modprobe -r ssb
    modprobe ndiswrapper
    modprobe b44
    To give you an idea, my /etc/rc.local now looks like this:
    Code:
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    ## Loading ndiswrapper and b44 in correct order
    modprobe -r b44
    modprobe -r ssb
    modprobe ndiswrapper
    modprobe b44
    
    exit 0

    STEP 3: INSTALLING THE DRIVER WITH NDISWRAPPER

    Now we're going to use the driver we downloaded from the Dell website (note that it doesn't matter if your laptop is not a Dell, this driver should still work if you have the same chipset) to give ndiswrapper all it needs to access our card:
    Code:
    cd ~/wireless-install/
    unzip -a R151519.EXE -d R151519/
    cd R151519/DRIVER/
    sudo ndiswrapper -i bcmwl5.inf
    NOTE: Make sure you use the right case, in Linux driver and Driver are very different to DRIVER.
    NOTE II: For those of you who have funky fonts in the forum, the driver is a lower caps BCMWL5.inf. Some confusion has occurred as to whether the "L" is a "1" or an "I", hopefully that clarifies!

    And that's it! You should be just a reboot away from having a working wireless card:
    Code:
    sudo shutdown -r now
    If you'd like to verify it's working properly without the need for a reboot, try the following series of commands. If your laptop has a wifi-light it should light up after you "modprobe ndiswrapper".
    Code:
    sudo rmmod b43 b44 ssb
    sudo modprobe ndiswrapper
    sudo modprobe b44
    NOTE: This is essentially what the script we added to /etc/rc.local does, only that script doesn't need to remove the b43 module as it is blacklisted and should not be loaded to start with.


    CLEANING UP

    Once you're happy everything is working well, you can safely remove the working directory:
    Code:
    rm -r ~/wireless-install
    Or you could keep it on hand for future reference!


    TROUBLESHOOTING
    If you have any trouble with the How-To or it doesn't work as expected please post in the thread. I check the thread quite often and I'm always happy to help. It's also possible there's something I've missed which I can then incorporate into the How-To for everyone else to benefit from. If you're posting seeking help, please include the outputs of the following commands:
    Code:
    lspci -nn | grep 14e4
    ndiswrapper -l
    ndiswrapper -v
    lsmod | grep b43
    lsmod | grep ndiswrapper
    ls -l /etc/rc.local
    cat /etc/rc.local
    lshw -C network
    as well as anything else you think is relevant. Please include long code outputs in [code] tags (the # button in the advanced edit view) so they're easier to read.


    UNINSTALLING

    If for some reason you'd like to remove everything that this how-to has done, it's rather simple:
    Undo the file changes we made:
    Code:
    gksudo gedit /etc/modprobe.d/blacklist
    # Remove the line we added: "blacklist b43"
    gksudo gedit /etc/rc.local
    # Remove the four modprobe lines we added
    Remove the driver we told ndiswrapper to use:
    Code:
    sudo modprobe -r ndiswrapper
    sudo ndiswrapper -e bcmwl5
    Remove ndiswrapper:
    Code:
    sudo apt-get remove ndiswrapper-common ndiswrapper-utils


    Changelog:
    21/04/08: Made minor clarifications to layout
    22/04/08: Added Troubleshooting section
    26/04/08: Added redundancy for users with no broadcom wired card
    26/04/08: Added note for Gutsy upgraders
    01/05/08: Added blacklist for b43legacy
    10/05/08: Fixed old link
    11/05/08: Added link to NDISwrapper wiki (list of supported cards)
    04/06/08: Added extra package to install
    08/07/08: Updated troubleshooting
    24/07/08: Added redundancy for KDE users
    09/09/09: Added code to blacklist wl (meant for 4315 chipset and included in ubuntu-restricted-extras)
    11/11/09: Cleaned up the introduction a bit
    Last edited by jw5801; November 11th, 2009 at 05:20 AM.

  2. #2
    Join Date
    Nov 2007
    Beans
    136
    Distro
    Xubuntu 12.04 Precise Pangolin

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Worked like a charm on my Compaq/HP lappy.
    When Ubuntu moves into The Cloud, I'll be moving out of Ubuntu. The Cloud means loss of control, and control is why I switched to Linux in the first place.

  3. #3
    Join Date
    Apr 2008
    Beans
    6

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Didn't work for my on Dell e1505.

  4. #4
    Join Date
    Apr 2008
    Beans
    6

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Well, after running

    Code:
    modprobe -r b44
    modprobe -r b43
    modprobe -r ssb
    modprobe -r ndiswrapper
    modprobe ndiswrapper
    modprobe b44
    my internet finally worked after 3 days of googling tutorials lol

  5. #5
    Join Date
    Jun 2007
    Location
    Melbourne, Australia
    Beans
    1,171

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Quote Originally Posted by Champers View Post
    Well, after running

    Code:
    modprobe -r b44
    modprobe -r b43
    modprobe -r ssb
    modprobe -r ndiswrapper
    modprobe ndiswrapper
    modprobe b44
    my internet finally worked after 3 days of googling tutorials lol
    That's exactly what the startup script in /etc/rc.local does, only without removing b43 since b43 is blacklisted and won't be loaded anyway. Does it still work on reboot, or do you need to manually run those commands each time you log in?

  6. #6
    Join Date
    Jan 2008
    Location
    Latvia
    Beans
    6
    Distro
    Ubuntu 9.10 Karmic Koala

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    thanks a lot! works on BCM94311MCG

  7. #7
    Join Date
    Mar 2008
    Beans
    5

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    i followed all the instructions but the wireless card is not workin yet.
    I have a Hp pavillion dv9410us with hardy 64 bit
    My card is a [14e4:4311] (rev 02).
    this is the result of the command in the troubleshooting section:


    davidefergnani@davidefergnani-laptop:~$ lscpi -nn | grep 14e4
    bash: lscpi: command not found
    davidefergnani@davidefergnani-laptop:~$ ndiswrapper -l
    bcmwl5 : driver installed
    device (14E4:4311) present (alternate driver: ssb)
    davidefergnani@davidefergnani-laptop:~$ lsmod | grep b43
    davidefergnani@davidefergnani-laptop:~$ lsmod | grep ndiswrapper
    ndiswrapper 243872 0
    usbcore 169904 5 ndiswrapper,uvcvideo,ohci_hcd,ehci_hcd
    davidefergnani@davidefergnani-laptop:~$ ls -l /etc/rc.local



    i dont understand why is not working. i followed all the instructions

  8. #8
    Join Date
    Jun 2007
    Location
    Melbourne, Australia
    Beans
    1,171

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Quote Originally Posted by davidefergnani View Post
    i followed all the instructions but the wireless card is not workin yet.
    I have a Hp pavillion dv9410us with hardy 64 bit
    My card is a [14e4:4311] (rev 02).
    this is the result of the command in the troubleshooting section:


    davidefergnani@davidefergnani-laptop:~$ lscpi -nn | grep 14e4
    bash: lscpi: command not found
    davidefergnani@davidefergnani-laptop:~$ ndiswrapper -l
    bcmwl5 : driver installed
    device (14E4:4311) present (alternate driver: ssb)
    davidefergnani@davidefergnani-laptop:~$ lsmod | grep b43
    davidefergnani@davidefergnani-laptop:~$ lsmod | grep ndiswrapper
    ndiswrapper 243872 0
    usbcore 169904 5 ndiswrapper,uvcvideo,ohci_hcd,ehci_hcd
    davidefergnani@davidefergnani-laptop:~$ ls -l /etc/rc.local



    i dont understand why is not working. i followed all the instructions
    Ok, can you include the output from the last command? Also what happens when you try the commands to load ndiswrapper:
    Code:
    sudo modprobe -r b44
    sudo modprobe -r ssb
    sudo modprobe ndiswrapper
    Does that make your wifi light come on? What happens when you run:
    Code:
    iwlist scan
    ifconfig

  9. #9
    Join Date
    Sep 2007
    Location
    Italy
    Beans
    4

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Quote Originally Posted by jw5801 View Post
    This How-To describes how to get WiFi working with the Broadcom 1390 WLAN offered in many Dell and HP laptops using ndiswrapper. Many of us use ndiswrapper as an alternative to the native drivers (b43), as we feel the native drivers have no quite reached a point where they compare with ndiswrapper, usually this relates to only being able to use 802.11b connections (11Mbps) as opposed to 802.11g (54Mbps).

    The how-to has been tested on an AMD64 install of the Hardy Heron Release Candidate (and I'm sure will soon be tested on an i386 install).

    THIS HOW-TO IS FOR UBUNTU HARDY HERON (8.04) ONLY. The How-To is loosely based on Paperdiesel's How-To for earlier versions of Ubuntu which can be found here. If you are not running Hardy, then this How-To will not work. You should refer to paperdiesel's How-To.

    DISCLAIMER It's important to note that many people struggle to get wireless working simply because they have unsuccessfully tried a variety of methods and left their system in a shambles. If you've been playing around with alternative methods there's a good chance you won't be able to get this to work until you reverse any previous changes you may have made. It's perhaps best to come straight to this How-To after a fresh install.

    To check that you have the same card that this how-to is written for, run the following command:
    Code:
    lspci -nn | grep 14e4
    and you should see something similar to the following:
    Code:
    05:00.0 Network controller [0280]: Broadcom Corporation BCM94311MCG wlan mini-PCI [14e4:4311] (rev 01)
    The section in bold is the important part. If that part doesn't match then you will need a different driver to use with ndiswrapper. The how-to should still be valid however!


    STEP 1: OBTAINING THE REQUIRED PACKAGES
    Thankfully, Hardy includes a new enough version of ndiswrapper to remove the need for installing it from source. This saves a lot of trouble during the install process.

    For the install process I find it best to create a separate working directory to get all this done in. You can use whatever directory you'd like so long as you're consistent, if you're unsure copy the way I've done it.

    Most of the work from here on will be done from the command-line, so open up a terminal (Applications > Accessories > Terminal), and use it to create your working directory:
    Code:
    mkdir wireless-install
    cd wireless-install
    First we need to obtain the correct XP driver (Vista drivers WILL NOT WORK with ndiswrapper) for this chipset, and also install some extra packages. This is easy if you have access to the internet (via a wired connection or otherwise):
    Code:
    wget http://ftp.us.dell.com/network/R151519.EXE
    NOTE: If lspci above showed that you had a different chipset, this driver won't work. You're welcome to try using a different driver, however ndiswrapper is a temperamental thing, so I can't guarantee it will work with just any driver. A google search for the number relating to your card, ie. 14e4:4315 or 14e4:4318, and ndiswrapper should return a driver you can use quite quickly.

    Next install ndiswrapper. The latest version is available from the Hardy repositories which is a rather nice change for those of us who are used to the need to recompile ndiswrapper on every kernel change!
    Code:
    sudo apt-get update
    sudo apt-get install ndiswrapper-common ndiswrapper-utils-1.9
    If you have no internet access on your Ubuntu machine then you'll need to get the appropriate driver from here and copy it to your working directory (~/wireless-install). The packages can be installed from your trusty Hardy LiveCD (a Gutsy, or any other, LiveCD WILL NOT WORK):
    Code:
    sudo apt-cdrom add
    #When prompted, insert your Hardy CD and press enter
    sudo apt-get update
    sudo apt-get install ndiswrapper-common ndiswrapper-utils-1.9
    NOTE: Hardy behaved oddly with this so I had to work around a bit to get the above to work, it wasn't as simple as it should be. If anyone else has this issue I'll edit the above to use my workaround and post a bug report (I'll probably do the second anyway).


    STEP 2: PREVENTING THE NATIVE MODULES FROM INTERFERING WITH NDISWRAPPER
    This process is not quite as simple as it has been in the past due to the different native modules and how they interact with each other. So firstly we're going to blacklist a few things by adding them to the /etc/modprobe.d/blacklist file:
    NOTE: You can do this with a text editor, using "gksudo gedit /etc/modprobe.d/blacklist" for example. I just like to do it the fancy way! So if you copy and paste the line below, you can't go wrong!
    Code:
    echo blacklist b43 | sudo tee -a /etc/modprobe.d/blacklist
    We also need to add a bootscript to load a couple of modules in an order that suits us. The reason being that the ssb module takes control of our card, thus preventing ndiswrapper from controlling it, however ssb is required by the b44 driver, which handles wired broadcom cards, so we can't just blacklist it. If you would like (and know how to), you can easily use a new script to do this, however the easiest way I find is to add it to /etc/rc.local. To do this we need to edit the file:
    Code:
    gksudo gedit /etc/rc.local
    Feel free to replace gedit with the text editor of your choice (kate, mousepad, emacs, nano, vi, bluefish, etc), then add the following to lines to the end of the script, just before the "exit 0":
    Code:
    modprobe -r b44
    modprobe -r ssb
    modprobe ndiswrapper
    modprobe b44
    To give you an idea, my /etc/rc.local now looks like this:
    Code:
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    ## Loading ndiswrapper and b44 in correct order
    modprobe -r b44
    modprobe -r ssb
    modprobe ndiswrapper
    modprobe b44
    
    exit 0

    STEP 3: INSTALLING THE DRIVER WITH NDISWRAPPER

    Now we're going to use the driver we downloaded from the Dell website (note that it doesn't matter if your laptop is not a Dell, this driver should still work if you have the same chipset) to give ndiswrapper all it needs to access our card:
    Code:
    cd ~/wireless-install/
    unzip -a R151519.EXE -d R151519/
    cd R151519/DRIVER/
    sudo ndiswrapper -i bcmwl5.inf
    NOTE: Make sure you use the right case, in Linux driver and Driver very different to DRIVER.

    And that's it! You should be just a reboot away from having a working wireless card:
    Code:
    sudo shutdown -r now
    If you'd like to verify it's working properly without the need for a reboot, try the following series of commands:
    NOTE: This is essentially what the script we added to /etc/rc.local does, only that script doesn't need to remove the b43 module as it is blacklisted and should not be loaded to start with.
    Code:
    sudo rmmod b43 b44 ssb
    sudo modprobe ndiswrapper
    sudo modprobe b44
    If your laptop has a wifi-light it should light up after you modprobe ndiswrapper.


    CLEANING UP

    Once you're happy everything is working well, you can safely remove the working directory:
    Code:
    rm -r ~/wireless-install
    Or you could keep it on hand for future reference!


    TROUBLESHOOTING
    If you have any trouble with the How-To or it doesn't work as expected please post in the thread. I check the thread quite often and I'm always happy to help. It's also possible there's something I've missed which I can then incorporate into the How-To for everyone else to benefit from. If you're posting seeking help, please include the outputs of the following commands:
    Code:
    lscpi -nn | grep 14e4
    ndiswrapper -l
    lsmod | grep b43
    lsmod | grep ndiswrapper
    ls -l /etc/rc.local
    as well as anything else you think is relevant. Please include long code outputs in [code] tags (the # button in the advanced edit view) so they're easier to read.


    UNINSTALLING

    If for some reason you'd like to remove everything that this how-to has done, it's rather simple:
    Undo the file changes we made:
    Code:
    gksudo gedit /etc/modprobe.d/blacklist
    # Remove the line we added: "blacklist b43"
    gksudo gedit /etc/rc.local
    # Remove the four modprobe lines we added
    Remove the driver we told ndiswrapper to use:
    Code:
    sudo modprobe -r ndiswrapper
    sudo ndiswrapper -e bcmwl5
    Remove ndiswrapper:
    Code:
    sudo apt-get remove ndiswrapper-common ndiswrapper-utils


    Changelog:
    21/04/08: Made minor clarifications to layout
    22/04/08: Added Troubleshooting section
    I love you, really! It worked!

  10. #10
    Join Date
    Apr 2008
    Beans
    6

    Re: How-To: Dell 1390 WLAN (Broadcom 4311 [14e4:4311]) for Laptops using ndiswrapper

    Quote Originally Posted by jw5801 View Post
    That's exactly what the startup script in /etc/rc.local does, only without removing b43 since b43 is blacklisted and won't be loaded anyway. Does it still work on reboot, or do you need to manually run those commands each time you log in?
    I made a script with the commands in it and added it to the /etc/init.d so that it would run everytime I turn on the computer, all by itself

Page 1 of 42 12311 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •