RaspberryPi3의 WiFi 설정 파일을 SD에 놓고 부팅시 로드하고 자동 연결

3564 단어 RaspberryPiWiFi
헤드리스로 RaspberryPi를 사용할 때 WiFi를 설정하는 데 우선 이더넷이나 시리얼 콘솔을 연결해야 하는 것이 불충분하고 고통스럽고 어쩔 수 없기 때문에, SD 카드의 /boot 파티션(vfat이므로 Windows에서도 Mac에서도 읽고 쓰기 가능)에 WiFi의 SSID와 WPA 키를 쓴 파일을 넣고, 기동시에 그것을 읽어 보려고했다.

Mac에서도 Windows에서도 SD 카드조차 읽고 쓸 수 있으면 설정할 수 있다(RPi 만나고 있는 시점에서 SD 읽고 쓰기는 할 수 있을 것이라고 생각된다).
디스플레이도 키보드도 ssh도 시리얼 콘솔 케이블도 필요 없다.

스크립트 및 구성 파일



/etc/systemd/system/wpa_conf.service
[Unit]
Description=Read config file from SD then apply it
After=network.target

[Service]
ExecStart=/bin/sh /home/pi/wpa_conf/write_config.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

/home/pi/wpa_conf/base_conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

/home/pi/wpa_conf/write_config.sh
#!/bin/sh

WIFI_CONF=/boot/wifi.conf
WPA_SUPPLICANT_CONF=/etc/wpa_supplicant/wpa_supplicant.conf
SCRIPT_DIR=`dirname $0`
BASE_CONF=$SCRIPT_DIR/base_conf

cat $BASE_CONF > $WPA_SUPPLICANT_CONF

cat $WIFI_CONF |
grep -v '#' |
while read line; do
  wpa_passphrase $line >> $WPA_SUPPLICANT_CONF
done

sudo ifdown wlan0
sudo ifup wlan0

활성화


sudo systemctl enable wpa_conf.service

여기까지 할 수 있으면, 일단 RaspberryPi의 전원을 떨어뜨린다.

사용법


/boot 파티션이 Finder(Mac의 경우)나 익스플로러(Windows의 경우)에서 boot 라는 이름의 SD 카드로 인식될 것이므로 이것을 엽니다.


wifi.conf 를 텍스트 편집기에서 열고 (없으면 새로 만들기),
SSID WPAキー

의 형식으로 1행씩 기술한다.



Mac/WindowsPC에서 SD 카드를 분리하고 RPi3에 꽂고 전원을 켭니다.

기타


  • 말할 것도 없이 보안을 생각하면 그다지 좋은 방법이라고는 말할 수 없다
  • 그러나 가정의 WPA 키와 어쨌든 AP의 케이스에 붙어있는 씰에 쓰여 있을 것이다

  • Mac의 텍스트 편집이나 Windows 메모장에서 편집하는 전제라면 wifi.txt 같은 파일명으로 하는 것이 좋았을까
  • WiFi가 연결되었는지 확인할 수있는 방법이 없으므로 어떻게해야합니까
  • 좋은 웹페이지 즐겨찾기