Code Monkey home page Code Monkey logo

wavemon's Issues

Noise level unknown

Dear friends @ wavemon,

I work on project that requires signal levels with noise levels for datasets I am creating.
I tried to use > iw dev [interface_name] survey dump but command output returns nothing.

I also tried wavemon as possible solution but it seems to have problems when it comes to noise levels and s-n ratio:
image

The only noise related data I can find is written in /proc/net/wireless which I doubt is a valid value (always shows -256dBm).

So my question is - is there any way (with or without wavemon) to get signal noise values?

Thank you in advance!
Best,
Ante

Link quality and signal streght stuck with linux kernel 4.0.4

Link quality and signal strength values aren't updated on a time basis with the following linux kernel versions:
kernel-4.0.4-201
kernel-4.0.4-202

While everything works just fine on the older one:
kernel-3.19.7-200

I'm using fedora 21, 64bit

Display issue on Arch 4.12.13-1-ARCH

New issue with wavemon display in terminal emulator (termite) as well as TTY. Have never had an issue displaying wavemon previously. Wavemon loads and displays text data, but the percentage bars showing network strength do not display properly; they show maybe one or two '=' signs along the bar, towards the right (i.e. 100%) side, but not along the rest of the bar.

ncurses = reinstalled,
wavemon = reinstalled,
multiple term. emulators have been tried.

Any advice? Thanks!

Image attached.
wavemon

Fix Transparency

in wavemon.c do this for working Transparency

160   start_color();
161   use_default_colors();
162   init_pair(CP_STANDARD,  COLOR_WHITE,  -1);
163   init_pair(CP_SCALEHI, COLOR_RED,  -1);
164   init_pair(CP_SCALEMID,  COLOR_YELLOW, -1);
165   init_pair(CP_SCALELOW,  COLOR_GREEN,  -1);
166   init_pair(CP_WTITLE,  COLOR_CYAN, -1);
167   init_pair(CP_INACTIVE,  COLOR_CYAN, -1);
168   init_pair(CP_ACTIVE,  COLOR_CYAN, COLOR_BLUE);
169 
170   init_pair(CP_STATSIG,   COLOR_GREEN,  -1);
171   init_pair(CP_STATNOISE,   COLOR_RED,  -1);
172   init_pair(CP_STATSNR,   COLOR_BLUE, COLOR_BLUE);
173   init_pair(CP_STATBKG,   COLOR_BLUE, -1);
174   init_pair(CP_STATSIG_S,   COLOR_GREEN,  COLOR_BLUE);
175   init_pair(CP_STATNOISE_S, COLOR_RED,  COLOR_BLUE);
176 
177   init_pair(CP_PREF_NORMAL, COLOR_WHITE,  -1);
178   init_pair(CP_PREF_SELECT, COLOR_WHITE,  COLOR_BLUE);
179   init_pair(CP_PREF_ARROW,  COLOR_RED,  -1);
180 
181   init_pair(CP_SCAN_CRYPT,  COLOR_RED,  -1);
182   init_pair(CP_SCAN_UNENC,  COLOR_GREEN,  -1);
183   init_pair(CP_SCAN_NON_AP, COLOR_YELLOW, -1);

1545600528_1919x1079

F1 info flashes intermittently to "no interface data" every few seconds.

Not sure if that's a bug but seems to happen here in Debian Stretch (4.9) and also Kali 2017.3 (4.14) using the latest version available from the respective repo's (0.8.0 Jan 2 2017) ... sometimes it will stay showing "no interface data" for long periods.

This seemed to start after taking screen shots with the default screenshot app (same in both) to compare driver performance.

Have already tried uninstalling and reinstalling in both but it's still the same.

Also can you please tell me what: ESS, % chan, Radio Measure and Spectrum Mgmt mean when they show up on the F3 scan page?

Great and very helpful app when it's working ... thanks for your time.

[SOLVED] Wavemon "No Interface Data" on Intel AC-8260

Hi

I have to laptops with a similar configuration (both Arch Linux on Kernel 4.11.9-1-ARCH). Wavemon works flawlessly on one but not the other. Difference is mostly the hardware not the software setup. The not working model uses an Intel Dual-Band Wireless AC8260 card (the working one an Intel 7265 card).

I use wavemon 0.8.1-1 and the dependencies are installed. The kernel module for the WiFi card used is iwlwifi. An iwlist <dev> scan works flawlessly and also the WiFi works works fine. A sudo wavemon shows "NO INTERFACE DATA" on the info screen and nothing for vor Lhist but a Scan of the networks works fine.

