Raspberry PI WiFi 자동 재접속

집에두고 사용하는 라즈베리파이 서버의 네트워크 연결을 유선에서 무선으로 변경하였습니다.

유선으로 사용하면 랜선이 닿을 수 있는 거리에 있어야하는 제약도 생기고 연결되는 선이 많아지니 뭔가 지저분했는데, 무선 환경으로 변경한 다음 그런 부분들이 모두 해소되니 아주 만족스럽습니다. 네트워크 속도는 유선보다 안좋아지긴 했을텐데 제가 사용하는 환경에서 크게 체감될 정도는 아니네요.

간헐적 WiFi 접속해제

무선환경에서 만족스럽게 사용하던 중 간헐적으로 WiFi 네트워크가 끊겨있는 문제가 있었습니다. 정확한 원인은 잘 모르겠으나 WiFi가 끊길때마다 물리적으로 라즈베리파이를 직접 만져서 해결해줘야 하는 부분이 불편하게 느껴져서 해결 방법을 찾아봤습니다.

WiFi 자동 재접속 스크립트

해결 솔루션을 찾기 위해서 구글링을 하다가 너무 좋은 해결책을 제시해 주는 블로그 글을 발견했습니다.

Automatically reconnecting WiFi on a RaspberryPi – alexba.in

In this post, I’m going to cover writing a short script that automatically reconnects a RaspberryPi to a WiFi network. The script will check to …
alexba.in

길게 내용이 기록되어있지만 간단히 설명하자면,

  1. WiFi 연결상태를 점검하여 연결이 되어있지 않으면 Wlan을 종료했다 재기동하여 저장된 네트워크에 자동으로 재접속하도록 스크립트를 작성
  2. Crontab으로 등록하여 5분주기로 스크립트를 실행

제가 작업한 순서를 기록해 봅니다.

1. 실행할 스크립트 파일을 생성

pi@raspberrypi:~ $ sudo nano /usr/local/bin/wifi_rebooter.sh

2. 스크립트 내용 작성 후 저장(Nano 에디터 저장은 Ctrl+X, 엔터, Y 순서 입력)

#!/bin/bashnn# The IP for the server you wish to ping (8.8.8.8 is a public Google DNS server)nSERVER=8.8.8.8nn# Only send two pings, sending output to /dev/nullnping -c2 ${SERVER} > /dev/nullnn# If the return code from ping ($?) is not 0 (meaning there was an error)nif [ $? != 0 ]nthenn    # Restart the wireless interfacen    ifdown --force wlan0n    ifup wlan0nfi

3. 작성한 스크립트 실행권한 등록

sudo chmod +x /usr/local/bin/wifi_rebooter.sh

4. Crontab에 5분주기 등록을 위해 에디터로 열기

sudo nano /etc/crontab

5. crontab 맨 마지막줄에 아래내용 기록 후 저장(Nano 에디터 저장은 Ctrl+X, Y 순서 입력)

*/5 *   * * *   root    /usr/local/bin/wifi_rebooter.sh

6. 스크립트 테스트
강제로 wlan을 죽인 다음에 5분후에 네트워크가 연결되고 있는지 확인합니다.
스크립트와 crontab이 잘 동작하고 있다면 다시 네트워크가 연결되어 있을겁니다.

pi@raspberrypi:~ $sudo ifdown --force wlan0

모든 작업을 끝냈음에도 WiFi 자동재접속이 동작하지 않는다면, 작업했던 단계 중 빠진 부분이 있는지 다시한번 확인하시면 될 것 같습니다. 제가 참고한 블로그의 원문을 한번 더 살펴보셔도 되고요.

댓글 남기기