xav*_*ard 10 networking debian raspberry-pi
我正在尝试创建一个由 5 台计算机(一台 Windows PC 和 4 个装有 raspbian 的 raspberry pi)组成的临时 wifi。树莓派将通过 mqtt 进行通信,但这不是重点。我遇到的问题是我总是需要执行以下操作才能wlan0在每次重新启动后获得界面:
sudo ifdown wlan0
sudo ifup wlan0
Run Code Online (Sandbox Code Playgroud)
你知道为什么吗?这是我的 conf(除了 IP 地址外,每个 pi 上都相同!)
~ % 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
Run Code Online (Sandbox Code Playgroud)
任何的想法?
它似乎有效,但并非总是如此——就像 10 次中的 1 次启动一样,真的很奇怪吗?!
您是否尝试过以下解决方案之一?我必须在这里猜测答案,因为问题不容易重现,可能是您获得的驱动程序有问题。
在接口文件中尝试注释掉“auto wlan0”并保留“allow-hotplug wlan0”
#auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
... rest of the config ...
Run Code Online (Sandbox Code Playgroud)可能不是您正在寻找的理想解决方案,但尝试使用以下内容在您最喜欢的脚本目录中创建一个具有执行权限的新 shell 脚本。
ifdown wlan0
ifup wlan0
Run Code Online (Sandbox Code Playgroud)
然后将以下行添加到您的接口文件中。
auto wlan0
iface wlan0 inet dhcp
... rest of the config ...
post-up /path-to-your-script/script.sh
Run Code Online (Sandbox Code Playgroud)当您的计算机在没有无线连接的情况下启动时。尝试摆弄iwconfig不同的参数(尝试 man iwconfig 以获取完整列表),直到您的界面出现。我想可能是txpower某种开关可能会帮助你在这里。如果这对你有用,那么pre-up <command-that-worked>在你的接口文件中使用,就像在第二个答案中一样,并将命令留在那里。
所以最后是这样的(记住将绝对路径传递给 (pre|post)-up
pre-up /sbin/iwconfig wlan0 txpower on
Run Code Online (Sandbox Code Playgroud)小智 5
这里的问题完全相同。问题是时间问题:启动过程发出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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45563 次 |
| 最近记录: |