J'ai toujours besoin d'ifdown / ifup wlan0 après le redémarrage

8

J'essaie de créer un wifi ad-hoc composé de 5 ordinateurs (un PC Windows et 4 Raspberry Pi chargés avec un raspbian). Le Raspberry Pi parlera via mqtt, mais ce n'est pas le but. Le problème que j'ai est que je dois toujours faire ce qui suit pour avoir l' wlan0interface après chaque redémarrage:

sudo ifdown wlan0
sudo ifup wlan0

Est-ce que tu sais pourquoi? Voici ma conf (la même sur chaque pi sauf l'adresse IP évidemment!)

~ % 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

Une idée?

Cela semble fonctionner, mais pas toujours - comme 1 démarrage sur 10, vraiment bizarre?!

xavier.seignard
la source
Est-ce le réglage après la descente / montée ou avant?
ott--
après, avant wlan0n'a pas d'ip
xavier.seignard
je ne peux pas voir comment il détermine l'IP de la passerelle? essayez peut-être d'ajouter gateway 192.168.1.254directement sous la netmask 255.255.255.0ligne dans votre /etc/network/interfacesfichier
mulllhausen

Réponses:

7

Avez-vous essayé l'une des solutions ci-dessous? Je dois deviner la réponse ici car le problème n'est pas facile à reproduire, peut-être un problème avec le pilote que vous avez obtenu.

  1. Dans le fichier d'interface, essayez de commenter "auto wlan0" et gardez simplement "allow-hotplug wlan0"

    #auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    
  2. Ce n'est probablement pas la solution idéale que vous recherchez, mais essayez de créer un nouveau script shell avec des privilèges d'exécution dans votre répertoire de scripts préféré avec le contenu suivant.

    ifdown wlan0 
    ifup wlan0 
    

    Ajoutez ensuite la ligne suivante à votre fichier d'interface.

    auto wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    post-up /path-to-your-script/script.sh
    
  3. Lorsque votre ordinateur démarre sans que la connexion sans fil soit active. Essayez de jouer avec iwconfigdifférents paramètres (essayez man iwconfig pour obtenir une liste complète) jusqu'à ce que votre interface apparaisse. Je suppose que peut-être une txpowersorte de commutateur pourrait vous aider ici. Si cela fonctionne pour vous, utilisez-le pre-up <command-that-worked>dans votre fichier d'interface comme dans la 2ème réponse et laissez la commande là.

    Donc quelque chose comme ça à la fin (n'oubliez pas de passer des chemins absolus à (pré | post) -up

    pre-up /sbin/iwconfig wlan0 txpower on
    
Purinda Gunasekara
la source
Salut, merci pour cette réponse complète! J'ai essayé la première solution sans succès. La solution de contournement que j'utilise est la solution 2, je l'ai ajoutée /etc/rc.local. Je devrais essayer la troisième solution que vous proposez. Merci!
xavier.seignard
l'une des solutions ci-dessus a-t-elle fonctionné pour vous? si vous avez réussi à résoudre le problème, veuillez partager .. merci
Purinda Gunasekara
salut, je n'ai pas encore essayé le troisième, je vais essayer la semaine prochaine
xavier.seignard
La solution 1 a fonctionné pour moi.
dgmdan
3

Exactement le même problème ici. Le problème était un problème de synchronisation: wlan0 n'était pas prêt lorsque le processus de démarrage a émis le fichier ifup.

J'ai résolu cela en ajoutant une instruction d'attente pre-up sleep 5à wlan0 dans le fichier d'interface:

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
マ ル ち ゃ ん だ よ
la source
0

Vous souhaitez peut-être utiliser différents réseaux "locaux" pour les interfaces eth0 et wlan0.

Donc, pour un réseau wlan comme 10.10.0.1, masque 255.255.255.0 Et pour un réseau eth comme 192.168.0.1, masque255.255.255.0

Je n'ai pas eu ce problème sur RPI (probablement parce que je garde toujours les IP réseau wlan0 et eth0 très différents). Mais sur mon PC Windows, j'ai ce problème tout le temps: lorsque j'utilise sans fil avec 192.168.1.xet que je me connecte au port Ethernet, par exemple mon rasbperry avec 192.168.0.xadresse (attention au 3ème octet), je perds toujours la connexion réseau.

Dimitry K
la source
0

Ne commentez pas auto eth0, auto eth1ou auto wlanpour l'interface que vous souhaitez voir apparaître lorsque l'unité démarre.

clowen
la source