Estoy intentando crear un wifi ad-hoc compuesto por 5 computadoras (una PC con Windows y 4 Raspberry Pi cargadas con una Raspbian). La 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 poder tener la wlan0
interfaz después de cada reinicio:
sudo ifdown wlan0
sudo ifup wlan0
¿Sabes por qué? Aquí está mi configuración (¡la misma 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 cada 10, ¿realmente raro?
Respuesta1
¿Has probado una 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.
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 ...
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 favorito 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
Cuando su computadora se inicia sin la conexión inalámbrica activa. Intente jugar
iwconfig
con diferentes parámetros (pruebe con man iwconfig para obtener una lista completa) hasta que aparezca su interfaz. Supongo que puede habertxpower
algún tipo de cambio que te ayude. Si eso funciona para usted, utilícelopre-up <command-that-worked>
en su archivo de interfaces como en la segunda respuesta y deje el comando allí.Entonces, algo como esto al final (recuerde pasar rutas absolutas a (pre|post)-up
pre-up /sbin/iwconfig wlan0 txpower on
Respuesta2
Exactamente el mismo problema aquí. El problema era una cuestión de tiempo: wlan0 no estaba listo cuando el proceso de arranque emitió el archivo ifup
.
Resolví esto agregando una declaración de espera pre-up sleep 5
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
Respuesta3
Quizás desee utilizar diferentes redes "locales" para las interfaces eth0 y wlan0.
Entonces, para wlan use una red como 10.10.0.1
máscara 255.255.255.0
y para eth use una red como 192.168.0.1
máscara255.255.255.0
No he tenido este problema en RPI (probablemente porque siempre mantengo las IP de red wlan0 y eth0 muy diferentes). Pero en mi PC con Windows tengo este problema todo el tiempo: cuando uso conexión inalámbrica 192.168.1.x
y luego lo conecto al puerto Ethernet, por ejemplo mi rasbperry con 192.168.0.x
dirección (tenga en cuenta el tercer octeto), siempre pierdo la conexión de red.
Respuesta4
Descomentar auto eth0
o auto eth1
para auto wlan
la interfaz que desea que aparezca cuando se inicia la unidad.