[ninux-dev] ies we scan

Claudio Pisa clauz at ninux.org
Fri May 5 17:41:41 CEST 2017


Ciao.
Sono riuscito a fare altre prove. Rispondo sotto.

On 04/26/2017 09:32 PM, Stefano De Carlo wrote:
> Il 26/04/2017 07:44, Claudio Pisa ha scritto:
>> Uhm... forse l'opzione -u non e' supportata da quella versione di iw?
>> Facendo "iw | grep '\-u'" ottenete un output del genere?
>>
>> # iw | grep '\-u'
>>         dev <devname> scan [-u] [freq <freq>*] [ies <hex as 00:11:..>]
>> [ssid <ssid>*|passive]
>>
> 
> Eccolo:
> 
> dev <devname> scan [-u] [freq <freq>*] [ies <hex as 00:11:..>] [meshid <meshid>] [lowpri,flush,ap-force] [randomise[=<addr>/<mask>]] [ssid <ssid>*|passive]
>         dev <devname> scan dump [-u]
> 
> Sembra ok, no? Eppure -u non funzia. Però noi avevamo solo CC/Reboot.
> Non è che appena puoi provi pure tu con qualcosa di più moderno? :-D

Ho provato con un OpenWRT chaos calmer e in effetti "out of the box"
l'opzione -u di iw non funziona.

Ho ricompilato iw 4.3 togliendo un unico hunk dalla patch che avevamo
gia' individuato:

diff --git a/package/network/utils/iw/patches/200-reduce_size.patch
b/package/network/utils/iw/patches/200-reduce_size.patch
index dea24fb495..3118155d25 100644
--- a/package/network/utils/iw/patches/200-reduce_size.patch
+++ b/package/network/utils/iw/patches/200-reduce_size.patch
@@ -192,22 +192,6 @@
  };

  static void print_wifi_wpa(const uint8_t type, uint8_t len, const
uint8_t *data)
-@@ -1767,6 +1770,7 @@ void print_ies(unsigned char *ie, int ie
-                   ieprinters[ie[0]].name &&
-                   ieprinters[ie[0]].flags & BIT(ptype)) {
-                       print_ie(&ieprinters[ie[0]], ie[0], ie[1], ie + 2);
-+#if 0
-               } else if (ie[0] == 221 /* vendor */) {
-                       print_vendor(ie[1], ie + 2, unknown, ptype);
-               } else if (unknown) {
-@@ -1776,6 +1780,7 @@ void print_ies(unsigned char *ie, int ie
-                       for (i=0; i<ie[1]; i++)
-                               printf(" %.2x", ie[2+i]);
-                       printf("\n");
-+#endif
-               }
-               ielen -= ie[1] + 2;
-               ie += ie[1] + 2;
 @@ -1816,6 +1821,7 @@ static void print_capa_non_dmg(__u16 cap
                printf(" ESS");
        if (capa & WLAN_CAPABILITY_IBSS)


E con questo iw cosi' compilato su OpenWRT CC l'opzione -u e lo script
sitesurvey funzionano come dovrebbero.

Per quanto riguarda le dimensioni del binario iw, stiamo parlando di
4820 bytes di differenza:  75049 bytes (originale) vs. 79869 bytes
(patchato come sopra).

Se non vogliono imbarcare 'sti 5Kbytes forse possiamo fare un feed a
parte con un package "iw-full", o qualcosa del genere.

Clauz




More information about the ninux-dev mailing list