Skip to content

라즈베리파이에서 ESP32 Wi-Fi모듈을 제어하기 위한 디바이스 드라이버

Notifications You must be signed in to change notification settings

smtobs/esp32_adapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 어댑터 드라이버

개발환경

  • H/W : 라즈베리파이4, esp32 devkit v1
  • OS : Raspberry Pi OS, Kernel 5.10.103
  • Program Language : C
  • Tools : WireShark, VScode, MobaXterm

시스템 구조

image

  • 유저 영역과 Wi-Fi 드라이버가 통신을 하기 위하여 cfg80211 등록
  • iw dev scan 기능을 수행 하기 위하여 Wi-Fi의 관리 프레임을 생성 및 파싱 (probe request 생성, probe response 파싱)
  • ping 명령어의 ICMP Request와 Reply 패킷을 송 수신하기 위하여 네트워크 디바이스 등록을 통하여 네트워크 인터페이스 생성
  • 네트워크 디바이스에게 전달 된 패킷의 이더넷 헤더를 분해하여 Wi-Fi 데이터 프레임을 생성 후 SPI 인터페이스로 송신
  • SPI 인터페이스로 수신 된 Wi-Fi 데이터 패킷을 이더넷 프레임으로 변경 후 네트워크 디바이스에게 전달
  • 사용자 영역에서 Wi-Fi Driver를 제어를 위한 vendor commands를 적용하여 커스텀 명령어 적용. (Wi-Fi 연결을 해제 하기 위한 deauthentication 프레임 생성)
  • Wi-Fi 프레임을 처리하기 위한 ESP32 모듈 Firmware 개발

동작 결과

  • iwconfig, ifconfig 인터페이스 출력 image

  • scan 동작 결과 image

  • ping 동작 결과 image

참고사항

  • 802.11 Wireless Networks: The Definitive Guide (The Definitive Guide) [저자 : Gast, Matthew]

About

라즈베리파이에서 ESP32 Wi-Fi모듈을 제어하기 위한 디바이스 드라이버

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published