再起動後は常にifdown / ifup wlan0が必要です。

再起動後は常にifdown / ifup wlan0が必要です。

私は5台のコンピュータ(Windows PC 1台とRaspbianがインストールされたRaspberry Pi 4台)で構成された一時的なWi-Fiを作成しようとしています。 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

どんなアイデアがありますか?

これはうまくいくようですが、必ずしもそうではありません。ブートが10回中1回程度になるようです。本当に変ですか? !

ベストアンサー1

次の回避策のいずれかを試してみましたか?問題は簡単に再現されず、購入したドライバに問題がある可能性があるため、ここで答えを推測する必要があります。

  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>2番目の答えのようにインターフェースファイルで使用し、そこにコマンドを残してください。

    だから結局これが起こります((pre | post)-upに絶対パスを渡すことを忘れないでください)

    pre-up /sbin/iwconfig wlan0 txpower on
    

おすすめ記事