Poor Signal Strength on Broadcom BCM94313....?

Hi,

I have a new notebook (HP DM1-4125) onto which I have installed openSUSE 12.1.
Generally, all is well. But (isn’t there always!) I am having problems with the wireless (wlan and bt).
The radio module is a Broadcom BCM94313HMGB. Which, I think is a BCM4313 plus a BCM20702AW bluetooth component?

My problem is that the rx signal is VERY poor.
For example with BCM94313 (wlan0) installed in a testbed alongside a (very old but) known working unit (wlan1).
At only 30cm from the AP, I see these figures


#iwlist scan

wlan0     Scan completed :
          Cell 01 - Address: 00:21:63:30:0B:E8
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=37/70  Signal level=-73 dBm  
                    Encryption key:on
                    ESSID:"myAP0"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=00000000127b4180
                    Extra: Last beacon: 166ms ago
                    IE: Unknown: 00056D79415030
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 03010B
                    IE: Unknown: 2A0104
                    IE: Unknown: 32043048606C
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000052435D0072322E00

wlan1      Scan completed :
          Cell 01 - Address: 00:21:63:30:0B:E8
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=70/70  Signal level=-33 dBm  
                    Encryption key:on
                    ESSID:"myAP0"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=00000000127f062e
                    Extra: Last beacon: 169ms ago
                    IE: Unknown: 00056D79415030
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 03010B
                    IE: Unknown: 2A0104
                    IE: Unknown: 32043048606C
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000052435D0072322E00

When, I move more that 5 meters away from the AP, all connection is lost via the Broadcom. I have to increase the distance to over 20m be fore the other wlan connection starts complaining. Any suggestions on how to increase the range for the broadcom will be appreciated.

One possible cause that comes to mind is the Antenna Diversity?
Is the antenna switch introducing this massive loss? Can this antenna switch be bypassed via software or is it purely a hardware function?

Incidentally, the bluetooth function is nowhere to be seen!! But I guess that this is a whole different (driver) issue?

I hope that any details that may be useful are listed here:


#hwinfo --wlan
25: PCI 300.0: 0282 WLAN controller
  [Created at pci.319]
  Unique ID: y9sn.N0h4zxfwtV0
  Parent ID: H0_h.4N97gW8nvQ8
  SysFS ID: /devices/pci0000:00/0000:00:06.0/0000:03:00.0
  SysFS BusID: 0000:03:00.0
  Hardware Class: network
  Model: "Broadcom WLAN controller"
  Vendor: pci 0x14e4 "Broadcom"
  Device: pci 0x4727 
  SubVendor: pci 0x103c "Hewlett-Packard Company"
  SubDevice: pci 0x1795 
  Revision: 0x01
  Driver: "brcmsmac"
  Driver Modules: "brcmsmac"
  Device File: wlan0
  Features: WLAN
  Memory Range: 0xfe3fc000-0xfe3fffff (rw,non-prefetchable)
  IRQ: 18 (no events)
  HW Address: 60:d8:19:99:39:12
  Link detected: no
  WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 2.467 2.472 2.484
  WLAN encryption modes: WEP40 WEP104 TKIP CCMP
  WLAN authentication modes: open sharedkey wpa-psk wpa-eap
  Module Alias: "pci:v000014E4d00004727sv0000103Csd00001795bc02sc80i00"
  Driver Info #0:
    Driver Status: brcmsmac is active
    Driver Activation Cmd: "modprobe brcmsmac"
  Driver Info #1:
    Driver Status: bcma is active
    Driver Activation Cmd: "modprobe bcma"
  Driver Info #2:
    Driver Status: wl is active
    Driver Activation Cmd: "modprobe wl"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #4 (PCI bridge)

27: PCMCIA 00.0: 0282 WLAN controller
  [Created at pcmcia.84]
  Unique ID: pz0h.lG4e6KMEdl8
  Parent ID: +QnG.J5lSzbB0WR8
  SysFS ID: /devices/pci0000:00/0000:00:14.4/0000:04:06.0/0.0
  SysFS BusID: 0.0
  Hardware Class: network
  Model: "TOSHIBA Wireless LAN Card"
  Hotplug: CardBus
  Socket: 0
  Vendor: pcmcia 0x0156 "TOSHIBA"
  Device: pcmcia 0x0002 "Wireless LAN Card"
  Driver: "orinoco_cs"
  Driver Modules: "orinoco_cs"
  Device File: eth1
  Features: WLAN
  HW Address: 00:02:2d:13:2d:ea
  Link detected: no
  WLAN channels: 1 2 3 4 5 6 7 8 9 10 11
  WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462
  WLAN encryption modes: WEP40 WEP104 TKIP
  WLAN authentication modes: open sharedkey wpa-psk wpa-eap
  Module Alias: "pcmcia:m0156c0002f06fn00pfn00paB4585A1Apb0B537C13pcD27DEB1Apd00000000"
  Driver Info #0:
    Driver Status: hostap_cs is not active
    Driver Activation Cmd: "modprobe hostap_cs"
  Driver Info #1:
    Driver Status: orinoco_cs is active
    Driver Activation Cmd: "modprobe orinoco_cs"
  Extra Info: TOSHIBA, Wireless LAN Card, Version 01.01
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #26 (CardBus bridge)

