ESP32-S3에서 리눅스를 구동할 때 와이파이 연결하는 방법인데 내가 리눅스에서 네트워크 관련 도구들을 잘 몰라서 방법에 일관성이 없거나 이거보다 더 좋은 방법이 있을 수가 있음. 굳이 ESP32가 아니더라도 Buildroot에 공통적으로 적용할 수 있을 것이다.
ESP32에다가 리눅스를 설치하는게 뭔지 궁금하다면
https://gojimmypi.github.io/ESP32-S3-Linux/
http://wiki.osll.ru/doku.php/etc:users:jcmvbkbc:linux-xtensa:esp32s3 그런데 글쓰는 시점에서 두번째 사이트 접속이 안된다!
네트워크 장치 이름 확인
iw dev
뭐 대충 espsta0이라고 나올 것이다.
ip link set espsta0 up
와이파이 스캔
iw espsta0 scan
와이파이를 찾을수 있는지 확인한다.
그런데 wpa_passphrase로 설정파일을 만들어야 하는데 그게 없어서 다른 컴퓨터에서 만들어줘야 한다. 아무튼 SSID가 hnw이고 비밀번호가 12345678이라고 치면
wpa_passphrase hnw 12345678
이런 출력이 나온다.
network={
ssid="hnw"
#psk="12345678"
psk=2c6a23e0b6e2ea776704c36988b6b2a1cca55a8f46ab6f40515100403e03df5a
}
적당한 방법으로 저 내용을 복사해서 적당한 방법으로 텍스트 파일을 만들자. 나는 그냥 vi를 사용했다. 그런데 /etc 디렉토리를 제외하면 읽기 전용이라 /etc에 파일을 넣었다.
vi /etc/wconf
여기에 있는 vi는 ESC키로 입력 모드를 나가는게 안되는거 같아서 Ctrl+[로 나가야 했다.
생성된 설정 파일로 연결을 시도한다.
wpa_supplicant -B -i espsta0 -c /etc/wconf
다시 iw dev해서 ssid에 와이파이 이름이 나오면 연결이 된 것이다.
DHCP를 쓸 수 있는지 모르겠어서 IP를 수동으로 할당해야 한다.
ifconfig espsta0 IP주소 netmask 서브넷 마스크
서브넷 마스크는 보통 255.255.255.0이긴 할거고 ip주소는 사용할 수 있는 범위 내에서 할당되지 않은 값을 넣으면 된다. 잘 모르겠다면 스마트폰의 설정을 뒤지다 보면 후술할 게이트웨이정보를 포함한 내용을 볼 수 있을 것이다.
게이트웨이 추가
route add default gw 게이트웨이의IP
route 명령어로 게이트웨이가 제대로 추가되었는지 확인한다.
route
ping로 인터넷 접속이 되는지 확인한다. DNS는 게이트웨이 추가할 때 자동으로 되는 것으로 추정.
ping google.com
참고한 글 https://hiseon.me/linux/command/linux-wifi-command-line/
Reply by Email