Autor Tema: parches que vais a necesitar en 3.8 en adelante  (Leído 33806 veces)

0 Usuarios y 1 Visitante están viendo este tema.

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #20 en: 01-09-2013, 00:18 (Domingo) »
es posible que aplicara mal, hace un rato he corregido un typo. esto me pasa por modificar los parches a mano en lugar de recrearlos.

he unificado los dos parches en una nueva revision combinada de ambos, asi que el enlace del parche está actualizado
https://gist.github.com/alist3r/6400421



alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #21 en: 01-09-2013, 00:22 (Domingo) »
sobre el tema de las ralink, aunque tengo el código del reaver muy por la mano y puedo tratar de modificarlo para que no las estropicie, creo que es mas logico seguir hurgando en el kernel, que es el responsable último de denegar ciertas peticiones al software.
lo malo va a ser como el culpable sea el firmware... sería irresoluble
« Última modificación: 01-09-2013, 00:23 (Domingo) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #22 en: 01-09-2013, 00:25 (Domingo) »
el parche unificado aun va mal.
mi version de "patch" , es  ...  GNU patch 2.7 , por si influyese en algo ,aunque no creo.


wifislax linux-3.10.10 # patch -p1 -i /root/Descargas/linux-3.10.10/3.8-monitor-mode-busy-channel-patch
patching file net/wireless/chan.c
patching file net/mac80211/cfg.c
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 808 with fuzz 1 (offset 7 lines).
wifislax linux-3.10.10 #
« Última modificación: 01-09-2013, 00:26 (Domingo) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #23 en: 01-09-2013, 00:31 (Domingo) »
patch unexpectedly ends in middle of line

This error seems to occur when the patch file ends on a line that includes nothing but whitespace characters. Patch files should always end with a Unix return character. If you encounter this error, check to see that the last line of your patch does not contain whitespace characters.

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #24 en: 01-09-2013, 00:35 (Domingo) »
mientras compilo kernel nuevo, me miro lo de las ralink

en rt2x00link.c:228 veo que la rutina rt2x00link_update_stats ejecuta código discriminatorio con las inferfaces que no estén en modo STA, saltándoselas a la hora de proporcionar información de estado.

Código: [Seleccionar]
       /*
         * No need to update the stats for !=STA interfaces
         */
        if (!rt2x00dev->intf_sta_count)
                return;

        /*

creo que aqui serialmonkey no contaba con el hecho de que algunas herramientas se asocian al AP usando procedimentos estandar, mientras que escuchan los paquetes usando la interfaz virtual.

parche al canto.

el código del llamado "link tuner" tambien es discriminatorio pero si es lo que creo que es no le veo sentido a su uso en una interfaz en modo monitor, de hecho me refuerzo con los comentarios de serialmonkey

Código: [Seleccionar]
 /*
         * Link tuning should only be performed when
         * an active sta interface exists. AP interfaces
         * don't need link tuning and monitor mode interfaces
         * should never have to work with link tuners.
         */
        if (!rt2x00dev->intf_sta_count)
                return;

        /**
asi que lo dejo como está

sobre el fallo del parche, está claro. una linea en blanco al final. mi marca de la casa por darle a las teclas cuando no toca.
por suerte es fácil de arreglar.
« Última modificación: 01-09-2013, 01:14 (Domingo) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #25 en: 01-09-2013, 01:03 (Domingo) »
no se si te habras fijado ...

code original en 3.10.10

Código: [Seleccionar]
} else if (local->open_count == local->monitors) {
local->_oper_chandef = *chandef;
ieee80211_hw_config(local, 0);
}


parche ...que ya te avise que era para 3.8 , y creo que no vale en 3.10

-   } else if (local->open_count == local->monitors) {
+   // Patch: Always allow channel change, even if a normal virtual interface is present
+   } else /*if (local->open_count == local->monitors)*/ {
       local->_oper_channel = chandef->chan;

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #26 en: 01-09-2013, 01:07 (Domingo) »
no se si te habras fijado ...

code original en 3.10.10

Código: [Seleccionar]
} else if (local->open_count == local->monitors) {
local->_oper_chandef = *chandef;
ieee80211_hw_config(local, 0);
}


parche ...que ya te avise que era para 3.8 , y creo que no vale en 3.10