Any ideas why this is?

Uninitialized variable in info_scr.c (display_levels()).

The variable sig_qual_max should be initialized as the following conditions may not be true.

	if (linkstat.data.bss_signal_qual) {
		/* BSS_SIGNAL_UNSPEC is scaled 0..100 */
		sig_qual     = linkstat.data.bss_signal_qual;
		sig_qual_max = 100;
	} else if (sig_level) {
		if (sig_level < -110)
			sig_qual = 0;
		else if (sig_level > -40)
			sig_qual = 70;
		else
			sig_qual = sig_level + 110;
		sig_qual_max = 70;
	}

release tarballs should be distributed on a proper download server

there are some issues with github's "automatic tarball download"

  • http is automatically redirected to https.
    this makes it impossible to download with non-https capable wget implementations like the one of busybox (note that statically linking against openssl usually involves ca 1.5 MB of binary bloat), used on embedded systems
  • naming scheme: the tarball is named $TAG.tar.gz. in our case v0.7.6.tar.gz.
    the extracted directory otoh is named "wavemon-0.7.6".
    this requires special casing in buildtools that expect tarballs to extract into a directory of the same name as the tarball. it also makes it hard to identify which package dropped "v0.7.6.tar.gz" in the download folder, so one needs to unpack it to find out what it is. additionally there may be conflicts with other github projects that use the same tag name. for example if mpv happened to have a v0.7.6 release, that tarball would get the same name as the wavemon one and overwrite it.
  • no choice of compression algorithm:
    instead of using a modern algorithm with good compression like xz, one is restricted to the decades old .gz algorithm which packs only about half as well
  • generated configure scripts must live in the source repo so they end up in the tarball without forcing the user to have the entire autoconf stack installed.
    usually git repos do not include configure scripts and all the files dropped from autoreconf runs (config.sub, m4 stuff, etc) which often exceed the size of the source code itself by far, and must be regenerated often, thus bloating the git repo. so packages usually have a make dist target which generates a release tarball including the autoconf stuff.

thus i recommend to use another download site for release tarballs, for example sourceforge.net (git repo can still stay here of course)

Only RX is counting up

Hi there,

I am working on a project with a Raspberry Pi. The wifi signal is normally pretty bad on a Raspberry Pi so I have bought a wifi range extender antenna like this one:
https://www.ebay.com/itm/600Mbps-Wireless-Internet-Signal-Booster-Wifi-Range-Extender-USB-Adapter-Antenna-/131857138867

However when I plug it into the USB the TX counter stops counting as much as without the USB extender - when monitoring the wifi with wavemon. It looks like this:

image

Any ideas why the USB extender stops the TX counter so much?

Wavemon 0.7.6-2 and github master (latest commit 62949b3) stops responding.

The Hardware & Software are the same as in #20.

Problem

If I use wavemon under heavy UDP traffic it stops responding. UI does not update, Tx/Rx are not updated and it doesn't react to keys, only ctrl+C helps (kills it).

I have seen it a lot of times with github master (latest commit 62949b3, this is nl80211 version) and sometimes with wavemon 0.7.6-2 (wext based version).

The ssh sessions running wavemons are alive (I can kill "not responding" wavemons with ctrl+C).

I have seen it when running 2 wavemons simultanously. I can check if this happens with just single running.

CFLAGS passed to ./configure are ignored

CFLAGS="-O0 -g3" ./configure
...
make
gcc -O2 -Wall -pthread ...

well behaving autoconf users (more than 90%) generally drop the hardcoded -O2 CFLAGS when the user passes his own CFLAGS.
this seems to be the default behaviour.

user's CFLAGS are abandoned/ignored

