5

How can I read out WLAN RSSI value for each radio channel from command line? Target system would be either Ubuntu 15.04 or Raspberry Raspbian.

By RSSI, I mean the raw received power, before any WLAN specific L1 operations. This is pretty much same way as in the 3GPP WCDMA, RSSI value means the raw energy received on antenna. Not just the received code power, not the signal-to-noise ratio. Just the overall received signal power containing both payload signal and any possible noise.

The only solution I have found so far is wavemon: when started with parameter -d, it will print out signal and noise values and I can grep out them easily. But are there other possibilities or would there be even some ready-made utility to scan for noise over all WLAN channels?

Reason for this question is that my both of my home 2.4G band WLAN networks have some random, but frequent problems blocking usage of both networks simultaneously. Problems are not related to WLAN base station HW, channel numbers or any of my own HW - all those have already been eliminated. Problems are not visible on my 5G band WLAN networks - those operate well also during 2.4G band problems.

I'm now suspecting that my 2.4G band WLAN networks are victims of some external noise. I need to collect more evidence and my plan was to set up one Ubuntu or Rasberry device to continuously scan over 2.4G WLAN channels, and to combine the resulting long time information with e.g. ping status over my 2.4G WLAN networks.

Additional information: I found one utility: https://github.com/simonwunderlich/FFT_eval

This one uses laptop's existing WLAN card (assuming card has certain chipset) to make the proper FFT scan over WLAN band. Here is an example measurement: FFT result

I'll try to tweak this utility so that I would get regular (like once per 10 seconds or so) scan results stored to file.

4
  • Have you tried nmap for the external noise?
    – VaTo
    Commented Jun 22, 2015 at 0:35
  • No - I haven't used nmap, but during my earlier debugging phase, I have executed port scanning through my networks with other tool. In this phase, I am now studying the problem mostly from RF side and I assume nmap doesn't know about WLAN as such, it just knows about TCP and UDP level.
    – Kalle
    Commented Jun 22, 2015 at 0:56
  • Is there any way that GUI would work anyways? Why it should be command line specifically (and with this I'm saying that if there's a tool that does this using a GUI, there are at least 3 that can without it)?
    – Braiam
    Commented Jun 22, 2015 at 1:02
  • GUI could work, yes. There is actually at least one GUI tool for this (the above mentioned wavemon), but for that, the GUI is restricted: it can't scan over channels and it can't store results. I just haven't found any GUI tool capable of doing this and I assumed, that this is easier to tackle with scripting and some command line tool.
    – Kalle
    Commented Jun 22, 2015 at 1:09

2 Answers 2

1

As I wrote above, following utility does what is required: https://github.com/simonwunderlich/FFT_eval

This one uses laptop's existing WLAN card (assuming card has certain chipset) to make the proper FFT scan over WLAN band.

This utility can be set up to measure by e.g. one minute intervals when script is added to crontab, or if resolution doesn't need to be so accurate, by having "sleep" command in script.

0

For the purpose of measuring the power of wifi signal, received by antenna, I am using the command iwlist, which is a part of wireless-tools package. I am using Slackware on my laptop, and I believe that this package was already available in the initial installation. But I have checked my CentOS server, it is also available on CentOS.

# yum search wireless-tools
...
wireless-tools.i686 : Wireless ethernet configuration tools

Then you can call it as (run it as root, because under normal user it does not show all incoming signals)

# iwlist wlan0 scanning

where wlan0 is the name of the wireless interface on my machine. In order to find out the name for your machine use command

# iwconfig

from the same package. In order to see only the information, that you need, run it as

# /sbin/iwlist wlan0 scanning | grep "Frequency\|level\|ESSID:\|Address:"
      Cell 01 - Address: C0:4A:00:F5:9A:80
                Frequency:2.422 GHz (Channel 3)
                Quality=70/70  Signal level=-28 dBm  
                ESSID:"XXX"
      Cell 02 - Address: D0:17:C1:36:B9:90
                Frequency:2.437 GHz (Channel 6)
                Quality=52/70  Signal level=-58 dBm  
                ESSID:"YYY"

Now you can see the information about incoming power in dBm. In locations with many routers you will have several sources for the same frequency channel. Therefore you have to add the powers for routers on the same channel. In order to do this you have to convert the powers from logarithmic scale (dBm) to linear scale, add them, and convert back to dBm. I did not see any tool, which does it, so I wrote wifi-power-list script. I am using this script in order to find the channel with less noise for my home router.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .