Siempre necesito ifdown / ifup wlan0 después de reiniciar

8

Estoy tratando de crear un wifi ad-hoc compuesto de 5 computadoras (una PC con Windows y 4 pips de frambuesa cargadas con un raspbian). El raspberry pi hablará a través de mqtt, pero ese no es el punto. El problema que tengo es que siempre necesito hacer lo siguiente para tener la wlan0interfaz después de cada reinicio:

sudo ifdown wlan0
sudo ifup wlan0

¿Sabes por qué? Aquí está mi conf (¡lo mismo en cada pi excepto la dirección IP obviamente!)

~ % ifconfig                 
eth0      Link encap:Ethernet  HWaddr b8:27:eb:ff:88:99  
          inet addr:192.168.1.41  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:951 errors:0 dropped:0 overruns:0 frame:0
          TX packets:266 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:66321 (64.7 KiB)  TX bytes:43663 (42.6 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:0f:13:51:05:8c  
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:2520 (2.4 KiB)

~ % iwconfig
wlan0     IEEE 802.11bgn  ESSID:"mirroir"  
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 42:B1:44:EB:D2:C1   
          Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

lo        no wireless extensions.

eth0      no wireless extensions.


~ % more /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid mirroir
    wireless-mode ad-hoc
    wireless-key 967136deac

~ % sudo route add -net 192.168.0.0 netmask 255.255.255.0 wlan0

~ % netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.1.254   0.0.0.0         UG        0 0          0 eth0
192.168.0.0     *               255.255.255.0   U         0 0          0 wlan0
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0

¿Alguna idea?

Parece funcionar, pero no siempre, como 1 arranque de 10, ¿realmente extraño?

xavier.seignard
fuente
¿Es esa la configuración después de abajo / arriba o antes?
ott--
después, antes wlan0no tiene ip
xavier.seignard
no puedo ver cómo está descubriendo la puerta de enlace ip? tal vez intente agregar gateway 192.168.1.254directamente debajo de la netmask 255.255.255.0línea en su /etc/network/interfacesarchivo
mulllhausen

Respuestas:

7

¿Has probado alguna de las siguientes soluciones? Tengo que adivinar la respuesta aquí, ya que el problema no es fácil de reproducir, puede ser un problema con el controlador que tienes.

  1. En el archivo de interfaces intente comentar "auto wlan0" y simplemente mantenga "allow-hotplug wlan0"

    #auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    
  2. Probablemente no sea la solución ideal que está buscando, pero intente crear un nuevo script de shell con privilegios de ejecución en su directorio de scripts favoritos con el siguiente contenido.

    ifdown wlan0 
    ifup wlan0 
    

    Luego agregue la siguiente línea a su archivo de interfaces.

    auto wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    post-up /path-to-your-script/script.sh
    
  3. Cuando su computadora se inicia sin la conexión inalámbrica activa. Intente jugar con iwconfigdiferentes parámetros (intente man iwconfig para obtener una lista completa) hasta que aparezca su interfaz. Supongo que puede ser una txpowerespecie de cambio que podría ayudarte aquí. Si eso funciona para usted, entonces úselo pre-up <command-that-worked>en su archivo de interfaces como en la segunda respuesta y deje el comando allí.

    Entonces, algo así al final (recuerde pasar rutas absolutas a (pre | post) -up

    pre-up /sbin/iwconfig wlan0 txpower on
    
Purinda Gunasekara
fuente
Hola, gracias por esa respuesta completa! Probé la primera solución sin éxito. La solución alternativa que uso es la solución 2, la agregué /etc/rc.local. Debería probar la tercera solución que está dando. ¡Gracias!
xavier.seignard
¿Alguna de las soluciones anteriores funcionó para usted? si ha logrado resolver el problema, por favor comparta .. gracias
Purinda Gunasekara
hola, aún no he probado el tercero, intentaré la próxima semana
xavier.seignard
La solución 1 funcionó para mí.
dgmdan
3

Exactamente el mismo problema aquí. El problema era un problema de tiempo: wlan0 no estaba listo cuando el proceso de arranque emitió el ifup.

pre-up sleep 5Resolví esto agregando una declaración de espera a wlan0 en el archivo de interfaces:

marcelo@breeze:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
  pre-up sleep 5 
  address 10.0.0.42
  netmask 255.255.255.0
  gateway 10.0.0.2
  dns-nameservers 10.0.0.2
  wpa-ssid mycoolssid
  wpa-psk returnguantanamo
マ ル ち ゃ ん だ よ
fuente
0

Quizás desee utilizar diferentes redes "locales" para las interfaces eth0 y wlan0.

Entonces, para wlan use network like 10.10.0.1, mask 255.255.255.0 Y para eth use network like 192.168.0.1, mask255.255.255.0

No he tenido este problema en RPI (probablemente porque siempre mantengo las direcciones de red wlan0 y eth0 muy diferentes). Pero en mi PC con Windows tengo este problema todo el tiempo: cuando uso la 192.168.1.xconexión inalámbrica con y luego me conecto al puerto ethernet, por ejemplo, mi rasbperry con 192.168.0.xdirección ( tenga en cuenta el tercer octeto), siempre pierdo la conexión de red.

Dimitry K
fuente
0

Descomentar auto eth0, auto eth1o auto wlanpara la interfaz que deseen llegar al arrancar la unidad.

payaso
fuente