Regards, Martin

On 05/03/2012 07:16 AM, martinprowe wrote:
> Device: pci 0x4727
> SubVendor: pci 0x103c “Hewlett-Packard Company”
> SubDevice: pci 0x1795
> Revision: 0x01
> Driver: “brcmsmac”
> Driver Modules: “brcmsmac”

Driver brcmsmac was written by Broadcom. No one here knows very much about that
driver or its underlying hardware. You need to post this on
linux-wireless*vger.kernel.org.

Hi Martin!
I have seen the same issue on an HP dm1 netbook. The current brcmsmac driver is quite slow. Try installing broadcom-wl (it’s in Packman) and add
blacklist bcma
blacklist brcmsmac

to /etc/modprobe.d/50-broadcom-wl-blacklist.conf

Hi javierllorente,

WOW!!! Thanks a lot! Problem solved. WhooHooo…
But now that I have calmed down. I’m wondering…?
Why would a device have multiple drivers? I can understand that there may be a an “overloading” (aka Java) process, but shouldn’t that be done in such a way, as to not effect working lower-level functions?

Secondly, is the Bluetooth operation just an unfortunate casualty in this mess? Or can I consider that it is independent of the broadcom-wl drivers and continue looking for a neater solution than just plugging in an addition BT Dongle?

Regards, and many thanks, Martin

On 05/22/2012 04:46 AM, martinprowe wrote:
>
> WOW!!! Thanks a lot! Problem solved. WhooHooo…
> But now that I have calmed down. I’m wondering…?
> Why would a device have multiple drivers? I can understand that there
> may be a an “overloading” (aka Java) process, but shouldn’t that be
> done in such a way, as to not effect working lower-level functions?

The two drivers are very different beasts. Both are written by Broadcom, but wl
is closed source, and brcmsmac is open. Once you understand the full
implications of using a closed-source driver (run the command ‘dmesg | grep -i
taint’), you will appreciate the open-source version more.

Just as a teaser: The usage of the out-of-kernel driver wl means that wireless
will break EVERY time the kernel is updated.

Which bluetooth chipset does your netbook have? hwinfo will tell you. It’ll probably be an “unclassified device.”
Mine is a BCM20702A0 (Vendor: 0a5c, Device: 21e3).
I have successfully enabled it by running the following commands as root:
modprobe btusb
echo “0a5c 21e3” >> /sys/bus/usb/drivers/btusb/new_id

I can see other bluetooth-enabled devices but sending a file fails (using BlueDevil). I have to check what’s wrong.

Update: it seems that the steps above won’t be necessary with a 3.2 kernel: 64/68] Bluetooth: Add support for BCM20702A0 [0a5c:21e3]]([ 64/68] Bluetooth: Add support for BCM20702A0 [0a5c:21e3])

@lwfinger According to Broadcom, it’s a hybrid.
“The hybrid binary file is agnostic to the specific version of the Linux kernel because it is designed to perform all interactions with the operating system through operating-system-specific files and an operating system abstraction layer file. All Linux operating-system-specific code is provided in source form, making it possible to retarget to different kernel versions and fix operating system related issues.”
Source: 802.11 Linux STA driver | Broadcom

I’m using broadcom-wl since a while and have had no issues with kernel updates (yet).

Having quoted that, currently broadcom-wl is the only choice in this case.
Anyways, we should check if the brcmsmac issue has been reported upstream.