after editing out the @ before the CC invocation in Makefile.in to see what is going on ( #26 ) :

$ CFLAGS=-fomit-frome-pointer LIBNL3_GENL_LIBS=-lnl_tiny LIBNL3_GENL_CFLAGS=-I/include/libnl-tiny ./configure
...
make
 CC   utils.c
cc -O2 -Wall -pthread     -DPACKAGE_NAME=\"wavemon\" -DPACKAGE_TARNAME=\"wavemon-current\" -DPACKAGE_VERSION=\"0.8.0\" -DPACKAGE_STRING=\"wavemon\ 0.8.0\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"https://github.com/uoaerg/wavemon\" -DBUILD_DATE=\"Wed\ Nov\ 23\ 11:04:09\ WET\ 2016\" -DSTDC_HEADERS=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NCURSES_H=1 -DHAVE_FCNTL_H=1 -DHAVE_NETDB_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NET_IF_ARP_H=1 -DHAVE_NETINET_ETHER_H=1 -DHAVE_NET_ETHERNET_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_LINUX_IF_H=1 -DHAVE_LINUX_WIRELESS_H=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -DHAVE_LIBM=1 -DHAVE_LIBNCURSES=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_ETHER_NTOHOST=1 -c -o utils.o utils.c

as you can see, there is no -fomit-frame-pointer anywhere in the executed statement.
this is completely contrary to what is expected from autoconf-using sw.
the environment variables CFLAGS, CPPFLAGS and LDFLAGS should all be respected and override the default ones (for example -O2 -Wall for CFLAGS).

Some dependencies not listed in readme.md

I am reffering to github master (Latest commit 62949b3).

I think that I also needed for building: libncurses5-dev
I am certain that I also needed: pkg-config.

Without pkg-config at correct version wavemon configure complains with error message about libnl3 which is somewhat confusing (even though libnl3 is installed with the correct version)..

Maybe all of that is obvious from the configure output but it took me a while to figure out.

Kind regards!

btw - wavemon is great

wavemon gives inconsistant signal level values

I'm using an Intel 9260NGW in a Dell XPS 13 (9360) using Debian stretch.

Wavemon reports inconsistent values for signal level and link quality:

signal level is typically reported as 70/72dBm (yes, +70dBm) with a link quality stuck at 100%.
Note that on the same system, iwconfig report reasonable values:

wlp58s0 IEEE 802.11 ESSID:"xxx"
Mode:Managed Frequency:5.2 GHz Access Point: XX:XX:XX:XX:XX:XX
Bit Rate=48 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=46/70 Signal level=-64 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:389 Missed beacon:0

Note sure wether it is a bug in wavemon itself or a third party lib like libnl...

Thank you,
David

Inconsistent Levels between wavemon 0.7.6-2 and github master (latest commit 62949b3)

Hi @grrtrr,

Hardware & Software

Hardware: Edimax EW-7811Un (this is Realtek RTL8188CUS)
OS: Linux ev3dev 4.4.19-15-ev3dev-ev3

I belive that both RaspberryPi and ev3dev use 3rd party driver for this device (instead of upstream), so maybe it is not playing well with cfg80211. Some more info:

ev3dev/ev3dev#669

(I am aware that the github version uses nl80211 and the old one wext to read data from the kernel)

Problem

I am getting incosistent levels, both of link quality and signal level between wavemon versions.

E.g - signal level -45 dBm (0.03 uW) vs 20 dBm (100.00 mW) [new vs old version).
E.g. - link quality 93 (65/70) vs 100 (100/100)

I am running 2 versions simultuanusly in 2 ssh windows on a mobile robot.

Also iw reports the same value (-45 dBm).

In both versions values change in reasonable way (that is - as I am getting far away from the AP the link quality and signal level drops)

Segfault While Scanning

Running sudo gdb wavemon then navigating to scan with F3 yields the following fault. This issue seems to only occur while I'm already connected to a network on the same interface.

Thread 3 "wavemon" received signal SIGSEGV, Segmentation fault

[Switching to Thread 0x7ffff6a27700 (LWP 18375)]
0x00007ffff701e430 in __lll_unlock_elision () from /usr/lib/libpthread.so.0

(gdb) bt
#0  0x00007ffff701e430 in __lll_unlock_elision () from /usr/lib/libpthread.so.0
#1  0x0000000000409560 in ?? ()
#2  0x00007ffff701208c in start_thread () from /usr/lib/libpthread.so.0
#3  0x00007ffff6d49e1f in clone () from /usr/lib/libc.so.6

Output of wavemon -v & pacman -Q wavemon

wavemon 0.8.0
Distributed under the terms of the GPLv3.
wavemon 0.8.1-1

Output of uname -a

Linux mavsa 4.14.13-1-ARCH #1 SMP PREEMPT Wed Jan 10 11:14:50 UTC 2018 x86_64 GNU/Linux

I'm using the iwlwifi drivers on a ThinkPad X1 Carbon 5th Edition.

no supported wireless interfaces found!

I am running Kali 2 from a chromebook flip (ARMHF).

I have installed wavemon from both the kali repo and the git repository.

Both methods install/compile correctly, then when I run wavemon/wavemon -i wlan0 all I receive is:

no supported wireless interfaces found!

I have three separate ALFA cards that function fine with all the other tools I have tried (airodump-ng/kismet etc.) but for some reason wavemon doesn't detect them.

What is the best way to start debugging this issue?

Cheers,

Dave

Feature request: Show public IP

Hello.
Maybe would be useful to show the public IP besides the local IP.
Greetings.
PS: Thanks for your time and code! πŸ‘

Report function

It would be good to be able to run this tool in a reporting mode.

I.e. set it to run for 5 minutes, then produce a report with the average signal strength etc. for printing instead of the interactive ncurses visualization.

wavemon validating

Hi
why Wavemon shows different valus of RSSI? i need ro know RSSI in varied distances of my access point.
i measure in indoor place. how i can trust to RSSI given by Wavemon?
is there any standard conditions for measuring by wavemon?

neither configure --disable-silent-rules nor make V=1 supported

so basically there's no standard way to get verbose make output and see what commands are executed, for example to see if my CFLAGS ended up in the compile command or not.

$ LIBNL3_GENL_LIBS=-lnl_tiny LIBNL3_GENL_CFLAGS=-I/include/libnl-tiny  ./configure --prefix= --disable-silent-rules
...
configure: WARNING: unrecognized options: --disable-silent-rules
$ make V=1
 CC   lhist_scr.c
In file included from lhist_scr.c:21:0:
iw_nl80211.h:4:29: fatal error: netlink/netlink.h: No such file or directory
compilation terminated.
make: *** [lhist_scr.o] Error 1
$ la /include/libnl-tiny/netlink/netlink.h
-rw-r--r--    1 root     root          2094 Oct 11 03:09 /include/libnl-tiny/netlink/netlink.h

Possible memory leak

I have cross-compiled wavemon for my ARMv5 board. After running it for ten to fifteen minutes all the free RAM is used and the system is not able to operate anymore. Watching the memory with the top tool I can see that every refresh the free RAM decreases more than 200kB. Stopping wavemon stops the reduction of the free RAM.

SNR value

Dear

I'm trying to get SNR value for using in my projects. I've used Netlink library and I'm receiving cyclic values differently received by wavemon;

root@node01:~# ./nl80211_info
Interface: ap1 | signal: -42 dB | noise: -56 | txrate: 104.0 MBit/s
Interface: ap1 | signal: -43 dB | noise: -82 | txrate: 104.0 MBit/s
Interface: ap1 | signal: -44 dB | noise: 125 | txrate: 104.0 MBit/s
Interface: ap1 | signal: -44 dB | noise: 99 | txrate: 104.0 MBit/s
Interface: ap1 | signal: -43 dB | noise: 73 | txrate: 104.0 MBit/s

My question is, how can I get the noise value and signal value to calculate the SNR as Wavemon uses?

Regards,

Limiting the scan view to top X entries ?

Hello,

I wonder if it is possible for the scan view to be limited to the top 10 or top 20 most powerful access points ?

My environment has 55-75 APs in range, which are all seen by wavemon, but I wonder if I can limit that to the top 10 ?

Thank you.

wavemon not monitoring USB 5GHz wifi

Greetings.

I don't know exactly where my problem is.

Wavemon works great on my laptop's builtin 2GHz wifi card.

I just bought a 5GHz USB wifi adapter (Belkin N750), and wavemon can see

ra0 (UP RUNNING BROADCAST MULTICAST)               

but no interface data, no RX/TX data, no data reported, either in 5GHz mode or in 2GHz mode.

Is there something I'm doing wrong or not doing right, to get wavemon to see my USB wifi adapter?

Thanks.

on_exit is not portable

Since commit 4a160b1 wavemon uses on_exit(), which is not portable and not available on the C libraries musl and uClibc. According to the Linux kernel man page : Portable application should avoid this function, and use the standard atexit(3) instead.

libcap not configurable

Currently in OpenWrt, ac_cv_lib_cap_cap_get_flag=no is set to avoid the libcap dependency. I don't know enough about autotools but I would like to request a "--without-libcap" configure parameter to avoid it as that seems to be a proper solution.

Calculate retry / drop rate as %

It would be useful to have, instead of just:

RX: 11,484 (5.41 MiB), drop: 98
TX: 10,200 (1.82 MiB), retries: 748

But to also display:

RX: 11,484 (5.41 MiB), drop: 98 (0.8%)
TX: 10,200 (1.82 MiB), retries: 748 (7%)

Because I don't really care what the raw drop/retries number is, but what the percentage is in realtime is really helpful.

Information

Hi,

I don't know if I am in the right section, because I just need an information and I am not reporting an issue. If not, I am sorry.

I just wanted to know from where are coming the statistics information. I ran ifconfig but the values are not exactly the same as in the wavemon windows. In the wavemon windows, I also have 1 dropped packet and 2 failed packets, and when I ran ifconfig, I have 0 dropped, or erronned packets.

For information, I am using waveform as a real-time wireless monitoring (which is very usefull) and I want to log data too. But it seems like what I log is incorrect.

If you have any answers.

Thanks for the reading.

Sincerely

Negotiated bitrate stuck after initial connection

Both wavemon (as well as iwconfig) show only the first negotiated bitrate, not the current bitrate.
iw on the other hand does show the correct bitrate. I assume this is due to Wext?

β”œβ”€Info───────────────────────────────────────
β”‚mode: Managed,  access point: 12:34:56:78:9A:BC
β”‚freq: 2.412 GHz, channel: 1,  bitrate: 150 Mbit/s
β”‚power mgt: on,  tx-power: 20 dBm (100.00 mW) 
β”‚retry: short limit 7,  rts/cts: 2347 B,  frag: off 
β”‚encryption: off (no key set)
$ iw dev wlan0 link
Connected to 12:34:56:78:9A:BC (on wlan0)
        SSID: Test
        freq: 2412
        RX: 693487 bytes (5845 packets)
        TX: 1501 bytes (14 packets)
        signal: -72 dBm 
        tx bitrate: 72.2 MBit/s MCS 7 short GI

        bss flags:      short-preamble short-slot-time
        dtim period:    1   
        beacon int:     100 

After quitting (F10), wavemon leaves the interface UP regardless of its original state

Current behavior:
When I start wavemon and then go to the Scan window (F3) and my interface is DOWN, wavemon will set the interface state to UP with the message: "Interface x is down - setting it up..."
When I leave wavemon, the interface stays UP. In other words, wavemon does not set the interface state to DOWN when I leave it.

Expected behavior:
I would expect wavemon to set the interface back to its original state when I leave it.

I'm using wavemon in Arch Linux, installed from the "community" official repository.
The current behavior cause me trouble because other software (e.g. netctl) expects the interface to be DOWN when I start them.
Today, as a workaround, a made a script to start wavemon that get the interface state before starting it and then when I quit wavemon, the script sets my interface back to its original state.

Supress list of ESSIDs?

Hi there,

I just configured my raspi to display wavemon on the display after booting up - i am using the watterott-display http://www.watterott.com/de/RPi-Display - I know the display is too small, but it perfecly fits into a case built of an old nintendo gameboy ;-)

Is there a way to ignore specific essids? would be great if our 93*4=372 devices of our infrastructure would be supressed ;-)

