부팅 시 USB 드라이브에서 Wi-Fi SSID 및 비밀번호를 읽고 자동으로 Wi-Fi 네트워크에 로그인하는 스크립트를 작성하는 방법

부팅 시 USB 드라이브에서 Wi-Fi SSID 및 비밀번호를 읽고 자동으로 Wi-Fi 네트워크에 로그인하는 스크립트를 작성하는 방법

데비안을 실행하는 임베디드 시스템이 있습니다. USB 썸 드라이브를 통해 Wi-Fi 네트워크 SSID 및 비밀번호 정보를 제공하고 싶습니다. 이렇게 하면 모든 Wi-Fi 네트워크에 쉽게 배포할 수 있습니다.

시작 시 스크립트가 USB 드라이브에서 Wi-Fi SSID와 비밀번호를 읽고 Wi-Fi 네트워크에 자동으로 연결되도록 할 수 있습니까? 누구든지 이 작업을 수행하는 스크립트를 가지고 있습니까?

이를 달성하는 더 좋은 방법이 있습니까?

답변1

Perl을 사용하여 스크립트를 실행하는 아이디어는 다음과 같습니다. 원하는 언어, 어쩌면 bash로 번역할 수도 있습니다. 정말 중요한 것은 무선에 연결하라는 명령입니다. Perl은 제가 이 작업을 빠르게 수행하기 위한 수단일 뿐이며, 빠르다는 것에 대한 여러분의 생각은 다를 수 있습니다. Perl을 읽는 데 익숙하지 않은 경우 모든 백틱은 셸 명령이라는 점에 유의하세요.

예를 들어, Gnome에는 네트워크 기억 처리 기능이 내장되어 있으며 로그인한 사용자에 대해 이 작업을 수행하지만... 헤드리스 설정을 가정합니다. 다음은 자동으로 Wi-Fi에 연결되는 흥미로운 모바일 헤드리스 설정입니다. 시원한.

이는 wpa 네트워크가 있고 iwconfig(무선 패키지와 함께 제공됨) 및 wpa_supplicant가 설치되어 있다고 가정합니다.

이는 csv에 정의된 하나의 네트워크만 보여줍니다. 그리고 그것이 첫 번째 시도에서 작동할 것이라고 가정합니다. 원하는 네트워크의 실제 매개변수를 사용하여 구체화하거나 다른 처리를 추가해야 합니다. 그러나 이 일반적인 구조는 곧 완료될 것입니다.

File@ /mnt/usb/network.csv형식은 "대상 SSID, 비밀번호"입니다.

myWifiSSID,mypassword

파일@ /home/me/connect.pl(예: chmod 755):

#!/usr/bin/perl
# Set to your device name.
$iface = "wlan0";

# Set to your USB mount point & network definition CSV file.
$networkdefinition = "/mnt/usb/network.csv";

# Get the contents of your file on USB stick.
$line = `cat $networkdefinition`;

# Read the CSV into parts.
@parts = split(/,/,$line);

# Get a list of wireless networks in range.
# And grep that for the network we're looking for.
$foundnetworks = `iwlist $iface scan | grep 'ESSID:"$parts[0]"'`;

# See if this turns up the network we're looking for
if (length($foundnetworks)) {
        # It did. Let's bring up that interface.                    
        `wpa_supplicant -B -i $iface -c <(wpa_passphrase $parts[0] $parts[1])`;
} else { 
        # Network not in range, perform error handling etc.
}

크론탭에서:

@reboot /home/me/connect.pl

지침:

  • 더 나은 오류 처리/보다 일반적인 실행 방법이 필요합니다.
  • WPA 이외의 다른 네트워크를 처리해야 함
  • Cron 솔루션은 그때까지 설치가 가능하다고 가정합니다.

이것은 진행하면서 확장하는 것이 재미있지만 USB 스틱 CSV 파일을 사용하여 WiFi 네트워크를 지정하는 빠른 시작 방법일 수 있습니다.

실제 핵심은 다음 두 명령입니다.

  • iwconfig
  • wpa_supplicant

남은 것은 WiFi AP에 자동으로 연결하는 제안된 솔루션을 구현하는 방법에 대한 아이디어입니다.

관련 정보