On 05/22/2012 06:16 PM, javierllorente wrote:
>
> @lwfinger According to Broadcom, it’s a hybrid.
> “The hybrid binary file is agnostic to the specific version of the
> Linux kernel because it is designed to perform all interactions with the
> operating system through operating-system-specific files and an
> operating system abstraction layer file. All Linux
> operating-system-specific code is provided in source form, making it
> possible to retarget to different kernel versions and fix operating
> system related issues.”
> Source: ‘802.11 Linux STA driver | Broadcom’
> (http://www.broadcom.com/support/802.11/linux_sta.php)
>
> I’m using broadcom-wl since a while and have had no issues with kernel
> updates (yet).
>
> Having quoted that, currently broadcom-wl is the only choice in this
> case.
> Anyways, we should check if the brcmsmac issue has been reported
> upstream.

Do you think I don’t understand what the wl driver is? When they say it is a
hybrid driver, that means that part of it is distributed as a binary-only file,
and as little source as it takes to rebuild it for your kernel. Yes, you get
what it takes to rebuild it with every new kernel; however, you MUST rebuild
it. When the kernel is updated, the old copy of the ko file is just occupying
space on the disk and it will not work.

I suppose that you mean that one of the advantages of open source software in this case is that if a specific module is shipped with the kernel, it’s guaranteed to work in the sense that you get the “whole package.”

I have taken a look at the linux-wireless mailing list archive (MARC: Mailing list ARChives) and I haven’t seen any thread related to “poor signal strength.”

Do you have any suggestions for debugging this issue?

Hmmmm… This thread is turning up lots of unexpected (for me) issues. Anyway, to keep to the BT problem.

My notebook (HP DM1-4125) has a combined wlan and bluetooth mini-pci-e card: A BCM94313HMGB. wlan = vid/pid: 14e4/4727 and bt = vid/pid: 0a5c/21e3.
Now, I know that both wlan & BT hardware interfaces are working because booting to Win7 and using their drivers all is fine.

However, in SuSE 12.1, hwinfo --bt does not report finding any BT interfaces. I’m working round the problem for now by using a BT Dongle in a USB slot.
Sooner or later, I’m going to break it or the USB slot, so I’d like to get it fixed if possible.

Best regards, Martin

On 05/23/2012 04:56 AM, javierllorente wrote:

> I suppose that you mean that one of the advantages of open source
> software in this case is that if a specific module is shipped with the
> kernel, it’s guaranteed to work in the sense that you get the “whole
> package.”

Open source is necessary, but not sufficient. A module must be built with
exactly the same kernel headers and compiler version that were used to build the
kernel. These conditions are most easily accomplished if the module is already
in the code tree, and built as part of the main build process. Obviously, closed
source cannot ever meet these requirements. An open-source driver might, but it
depends on the quality of the code, etc.

On 05/23/2012 05:46 AM, javierllorente wrote:
>
> I have taken a look at the linux-wireless mailing list archive (‘MARC:
> Mailing list ARChives’ (http://marc.info/?l=linux-wireless)) and I
> haven’t seen any thread related to “poor signal strength.”
>
> Do you have any suggestions for debugging this issue?

Accurately describe your issue on that mailing list
(linux-wireless@vger.kernel.org). Anything posted there will be read by the
brcmsmac developers. When you post, document your “poor signal strength”
allegation with numbers, and specific instances of connection loss associated
with one particular driver. For most cases, reported strengths are relative, and
you cannot compare the numbers from two different drivers.

Dho… Dismissed the above because of the Update

But of course, I’m only on 3.1. So I’ve now given this tip a try and it WORKS for me. Sort of…!!!

If I have my BT USB dongle in the notebook when I boot, I can enable the on-board device as you describe. Great.
However, if I try and boot without my BT Dongle, I can’t enable the on-board BT adapter as described??

Boot sequence / timing or something along those lines??

Regards, Martin

Thanks for your suggestions :slight_smile:

I have just found the following line in /var/log/messages

May 27 16:57:51 linux-eesg kernel:  1262.879904] brcmsmac: module is from the staging directory, the quality is unknown, you have been warned.

It seems the driver is not stable enough for daily use, so we have to wait until it’s out of staging (or use broadcom-wl).

By the way, I have just pushed an update to the broadcom-wl package from Packman to blacklist bcma and brcmsmac.

Does /var/log/messages give you any clue?

On 05/27/2012 10:26 AM, javierllorente wrote:
>
> Thanks for your suggestions :slight_smile:
>
> I have just found the following line in /var/log/messages
>
> Code:
> --------------------
> May 27 16:57:51 linux-eesg kernel: 1262.879904] brcmsmac: module is from the staging directory, the quality is unknown, you have been warned.
> --------------------
>
> It seems the driver is not stable enough for daily use, so we have to
> wait until it’s out of staging (or use broadcom-wl).
>
> By the way, I have just pushed an update to the broadcom-wl package
> from Packman to blacklist bcma and brcmsmac.

In newer kernels, brcmsmac has been moved from staging to the regular kernel. To
get the newer version, use compat-wireless.

Hi
FWIW I’m running the brcmsmac on a BCM43224 802.11a/b/g/n here and it
works fine on g and n on both the 2.4GHz channels and 5GHz channels.
I’m currently using channel 149 (5.745 GHz) on this machine and it
connects at 144Mb/s a vast improvement from my old wrt54g router at
54Mb/s.


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.1 (x86_64) Kernel 3.1.10-1.9-desktop
up 1 day 22:16, 3 users, load average: 0.00, 0.01, 0.05
CPU Intel i5 CPU M520@2.40GHz | Intel Arrandale GPU

Good to know.
I have installed compat-wireless-kmp-desktop and compat-wireless-scripts from the driver:wireless project, unloaded wl, uninstalled broadcom-wl and rebooted. But still, I’m getting the “module is from the staging directory” warning (using brcmsmac) and same issues as well. Am I missing some step?

Interesting. Martin and I have the same model (4727) and the same kind of issues as well. Perhaps it only affects this specific model?