Regards from Aachen,

Thomas

Reduce CPU load?

wavemon is great, but sometimes virtuoso-t uses quite a bit of CPU. I haven't yet been able to replicate this issue, but an option to change the polling rate may help.

wavemon itself uses 1.4% which doesn't sound like much unless you're on battery power.

Missing fonts in wavemon?

Hello I am missing some fonts when I start wavemon. I am using fresh install of Ubuntu 18.04 and both gnome terminal and tilix terminal shows the same font error (I suppose).

image

support libnl-tiny

hello, i've just managed to build wavemon with libnl-tiny instead of libnl3/libnl3_genl.
what we would need to do to support it officially is basically:
(configure.ac)

/IF/ PKG_CHECK_MODULES([LIBNLTINY], [libnl-tiny >= 2.0] /THEN/
     [CFLAGS="$CFLAGS $LIBNLTINY_CFLAGS"],
     [LIBS="$LIBS $LIBNLTINY_LIBS"],
/ELSE/
# standard libnl3 stuff here
# libnl3 with GeNetlink support - wavemon is tracking changes to iw
PKG_CHECK_MODULES([LIBNL3], [libnl-3.0 >= 3.2], [],
                  [CFLAGS="$CFLAGS $LIBNL3_CFLAGS"],
                  [AC_MSG_ERROR(need libnl >= 3.2)])
PKG_CHECK_MODULES([LIBNL3_GENL], [libnl-genl-3.0 >= 3.2],
                  [LIBS="$LIBS $LIBNL3_GENL_LIBS"],
                  [AC_MSG_ERROR(need libnl-genl >= 3.2)])
/ENDIF/

i've put some invented conditionals in here, for example /IF/, /ELSE/ etc, since i dont grok autoconf syntax.

Exporting signal strength data

I am wondering how collected signal strength data can be exported into, say, a csv file for later analysis.

I am using a RasPi 2 running Raspbian Jessie with Pixel. My purpose in collecting and storing strength data is to create a 3D heat map of Wi-Fi signal strength for 2.4GHz.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.