-   } else if (local->open_count == local->monitors) {
+   // Patch: Always allow channel change, even if a normal virtual interface is present
+   } else /*if (local->open_count == local->monitors)*/ {
       local->_oper_channel = chandef->chan;

si, este es el que has puesto antes, que ya lo he sumado con el que yo proponia inicialmente.
ahora mismo, si haces click en el enlace del primer post, te llevará a un parche que resulta de la suma del tuyo con el mio.

https://gist.github.com/alist3r/6400421

el cual me aplica limpiamente en mis fuentes 3.10.10, que solo tienen el parche brainfuck scheduler, que no afecta para este caso, por lo que imagino que en las fuentes vainilla debe aplicar igual de bien.

estamos sincronizados hasta aqui?
« Última modificación: 01-09-2013, 01:11 (Domingo) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #27 en: 01-09-2013, 01:24 (Domingo) »
no , no estamos sincronizados , me perdi hace un rato.  :(

te estoy indicando que el code que yo propuse , miralo , con el 3.10.10  , por que la funciona no es igual.el ode cambio ....es lo que te intento decir.


me sigue saliendo el dichoso mensaje

wifislax linux-3.10.10 # patch -Np1 -i /root/Descargas/linux-3.10.10/3.8-monitor-mode-busy-channel-patch
patching file net/wireless/chan.c
patching file net/mac80211/cfg.c
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 808 with fuzz 1 (offset 7 lines).
wifislax linux-3.10.10 #

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #28 en: 01-09-2013, 01:28 (Domingo) »
asegurate de que empiezas con fuentes limpias, o con parches que no nos afecten.

aplica la ultima revision del parche que he puesto en mi gist:
Código: [Seleccionar]
https://gist.github.com/alist3r/6400421/raw/8a041fc60ba619bc7d7ccddbf10e33f76906d633/3.8-monitor-mode-busy-channel-patch
a mi no me peta, pero en caso de que te pete, se trata de lineas en blanco que sobran.

tampoco te obsesiones. si te aplican mi parche y el tuyo por separado, está perfecto. lo importante es probar el código. al final de todo se puede hacer un udiff con absolutamente todos los parches, incluidos los de drivers específicos.
« Última modificación: 01-09-2013, 01:35 (Domingo) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #29 en: 01-09-2013, 01:39 (Domingo) »
eres un cabr0n  ;D

parche reparado ....cambialo tio , por que el tuyo , se queda de lineas o espacios en blanco.


Código: [Seleccionar]
--- a/net/mac80211/cfg.c Tue May 28 16:57:23 2013 -0400
+++ b/net/mac80211/cfg.c Tue May 28 17:16:15 2013 -0400
@@ -801,3 +801,4 @@
  }
- } else if (local->open_count == local->monitors) {
+ // Patch: Always allow channel change, even if a normal virtual interface is present
+ } else /*if (local->open_count == local->monitors)*/ {
  local->_oper_channel = chandef->chan;
--- a/net/wireless/chan.c 2013-08-29 18:47:51.000000000 +0200
+++ b/net/wireless/chan.c 2013-08-31 22:20:45.014734447 +0200
@@ -441,4 +441,2 @@
  return -EOPNOTSUPP;
- if (!cfg80211_has_monitors_only(rdev))
- return -EBUSY;

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #30 en: 01-09-2013, 01:40 (Domingo) »
insisto en esta parte ..


local->_oper_channel = chandef->chan;


por que el code original , no lleva esa linea ....  ^-^


Ahora que todos entran , empezare de cero , en /usr/src  , para ya si configurar el kernel ..y ver que pasa.
« Última modificación: 01-09-2013, 01:44 (Domingo) por USUARIONUEVO »

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #31 en: 01-09-2013, 01:47 (Domingo) »
eres un cabr0n  ;D

parche reparado ....cambialo tio , por que el tuyo , se queda de lineas o espacios en blanco.


Código: [Seleccionar]
--- a/net/mac80211/cfg.c Tue May 28 16:57:23 2013 -0400
+++ b/net/mac80211/cfg.c Tue May 28 17:16:15 2013 -0400
@@ -801,3 +801,4 @@
  }
- } else if (local->open_count == local->monitors) {
+ // Patch: Always allow channel change, even if a normal virtual interface is present
+ } else /*if (local->open_count == local->monitors)*/ {
  local->_oper_channel = chandef->chan;
--- a/net/wireless/chan.c 2013-08-29 18:47:51.000000000 +0200
+++ b/net/wireless/chan.c 2013-08-31 22:20:45.014734447 +0200
@@ -441,4 +441,2 @@
  return -EOPNOTSUPP;
- if (!cfg80211_has_monitors_only(rdev))
- return -EBUSY;

si xD ya lo he reconocido antes, que se me van los dedos.
lo reparo en el gist, que quede bien ahi.

voy a trazar el oper_channel a ver

EDIT: esa linea permite que las interfaces en modo monitor tengan, en el struct que corresponde con los datos de su configuracion, la informacion del canal donde operan.

OJO: en un parche, las lineas que no tienen un simbolo + o un simbolo - son marcadores de contexto. los marcadores de contexto no son añadidos ni restas, sino que deben estar tanto en el fichero origen como en el fichero resultante. se usan para que el sistema de parches sepa que las lineas que hay arriba o abajo son las que se espera que sean, de modo que un cambio de contexto fuerza la ruptura del parche (eso es algo que quieres que pase, porque asi te enteras cuando el código cambia)

el offset que se observa a veces al aplicar parches, indica que el contexto es correcto pero que está desplazado una o dos lineas mas arriba o abajo, cosa que se da por válida hasta X lineas, donde X está marcado por el "fuzzy factor"

por tanto, la linea que comentas no es un añadido.
« Última modificación: 01-09-2013, 02:01 (Domingo) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #32 en: 01-09-2013, 01:54 (Domingo) »
voy a compilar con los que tenemos y te cuento..


Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #33 en: 01-09-2013, 02:12 (Domingo) »
tras el parcheo ..el fichero

/net/mac80211/cfg.c


Código: [Seleccionar]
// Patch: Always allow channel change, even if a normal virtual interface is present
} else /*if (local->open_count == local->monitors)*/ {
local->_oper_chandef = *chandef;
ieee80211_hw_config(local, 0);
}

