Autor Tema: ¿tienes un chip no reconocido? instala los ultimos drivers disponibles  (Leído 2432 veces)

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

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
La idea es aprovechar los drivers wifi mas nuevos que haya en linux, para intentar que chips no reconocidos funcionen , o que los que funcionen mal, intenten mejorar.


despues de crear el xzm , hay que reiniciar para que funcione.


backports_updater

Código: [Seleccionar]
#!/bin/sh

# Script by www.seguridadwireless.net

SCRIPT_VERSION=20160214

############################################################
## Funciones comunes. Su nombre empieza por f_ ##
############################################################
f_variables(){
. /opt/wifislax-updaters/Funciones/funciones_updater
}

############################################################
## Funciones propias del script. Su nombre empieza por F_ ##
############################################################
# Definicion de variables
F_variables() {
PRGNAM=backports
echo -ne "\033]2;${PRGNAM}_updater\007"
WEB=https://www.kernel.org/pub/linux/kernel/projects/backports/stable/
VERSION=`curl -s $WEB|grep v[0-9]|tail -1|cut -d v -f2|cut -d / -f-1`
RAMA=`curl -s ${WEB}v$VERSION/|grep .xz|head -1|sed 's/backports-//g'|cut -d '"' -f2|cut -d t -f-1|sed 's/.$//g'`
SRCNAM=$PRGNAM-$RAMA
EXTENSION=tar.xz
SOURCES=$PRGNAM-$RAMA.$EXTENSION
DOWNLOAD=${WEB}v$VERSION/$SOURCES
}

# Descomprimimos el fichero descargado y compilamos
F_compilar(){
echo
echo "$VERDE"Configurando ..."$CIERRE"
sleep 1
make defconfig-wifi || exit 1

###################################
### Generamos parche wireless  ####
###################################
cat > Negative-channel-multi.patch << "EOF"
--- 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;

--- 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/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3588,9 +3589,9 @@ static int ieee80211_cfg_get_channel
  if (chanctx_conf) {
  *chandef = chanctx_conf->def;
  ret = 0;
- } else if (local->open_count > 0 &&
+ } else /*if (local->open_count > 0 &&
     local->open_count == local->monitors &&
-    sdata->vif.type == NL80211_IFTYPE_MONITOR) {
+    sdata->vif.type == NL80211_IFTYPE_MONITOR)*/ {
  if (local->use_chanctx)
  *chandef = local->monitor_chandef;
  else

EOF

# Aplicamos parche si hay error se parara el proceso ( exit 1 )
echo ""
echo ""$VERDE"Aplicando parche wireless para channel -1 "$BLANCO"..."$CIERRE""
sleep 3
patch -f -p1 < Negative-channel-multi.patch || exit 1

echo
echo "$VERDE"Compilando ..."$CIERRE"
sleep 1
make || exit 1
make modules_install INSTALL_MOD_PATH=$PKG ||exit 1
rm -rf $PKG/lib/modules/$(uname -r)/*.*
}

###################################
## BLOQUE PRINCIPAL DE EJECUCION ##
###################################
# Si se cierra el script inesperadamente, ejecutar la funcion de limpieza
trap f_exitmode SIGHUP SIGINT

#Inicializamos las variables globales
f_variables
#Comprobamos conexion a Internet
f_comprobarConexion
#Inicializamos las variables del script
F_variables
#Creamos directorio de trabajo
f_directorioTemporal
#Mostramos el mensaje de presentacion
f_presentacion
#Comprobamos updates del script
f_comprobarUpdates
#Asignamos o detectamos arquitectura
f_arquitectura
#Comprobamos version instalada del paquete
f_versionInstalada
#Si no existe el fichero se descargara
f_download
#Preparamos entorno
f_preparar
#Descomprimir fichero descargado y compilamos
F_compilar
#Hacemos strip sobre el paquete
f_strip
#Creamos xzm , instalamos y salimos
f_tareasFinales