Мне всегда нужно ifdown / ifup wlan0 после перезагрузки

8

Я пытаюсь создать специальный Wi-Fi, сделанный из 5 компьютеров (один ПК с Windows и 4 Raspberry Pi, загруженные Rasbian). Raspberry Pi будет говорить через MQTT, но это не главное. Проблема, с которой я столкнулся, заключается в том, что мне всегда нужно делать следующее, чтобы wlan0интерфейс имел после каждой перезагрузки:

sudo ifdown wlan0
sudo ifup wlan0

Ты знаешь почему? Вот мой конф (то же самое на каждом пи, кроме IP-адреса, очевидно!)

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

Есть идеи?

Вроде работает, но не всегда - как 1 бут из 10, действительно странно ?!

xavier.seignard
источник
Это настройка после нажатия вниз / вверх или до?
ot--
после того, как раньше wlan0не имеет IP
xavier.seignard
я не могу понять, как это выяснить IP шлюза? может быть, попробуйте добавить gateway 192.168.1.254прямо под netmask 255.255.255.0строкой в ​​вашем /etc/network/interfacesфайле
mulllhausen

Ответы:

7

Вы пробовали одно из решений ниже? Я должен угадать ответ здесь, так как проблема не легко воспроизвести, может быть проблема с драйвером, который вы получили.

  1. В файле интерфейсов попробуйте закомментировать «auto wlan0» и просто оставить «allow-hotplug wlan0»

    #auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    
  2. Возможно, это не идеальное решение, которое вы ищете, но попробуйте создать новый сценарий оболочки с привилегиями выполнения в каталоге ваших любимых сценариев со следующим содержимым.

    ifdown wlan0 
    ifup wlan0 
    

    Затем добавьте следующую строку в ваш файл интерфейсов.

    auto wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    post-up /path-to-your-script/script.sh
    
  3. Когда компьютер загружается без активного беспроводного соединения. Попробуйте поиграться с iwconfigразными параметрами (попробуйте man iwconfig, чтобы получить полный список), пока ваш интерфейс не появится. Я думаю, может быть, что- txpowerто вроде переключателя может помочь вам здесь. Если это работает для вас, используйте pre-up <command-that-worked>файл интерфейсов, как во втором ответе, и оставьте команду там.

    Так что-то вроде этого в конце (не забудьте передать абсолютные пути к (pre | post) -up

    pre-up /sbin/iwconfig wlan0 txpower on
    
Пуринда Гунасекара
источник
Привет, спасибо за полный ответ! Я попробовал первое решение без успеха. Обходной путь, который я использую, является решением 2, я добавил его в /etc/rc.local. Я должен попробовать третье решение, которое вы даете. Спасибо!
xavier.seignard
какое-либо из перечисленных решений сработало для вас? если вам удалось решить проблему, пожалуйста, поделитесь .. спасибо
Purinda Gunasekara
Привет, я еще не пробовал третий, попробую на следующей неделе
xavier.seignard
Решение 1 сработало для меня.
dgmdan
3

Точно такая же проблема здесь. Проблема была во времени: wlan0 не был готов, когда процесс загрузки выдал ifup.

Я решил это, добавив оператор ожидания pre-up sleep 5к wlan0 в файле интерфейсов:

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
マ ル ち ゃ ん だ よ
источник
0

Может быть, вы хотите использовать разные «локальные» сети для интерфейсов eth0 и wlan0.

Так что для WLAN использовать сеть, как 10.10.0.1, маска 255.255.255.0 И для Eth использовать сеть, как 192.168.0.1, маска255.255.255.0

У меня не было этой проблемы на RPI (вероятно, потому что я всегда держу IP-адреса сетей wlan0 и eth0 очень разными). Но на моем компьютере с Windows все время возникает эта проблема: когда я использую беспроводную связь с 192.168.1.xсетевым портом, а затем подключаюсь к Ethernet-порту, например, мой rasbperry с 192.168.0.xадресом (обратите внимание на третий октет), я всегда теряю сетевое соединение.

Димитрий К
источник
0

Раскоментируйте auto eth0, auto eth1или auto wlanдля интерфейса вы хотите , чтобы придумать , когда устройство сапоги.

clowen
источник