Netgear WN311B wireless PCI adapter and wireless connection
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Netgear WN311B wireless PCI adapter and wireless connection
I recently finished building my computer, and Verizon upgraded my TV and internet for more channels and faster speed, so I wanted them to run an Ethernet line for my computer, but the guy told me to just buy a wireless card. I figured I would end up doing that anyway, so I did, and it works great on the Windows side of my hard drive, but not so much on Linux. I am running Linux Mint 10 Julia, and I had the card working fine at one point, but after about an hour, I got kicked off of the connection, and it would not let me back on. So, I reset the router downstairs, and the next day I was able to get on again for about 3 hours, but again, I was kicked off. I've fiddled around and tried to find what is wrong, but now even when I go into the network connections, it does not search for a network, nor will it connect to my network after i input all the information. It works flawlessly on the Windows side, but the only reason I have Windows is to do some school work on Inventor. I have no desire to run Windows primarily, and I love Linux, but I need to get this wireless working. Thank you.
Hi, redfox6627, and welcome to LQ! (I noticed that this is only your second post.)
It sounds like you're having some kind of driver problem. I'm not sure how familiar you are with how drivers work in Linux, so I'll explain things as if you know very little at the moment. (If you already know this stuff, don't be offended. :-)
Nearly all Linux drivers are already built-into the Linux kernel or created from the kernel as modules, and as such don't require third-party downloads or disks to install your hardware and make it work. Some drivers, however, are not open-source, or are under a software license that prohibits inclusion in the kernel. These still have to be loaded into the kernel as modules, which can be tricky if the hardware vendor isn't very good about maintaining its Linux drivers. Still others are community-supported and kept up-to-date, but because the hardware vendors aren't playing nice about telling folks how to create drivers for their hardware, they can be pretty difficult to make work in some cases.
In order to find out which kind of driver is in play, I'll need you to post the output of the following commands, using the "[.CODE] and [./CODE]" tags, for the beginning and end of your output quotes, respectively. (Remove the "." after the "[" to make it work; if I wrote it exactly as it's used, you wouldn't be able to see it.) Make sure you type these commands as root user (using sudo in front of them on distros like Ubuntu), as in some cases the output may be different otherwise.
dmesg | tail -l 40
Note: the "|" character (pipe) is on the backslash (\) key. Hold SHIFT to access it.
Also, please post the exact make and model of your wireless device. Once you've posted this information, I'll have a much better idea of what needs to be done to make your card work as it should.
OK. That's the information we need! I guess I could have learned the make/model from the thread subject, though (*facepalm*). For better readability in the future, please use code tags around computer text and refrain from posting signature stuff until after everything else; it's confusing otherwise.
Now that we know the chipset model number from your lspci output (bcm4321), we know what driver it takes. What you need is the wl (STA) driver. You've got wl loaded currently, but by the sound of it, you're using the b43 part of the driver instead of the STA part. (STA is short for STAtion--originally applying to wired LAN clients, but now counter-intuitively applying to WiFi clients, as opposed to base stations/access points. *sigh*) You'll need to reconfigure the driver installation to load the STA component.
You'll need to have your computer hooked-up to the internet while you do this, so plug it into the router with a wire before continuing. If during this process you are asked to remove any software other than what I'm telling you to remove, then write down all the package names that will be removed and continue with the uninstallation. Install them again using "sudo apt-get install <package> <package> <package>" once you've finished with the commands below. When asked to install additional packages, say yes. Type the following commands into a terminal:
The "sudo" command can be put before any other command to indicate that it should be run as root (administrator). You will be asked for your regular user's password, for security reasons, if you haven't used sudo very recently.
The "apt-get remove --purge" command removes the old, misconfigured wl package/module/driver and tells it to delete all configuration files associated with that package.
The "apt-get install" command re-installs the driver package.
The "m-a a-i" command instructs the Module Assistant program to build the appropriate STA driver for your particular kernel version.
The "echo" command uses the ">>" output redirector to add brcm80211--a conflicting driver module--to a file containing a list of "outlawed" drivers so that it won't load in the future.
The "update-initramfs" command tells your system to rebuild a kernel initialization image with the new driver included if necessary. "-u -k" means to update the existing initramfs image for the specified kernel verion(s)--in this case, all kernel versions that you have installed. Alternatively, "$(uname -r)" can be used instead of "all" to only update the one you're currently booted into. The initramfs image is used to load necessary drivers immediately at boot, instead of inserting them after the kernel is loaded (later in boot).
"modprobe -r b44 b43 b43legacy ssb brcm80211" unloads from memory several conflicting driver modules.
"modprobe wl" loads the new driver into memory.
At this point, you should be able to configure your wireless network settings as normal. A reboot may be needed first, so if it gives you problems try restarting your PC and attempting it again. If you had to remove any other software packages during this process, be sure to do this:
That step *might* not be needed, but it certainly helps ensure that the right driver gets loaded, instead of the wrong one. This error means that "noclobber" is activated, preventing you from redirecting output to that file. To get around this, try the following:
[enter your password if asked]
echo blacklist brcm80211 >> /etc/modprobe.d/broadcom-sta-common.conf
This will temporarily log you in as root, as opposed to just using root permissions, and will usually get around this kind of error. If that doesn't work, then type
...and add the words, "blacklist brcm80211" to the file--on its own line, at the very bottom. Finally save and close gedit.
Once you've done this, you can move onto the rest of the steps in my previous post, assuming you haven't already done them. It's safe to edit this brcm80211.conf file after you've done the rest, but before you reboot.
P.S. Be sure to take out the "." from your code tags. I only put them in so you could actually see the tags, rather than turning whatever came next into code text. You can use the edit button on your post to go back and change things if you wish. Thanks for making the effort.