¿ ves lo que te digo ?

no esta en ninguna parte la linea ...   local->_oper_channel = chandef->chan;




esta linea esta igual , que antes del parche ...y creo que esta hay la miga...

local->_oper_chandef = *chandef;

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #34 en: 01-09-2013, 02:46 (Domingo) »
tras el parcheo ..el fichero

/net/mac80211/cfg.c


Código: [Seleccionar]
// Patch: Always allow channel change, even if a normal virtual interface is present
} else /*if (local->open_count == local->monitors)*/ {
local->_oper_chandef = *chandef;
ieee80211_hw_config(local, 0);
}

¿ ves lo que te digo ?

no esta en ninguna parte la linea ...   local->_oper_channel = chandef->chan;




esta linea esta igual , que antes del parche ...y creo que esta hay la miga...

local->_oper_chandef = *chandef;

entre que edito mucho, y no te llega aviso de los cambios, y que estoy haciendo mil cosas a la vez...

la linea de contexto no cambia. revisa algunos comentarios que he dejado en posts anteriores.
si esa linea NO ESTA, añádela linea a mano en las fuentes y ya arreglaremos los parches al final, haciendo el diff contra las fuentes originales.
« Última modificación: 01-09-2013, 02:52 (Domingo) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #35 en: 01-09-2013, 02:49 (Domingo) »
pff ,esta acabando de compilar el kernel ...  ;D


ahora lo reparo ... y le vuelvo a meter.

aunque creo , que seguimos sin entendernos.


yo me refiero al hecho de que esa linea que aparece en el patch ... no esta en el code del kernel ...

y no se si esque esa linea se añade ,o esque estamos usando un code que no vale.
« Última modificación: 01-09-2013, 02:51 (Domingo) por USUARIONUEVO »

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #36 en: 01-09-2013, 02:57 (Domingo) »
en las fuentes de 3.10.10 limpias si que está esa linea
Código: [Seleccionar]
        } else if (local->open_count == local->monitors) {
                local->_oper_chandef = *chandef;
                ieee80211_hw_config(local, 0);
        }
y hay que cambiarla, segun el parche, a
Código: [Seleccionar]
        } else {
                local->_oper_chandef = *chandef;
                ieee80211_hw_config(local, 0);
        }

nada de esto me ha dado problemas a mi.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #37 en: 01-09-2013, 03:01 (Domingo) »
exacto chico , pero mira el patch

       local->_oper_channel = chandef->chan;


nada que ver esa linea con la del kernel... ya no se si esque yo he hecho un megamix mal hecho .  :'(

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14431
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #38 en: 01-09-2013, 03:04 (Domingo) »
Bueno , cambiare ese code a manopla ...aunque si lo dejas pasar , al final no sabremos cual es el bueno.


Estoy imbecil perdio ...


asi me queda a mi la funcion , con el parche que yo tengo , que hace lomismo , pero deja comentada la funcion dañina.



Código: [Seleccionar]
// Patch: Always allow channel change, even if a normal virtual interface is present
} else /*if (local->open_count == local->monitors)*/ {
local->_oper_chandef = *chandef;
ieee80211_hw_config(local, 0);
}


asi que lo tenia bien , y ya estaba a punto de darle al

make modules_install


me cague to ,que me lio yo solo. , lo he tirado y estaba bien parcheado.  :-\
« Última modificación: 01-09-2013, 03:16 (Domingo) por USUARIONUEVO »

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #39 en: 01-09-2013, 03:18 (Domingo) »
te cuento.

he descomprmido las fuentes limpias.

ni siquiera he aplicado el patch set de ck, que es lo primero que hago siempre.

he comprobado que la linea con el "chandef" está ahi. cosa que leyendo el código me parece lógica y necesaria puesto que solo tenemos que cambiar el condicional de arriba.

he aplicado el parche combinado tuyo y mio, tal como está ahora mismo en el git, con éxito:
Código: [Seleccionar]
alex@engetsu:~/src/linux-3.10.10$ patch -p1 --dry-run < ../patches/wifi/gist6400421-3ad4d0de30c18079063c3c7f87fc5c25aff1651a/3.8-monitor-mode-busy-channel-patch
patching file net/mac80211/cfg.c
Hunk #1 succeeded at 808 with fuzz 1 (offset 7 lines).
patching file net/wireless/chan.c
y listo