Medir el nivel de señal wireless


Debido a que no me llegaba la señal wireless, me puse a mirar como medirla, y además de forma numérica en %.
La versión de linux es ubuntu 8.1.

uname -a
Linux laurita 2.6.27-14-generic #1 SMP Wed Jul 29 09:01:45 UTC 2009 i686 GNU/Linux

La tarjeta wireless es Intel

lspci | grep Wireless
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)

Podremos ver la calidad de la señal es 47 siendo la máxima de 70:

sudo iwconfig eth1 | grep Quality
Link Quality=47/70 Signal level=-63 dBm Noise level=-127 dBm

Podemos verlo de forma numérica, aparece como 50 aquí:

cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
eth1: 0000 50. -60. -127. 0 0 0 0 0 0

Podemos hacer este script para que nos de el % en tiempo real:
— inicio copiar y pegar

# Por Paco Aldarias
# 11.8.09
# senyal.sh

# Calculo del maximo valor de señal.
max_lin=$( iwconfig eth1 | awk ‘ /Quality/ { print $2 }’ | cut -d «/» -f2)
suma=0
valores=0
promedio=0
maximo=0
minimo=100
while :
do
clear
echo «MEDIDOR DE NIVELES DE SEÑAL»
echo «Por Paco Aldarias. 11.8.09»
# Obtener el valor de la señal
s=$(cat /proc/net/wireless | tail -1 | awk ‘{ print $3 }’ | cut -d «.» -f1)
# Calculo del porcentaje
ps=$(echo » ($s * 100 / $max_lin) » | bc )
let suma=suma+ps
let valores=valores+1
let promedio=suma/valores
if [ $ps -lt $minimo ];then minimo=$ps; fi
if [ $ps -gt $maximo ];then maximo=$ps; fi
echo «Quality link. Calidad señal [MAXIMO $max_lin]: $s -> $ps %»
echo «Minimo: $minimo % ; Maximo: $maximo %; Promedio: $promedio %»
sleep 1
done

— fin copiar y pegar

El resultado es:

MEDIDOR DE NIVELES DE SEÑAL
Por Paco Aldarias. 11.8.09
Quality link. Calidad señal [MAXIMO 70]: 37 -> 52 %
Minimo: 50 % ; Maximo: 52 %; Promedio: 51 %

Otra opcion, la cual nos deja sin red, es usar el programa:
kismet

Otras opciones, según Ramón Onrubia:

Para hacer un scan por consola del nivel de potencia del resto de redes en
tiempo real, con:

airodump-ng interfaz

Para ver el nivel de potencia de la red a la que estoy asociado según
el punto de la casa en que me encuentre y con una frecuencia de un
segundo entre muestreos, tan sólo hago esto:

watch -t -n 1 «iwconfig wlan0 | grep Link»

suponiendo que la tarjeta es la wlan0.