|
||||||
| Forums FAQ | Members List | Search | Today's Posts | Mark Forums Read |
| Wireless Questions about wireless networking setup, use, and wireless specific applications |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
(This is the first draft of what I hope will become a sticky for this forum.
Please comment. Thanks, Larry) If your wireless does not work, please read this and follow the steps here to minimize the time needed to get your device working. First of all, two DO NOTS: (1) DO NOT post a message saying "My wireless doesn't work, what do I do next?" Such a message conveys zero information, and just wastes everyone's time. (2) DO NOT post a message saying "I have a Brand XX, Model YYYY laptop and my wireless doesn't work. What do I do next?". Although such a posting does convey a little information, it doesn't help a lot as we do not have a map of all the laptops ever built in our heads, and I, for one, am never going to search the Internet to find what wireless device that company XX put in that model. Who knows, they may have changed in the middle of the run for that product. What should you do? (1) The first thing is to learn how to use the command-line interface in a terminal. GUI's are great, but unlike some other OS's, the set of tools available are much richer with the command-line. With KDE desktops, the terminal program should be available in your "Favorites" section. With Gnome, check under "Applications". Whenever someone tells you to run a command, you should open a terminal (also called a console), and type in that command - even better if you can copy and paste. Note that CTRL/V is not used to paste into a console window. You will need to pull-down the Edit menu item. (2) Determine what device you have. (a) If it is a USB adapter, you should enter the command '/usr/bin/lsusb' in a terminal and you will see output that looks like: Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 005: ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter Bus 003 Device 002: ID 04f2:b016 Chicony Electronics Co., Ltd Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub From this data, it is obvious that my wireless card is a RealTek RTL8187. The line containing the information about it is what would be posted. In particular, the two numbers that follow the ID label are important. (b) If it is a PCI device, you should enter the command '/sbin/lspci' in a terminal. The output will look like: 00:00.0 RAM memory: nVidia Corporation MCP67 Memory Controller (rev a2) 00:01.0 ISA bridge: nVidia Corporation MCP67 ISA Bridge (rev a2) .... snip ... 01:09.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 12) 04:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01) A recent computer will have lots of connections to the PCI bus, which is why I snipped out a number of entries from my machine. The PCI wireless device here is the BCM4312. If you do not see your wireless device in this list, you should go back to step (a). Remember that some built-in devices may be attached to the USB bus. For PCI, the above list does not provide all the information. Next, you should enter the command '/sbin/lspci -n'. The list will be equally long and look like: 00:00.0 0500: 10de:0547 (rev a2) 00:01.0 0601: 10de:0548 (rev a2) -- snip -- 01:09.4 0880: 1180:0852 (rev 12) 04:00.0 0280: 14e4:4312 (rev 01) At this point, you need to match the bus number (the numbers at the front that look like 04:00.0) from the first list to the second. These are the PCI vendor and product ID codes. For my BCM4312, these data are 14e4:4312. When you post a request for help, include both lines. (c) If you cannot find a wireless device in either step (a) or step (b), your hardware is broken. It may be the motherboard or the wireless device. In either case, until the device is seen by either lsusb or lspci, we will not be able to help you. (3) Once you know what your hardware is, the next step is to see what the kernel has to say about it. The command for this is 'dmesg | less'. Less will allow you to page through the output. To learn more about less, you can enter the command 'man less'. To exit the man page, or less itself, type the character q. A space will move one page down in the text, as will the "pg dn" key. You may move one line at a time with the keyboard arrow keys. As you go through the dmesg output, look for any mention of your hardware. On my system, it takes 473 lines of output before the line "b43-phy0: Broadcom 4311 WLAN found" appears. In particular, you should look for any lines that indicate that you are missing firmware. Note that firmware, which runs on the microprocessor in the device, is distinct from a driver, which runs on the host CPU. If you have missing firmware, check online to learn how to install firmware for your device. (4) Once you have firmware in place, next check for a wireless device by using the command '/usr/sbin/iwconfig'. For each interface that does not support wireless, you will get a line that looks like "eth0 no wireless extensions." There will be lines for lo, the loopback pseudo-device, and for eth0 if you have a wired interface. There may also be one for wmaster0 - ignore it. What you are looking for is one like this: wlan1 IEEE 802.11bg ESSID:"lwfdjf_rad" Mode:Managed Frequency:2.412 GHz Access Point: 00:1A:70:46:BA:B1 Bit Rate=54 Mb/s Tx-Power=27 dBm Retry min limit:7 RTS thr ff Fragment thr=2352 BPower Management ffLink Quality=72/100 Signal level:-35 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 The entries will be different - the above one is for a wireless interface that is working. What can we learn here? If the ESSID has a value, this means that your interface has associated with your access point, the same for a MAC address following the Access Point label. Those kind of details are not important now. The main point is that any output here requires the driver to be loaded and functioning. This fact should be reported. (5) The next step is to determine if your adapter is receiving any broadcasts from your AP. To do this enter the command 'sudo /usr/sbin/iwlist scan'. The command needs to be run as root, thus the sudo, and it will prompt for the root password. The results should be like this: wlan1 Scan completed : Cell 01 - Address: 00:1A:70:46:BA:B1 ESSID:"lwfdjf_rad" Mode:Master Channel:1 Frequency:2.412 GHz (Channel 1) Quality=72/100 Signal level:-35 dBm Encryption key nIE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (1) : TKIP Authentication Suites (1) : PSK Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s 12 Mb/s; 48 Mb/s Extra:tsf=00000067932c618a Extra: Last beacon: 56ms ago Whatever results from that command, report it as well. (6) Once all the steps above have been successfully completed, getting your wireless to work is a matter of configuration. At least part of this is done with YaST / Network Services / Network Devices. One of the easiest things to do is delete the wireless device from this list and reboot. When the system restarts, it should find your now working wireless and give you a chance to configure it. |
|
|||
|
A large number of PCI-based BCM4306 rev 3 devices have an SPROM programming error in the Bluetooth coexistence mode that completely kills the radio. I have been fixing these for people individually, but have decided to post the solution and let each user fix their own. The first step is to acquire and build the b43 tools. You will need packages for git, make, and gcc. Issue the following commands:
git clone http://git.bu3sch.de/git/b43-tools.git cd b43-tools/ssb_sprom make Once the above steps are completed without error, issue the following commands: SPROM=$(find /sys -name ssb_sprom) echo $SPROM sudo cat $SPROM > sprom.old The second of these commands should echo something like "/sys/devices/pci0000:00/0000:00:0b.0/ssb_sprom" - the numbers will depend on which buss your bcm43xx device is attached. The next step is to read out the current contents of the SPROM with the command: ./ssb-sprom -i sprom.old -P A lot of info will be listed. We are only interested in the section that looks like: SPROM(0x38, High 16 bits of Boardflags) = 0xFFFF SPROM(0x72, Low 16 bits of Boardflags) = 0x4A49 SPROM(0x4A, MAC address for 802.11b/g) = 00:1a:73:6b:28:5a In fact, only the low 16 bits of the boardflags are important. What we need to do is make the least-significant bit be zero. IMPORTANT: If the last digit of the low-order boardflags is NOT 1, 3, 5, 7, 9, B, D, or F, QUIT RIGHT NOW. You do not have this problem. For each of the odd numbers, decrease it by 1 to make it even. For the case above, the 9 has to become 8. This change is done by the following command: ./ssb-sprom -i sprom.old -o sprom.new --bfl 0x4A48 You can verify the results with the commannd ./ssb-sprom -i sprom.new -P You can load the new SPROM contents into the device with the following sequence: SPROM=$(find /sys -name ssb_sprom) echo $SPROM sudo cp sprom.new $SPROM The third command should not print anything. After you have tested the device and it works now but didn't before, please issue the following command: /sbin/lspci -nnv Your BCM43xx wireless device will contain lines that look like: 04:00.0 Network controller [0280]: Broadcom Corporation BCM94311MCG wlan mini-PCI [14e4:4311] (rev 02) Subsystem: Hewlett-Packard Company Device [103c:137c] Please PM me with that information and a note saying that the BT SPROM fix was needed for your card. That way we will be able to modify the kernel source to do this fix dynamically rather than by modifying the SPROM contents. Larry Last edited by lwfinger; 29-Sep-2008 at 15:17. Reason: The URL, not the title, is needed. |
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|