2013-05-08 13:51:45

by nick

[permalink] [raw]
Subject: Wifi signal level differences

Hi,

I have an Atheros ath6kl_usb based wifi dongle.
I am using it with an embedded project.

The driver code can be built for either X86 or sh4 hardware - so I can also use the same USB wifi dongle on my Fedora 12 Linux PC or plugged in to the embedded device.
It's working fine in both situations.

But, I notice that the signal level reported in /proc/net/wireless is slightly different between the two units.
Note, I am using the same physical Atheros wifi dongle, and moving it from one device to the other to this test.

I notice that when using the X86 PC I see a signal level of -61, which is marginally better than the -66 I see in the embedded device.

I know that this isn't an exact science - but using a short USB extension lead I can orientate the wifi dongle to be in the same place and orientation when plugged in to either device.
So, I would expect the wifi signal strength to be reported the same !?

I know there are many differences between my Fedora 12 PC, and the embedded STLinux project - not least that the driver is compiled using different compilers.

But, I was wondering what else could explain the difference in signal levels between the two?

Also, which part of the driver code is responsible for reading/calculating the signal level value?


Regards

Nick


2013-05-08 14:29:39

by Dan Williams

[permalink] [raw]
Subject: Re: Wifi signal level differences

On Wed, 2013-05-08 at 15:51 +0200, [email protected] wrote:
> Hi,
>
> I have an Atheros ath6kl_usb based wifi dongle.
> I am using it with an embedded project.
>
> The driver code can be built for either X86 or sh4 hardware - so I can also use the same USB wifi dongle on my Fedora 12 Linux PC or plugged in to the embedded device.
> It's working fine in both situations.
>
> But, I notice that the signal level reported in /proc/net/wireless is slightly different between the two units.
> Note, I am using the same physical Atheros wifi dongle, and moving it from one device to the other to this test.
>
> I notice that when using the X86 PC I see a signal level of -61, which is marginally better than the -66 I see in the embedded device.
>
> I know that this isn't an exact science - but using a short USB extension lead I can orientate the wifi dongle to be in the same place and orientation when plugged in to either device.
> So, I would expect the wifi signal strength to be reported the same !?
>
> I know there are many differences between my Fedora 12 PC, and the embedded STLinux project - not least that the driver is compiled using different compilers.
>
> But, I was wondering what else could explain the difference in signal levels between the two?
>
> Also, which part of the driver code is responsible for reading/calculating the signal level value?

What kernel versions is each system running? The kernel's mac80211
stack is what calculates the actual dBm/RSSI value based on information
given from the dongle firmware. And the calculations may change in
different kernel versions. Second make sure you compare the firmware
versions that you have on the two systems to see if they are different;
it's also possible that different firmware versions calculate signal
strength differently.

In the end though, the difference between -61 and -66 isn't worth
worrying about, since in the same location without moving the signal
level can change by that much from one second to the next.

Dan


2013-05-08 14:43:01

by nick

[permalink] [raw]
Subject: Re: Wifi signal level differences


Hi Dan,
Thanks for the prompt reply.

The Fedora 12 Linux PC (X86) is running with kernel 2.6.31.5 .
And, the embedded device is 2.6.32.16 .


Thanks for the info on where the calculation is actually done. I can look in the mac80211 code to see if there is a difference.


Regards

Nick







2013-05-15 13:19:33

by Kalle Valo

[permalink] [raw]
Subject: Re: Wifi signal level differences

Dan Williams <[email protected]> writes:

> On Wed, 2013-05-08 at 15:51 +0200, [email protected] wrote:
>> Hi,
>>
>> I have an Atheros ath6kl_usb based wifi dongle.
>> I am using it with an embedded project.

[...]

> What kernel versions is each system running? The kernel's mac80211
> stack is what calculates the actual dBm/RSSI value based on information
> given from the dongle firmware. And the calculations may change in
> different kernel versions.

ath6kl is a fullmac device and doesn't use mac80211.

--
Kalle Valo