나는'm 를 사용하여 내 pi 모니터링하는 나의 힘 미터입니다. 데이터를 PC 로 전송 WiFi 연결하여 사용합니 EW-7811UN USB 어댑터입니다. 때 Wifi 연결 방울(꺼져 밤,또는 불안정한 연결)USB 어댑터 남아 있는 사용할 수 없습니다.
하는 방법이 있을 다시 시작 WiFi 연결지 않고 자동으로 다시 연결 WiFi adapter?
내가 선호하는 사용하지 않는 대부분의 네트워크 자동 구성하고 연결을 관리 daemon 물건을 처리합니다. 여기's(bash)스크립트는 연결을 유지하는 만큼 네트워크가 없는데 wifi 드라이버 또는 전원의 문제는 아이디어를 핑 라우터 N 초마다,그리고 실패하는 경우,다시 연결합니다:
#!/bin/bash
# make sure we aren't running already
what=`basename $0`
for p in `ps h -o pid -C $what`; do
if [ $p != $$ ]; then
exit 0
fi
done
# source configuration
. /etc/wifi.conf
exec 1> /dev/null
exec 2>> $log
echo $(date) > $log
# without check_interval set, we risk a 0 sleep = busy loop
if [ ! "$check_interval" ]; then
echo "No check interval set!" >> $log
exit 1
fi
startWifi () {
dhclient -v -r
# make really sure
killall dhclient
iwconfig $wlan essid $essid
dhclient -v $wlan
}
ifconfig $eth down
ifconfig $wlan up
startWifi
while [ 1 ]; do
ping -c 1 $router_ip & wait $!
if [ $? != 0 ]; then
echo $(date)" attempting restart..." >> $log
startWifi
sleep 1
else sleep $check_interval
fi
done
그래서/etc/습니다.conf
이 경우도 포함합니다:
router_ip=192.168.0.1
log=/var/log/wifi.log
wlan=wlan0
eth=eth0
essid=someNetwork
check_interval=5
이 모든 가정 열기 암호화되지 않은 네트워크(는 경우 그렇지 않으면,당신을 추가해야에 적절한 명령). 나는've 사용되 이에 대한 접근 방식이 다양한 리눅스 기계를 포함한 파이,그리고 완벽하게 작동합니다 그것은 유지 온라인 시스템은 무한정하는 경우에도,그것은 주기적으로 잠들(는 pi 할 수 없는 어쨌든).
괜찮은 간격을 확인하는 3~5 초 이 활동을 것이 큰 영향을 미치지 않습 시스템 리소스에서 모두.
당신이 절대적으로 마을 사용하지 않도록 설정할 필요가 네트워크 자동 첫 번째 구성,. 을 포함ifplugd
그리고 다른 네트워킹을 데몬이나 이것은 방해하는 귀하의 노력으로:
어떻게 사용하지 않도록 설정할 수 있습니 자동 구성된 네트워킹에 raspbian 에?
내가 사실에서 사용되는apt-get 제거 ifplugd
.
시작 네트워킹 부팅(터를 사용하여 파이 머리),저는 이 설정에서 실행하 raspbian 에서는/etc/rc.로컬
:
wifi_mod=`lsmod | grep 8192cu`
if [ "$wifi_mod" ]; then
echo "Starting wifi..."
/usr/bin/nice -n -10 /usr/local/bin/wifi &
else
echo "Starting ethernet..."
/sbin/ifconfig eth0 up
/sbin/dhclient eth0
fi
/usr/local/bin/은 스크립트입니다. 지 않는 경우't know what
좋은은 읽고,
사람이 좋다`.
의 포인트는만약에
는 경우 와이파이 동글 연결되어 있 pi,8192cu 모듈로드됩니다 커널에 의해 이 시점에서-그래서 wifi 시작해야 합니다. 그렇지 않은 경우,it's 는 것으로 간주 이더넷 연결에 사용되어야 합니다(만약 그것은 아't,하 고 dhclient 이 쓰레기 없 네트워크에 액세스).
이 일을 위해 당신은 아마을
그래서,이것을 가져옵 헤드리 pi 네트워크에서는 부팅 및 유지합니다. 당신이 원하는 방법으로 전환하 eth 실행하는 동안에서 로그인 없이,당신이 무언가를 할 수 있던udev 규칙을 위해 당 wifi dongle 니다.
나는 최근에 발견하는 콘솔 응용 프로그램 종류의 모든 무선 구성에서 지옥. 할 수도 있습니다 이 도구를 사용하여 구성 LAN 인터페이스를 제공합니다.
sudo apt-get install wicd-curses
그것은 꽤 몇 가지 다른 패키지 실행 자신의 데몬에서 배경지만 그것은 확실하게 구성하는 모든 것을 훨씬 빠르고 쉽게 할 수 있습니다. 실행
sudo wicd-curses
는 경우 메시지가 표시되지 않 검출 네트워크를 눌러P
(해야 합 자본 그래서 사용[SHIFT]p)입력 the primary network interface allow-hotplug eth0 에서 무선 인터페이스 분야 및 F10 을 눌러 저장합니다.
R
새로 고칩니다.사를 진행하고 있습니다C
에 연결하 액세스 포인트입니다. 당신이 유선하는 것이 가장 가능성이 죽 LAN 인터페이스을 가지고 있습니다.
그것은 또한 연결을 관리하 것입니다 그래서 다시 연결하는 모든 구성되어 무선 액세스 포인트 떨어질 경우 밖으로 어떤 이유입니다.
나는 테스트를 연결해 무선 어댑터에 연결하십시오. 그것은 약 60~90 초만에 다시 연결 와이파이(고 생각 LAN 를 뽑아야 함만)
Hope it helps!
이 문제를 해결할 수 있습니다 추가 스크립트가 있습니다.
에서는/etc/network/interfaces 넣어:
<코드>allow-키 the primary network interface allow-hotplug eth0 iface the primary network interface allow-hotplug eth0inet 설명서 wpa-로밍/etc/wpa_supplicant/wpa_supplicant.conf iface 기본 inet dhcp</드>
로밍 할 수 있습 인터페이스를 자기 치유됩니다.
다른 솔루션으로,에서 추출한[이 하나][1].
첫 번째 구성설정:sudo vi/etc/wpa_supplicant/wpa_supplicant.conf
섹션을 추가하 this:
network={
ssid="MyNetworkName"
psk="MyPaz0rdz"
key_mgmt=WPA-PSK
}
다음 네트워크 설정으로sudo vi/etc/dhcpcd.conf
:
interface wlan0
inform 192.168.1.200 # the static ip for the wifi card
static routers=192.168.1.254 # your router's ip
static domain_name_servers=192.168.1.254 # your dns, usually=your router
를 만들이 스크립트 파일 어딘가에,예를 들어서/home/pi/reconnect.sh 고 그것에게
+x 의 허가를 수행 할 수 있습니다.
#!/bin/bash
router=`ip route | awk '/default/ {print $3}'`
/bin/ping -q -c1 $router > /dev/null
if [ $? -eq 0 ]
then
true
# echo "Network OK"
else
echo "Network down, fixing..."
# ifdown --force wlan0
# sleep 5
/bin/kill -9 `pidof wpa_supplicant`
/sbin/ifup --force wlan0
/sbin/ip route add default via $router dev wlan0
/bin/mount -a
echo "wlan0 reconnected at `date`"
fi
다음으로 로그인 루트와 함께sudo su
편집 루트's crontab 으로crontab-e
.
의 끝에서 이 파일은 줄을 추가합니다:
10 * * * * /home/pi/reconnect.sh
는 것을 의미:"실행하는 스크립트는 10 분마다(root)"
지금,당신은 연결되어 있음을 스크립트를 종료하고 아무런 변화도 일어나지 않습니다. 할 수 있는 경우't 핑 당신의 라우터는 스크립트가 다시 연결을 시도를 사용하여 wpa_supplicant.
알 수 있는 모든 에코에서 cron 스크립트(이 경우에만 연결이 끊어진 경우)이메일로 전송됩니다드 장치를 선택할 수 있습니다. 그래서로 구성한 경우 메일과 별칭을 포스트스크립트는 다음 당신 이메일을 받게됩니다 때마다 당신의 pi's wifi 연결이 내려 갔다고 다음 succefully 에 다시 다시 감사를 스크립트입니다.
[1]:https://www.raspberrypi.org/forums/viewtopic.php?t=122354& p=824418
이것은 나를 위해 일했을 사용하여,Raspian 에 제시 30.습니다.2017:
http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/