Eu sempre preciso ifdown / ifup wlan0 após a reinicialização

8

Estou tentando criar um wifi ad-hoc feito de 5 computadores (um PC com Windows e 4 pi de framboesa com um raspbian). O pi framboesa vai falar através mqtt, mas esse não é o ponto. O problema que tenho é que eu sempre preciso fazer o seguinte para ter a interface wlan0 após cada reinicialização:

sudo ifdown wlan0
sudo ifup wlan0

Você sabe por quê? Aqui está o meu conf (o mesmo em cada pi, exceto o endereço 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

Alguma ideia?

Parece funcionar, mas nem sempre - como 1 boot de 10, realmente estranho?!

    
por xavier.seignard 30.09.2013 / 23:06

4 respostas

7

Já experimentou uma das soluções abaixo? Eu tenho que adivinhar a resposta aqui como o problema não é fácil de reproduzir, pode ser um problema com o driver que você tem.

  1. No arquivo de interfaces, tente comentar "auto wlan0" e mantenha "allow-hotplug wlan0"

    #auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    
  2. Provavelmente não é a solução ideal que você está procurando, mas tente criar um novo shell script com privilégios de execução em seu diretório de scripts favoritos com o seguinte conteúdo.

    ifdown wlan0 
    ifup wlan0 
    

    Em seguida, adicione a seguinte linha ao seu arquivo de interfaces.

    auto wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    post-up /path-to-your-script/script.sh
    
  3. Quando o computador é inicializado sem a conexão sem fio ativa. Tente mexer com iwconfig com parâmetros diferentes (tente man iwconfig para obter uma lista completa) até que sua interface apareça. Eu acho que pode ser txpower tipo de opção pode ajudá-lo aqui. Se isso funciona para você, então use pre-up <command-that-worked> em seu arquivo de interfaces como na segunda resposta e deixe o comando lá.

    Então, algo assim no final (lembre-se de passar caminhos absolutos para (pre | post) -up

    pre-up /sbin/iwconfig wlan0 txpower on
    
por 01.10.2013 / 08:23
3

Exatamente o mesmo problema aqui. O problema era um problema de tempo: o wlan0 não estava pronto quando o processo de inicialização emitiu o ifup .

Eu resolvi isso adicionando uma instrução de espera pre-up sleep 5 ao wlan0 no arquivo 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
    
por 02.07.2017 / 08:49
0

Talvez você queira usar redes "locais" diferentes para as interfaces eth0 e wlan0.

Então, para wlan, use rede como 10.10.0.1 , mascarar 255.255.255.0 E para eth use network como 192.168.0.1 , mask 255.255.255.0

Eu não tive esse problema no RPI (provavelmente porque eu sempre mantenho IPs de rede wlan0 e eth0 muito diferentes). Mas no meu PC windows eu tenho esse problema o tempo todo: Quando eu uso wireless com 192.168.1.x e então eu plto na porta ethernet, por exemplo meu rasbperry com 192.168.0.x address (mente o terceiro octeto), eu sempre perco conexão de rede.

    
por 25.02.2014 / 16:25
0

Remova o comentário auto eth0 , auto eth1 ou auto wlan da interface que você deseja criar quando a unidade inicializar.

    
por 17.07.2015 / 15:11