Purpose
Xilinx Board 에서 WiFi SoftAP 모드를 동작
Target Environment
-
armv7l, 32bit
Reference Sites
-
크로스 컴파일러를 이용한 라즈베리 파이에 HostApd 컴파일하여 설치 하는 블로그
-
HostApd conf 설정 방법 관련 블로그
hostapd ver 2.6 을 준비
소스 코드 다운로드 위치 : https://w1.fi/releases/
컴파일 하기 위한 필수 패키지
libnl : library netlink 의 약자 , Ntlink Protocol library - 리눅스 커너ㄹ 모듈과 사용자 프로세스 사이 정보를 전달하는 Netlink 프로토콜 기반 인터페이스 API 를 제공하는 라이브러리 모음.
openssl : ssl 보안을 처리 하기 위한 암호화 모듈
Petalinux Project 를 빌드하면 기본적으로 libnl / openssl 이 빌드가 됩니다.
위치 검색
$ find /home/joon -name "libnl" -type f
:검색 위치는 사용자가 생성한 bsp 및 빌드 위치에 따라 달라질 수 있습니다.
Hostapd 컴파일 환경 설정
다운로드한 hostapd source 를 압축 해제 하고
cd hostapd 이동하여 .config 파일을 기존 defconfig 베이스로 만들어 줍니다.
$ cp defconfig .config
$ vi .config
libnl / openssl 관련 CFLAGS 와 LIBS 를 설정
CFLAGS += -I/home/joon/src/avnet-digilent-zedboard-2019.1/build/tmp/sysroots-components/cortexa9t2hf-neon/libnl/usr/include/linnl3
CFLAGS += -I/home/joon/src/avnet-digilent-zedboard-2019.1/build/tmp/sysroots-components/cortexa9t2hf-neon/openssl/usr/include
LIBS += -L/home/joon/src/avnet-digilent-zedboard-2019.1/build/tmp/sysroots-components/cortexa9t2hf-neon/libnl/usr/lib
LIBS += -L/home/joon/src/avnet-digilent-zedboard-2019.1/build/tmp/sysroots-components/cortexa9t2hf-neon/openssl/usr/lib
CONFIG_LIBNL32=y
저장합니다.
HostApd 컴파일
make CC=/tools/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
SDK 컴파일러 또는 BSP Project 에서 찾아서 해당 컴파일러 경로를 설정하여도 됩니다.
/tools/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi
빌드가 완료 되면 hostapd, hostapd_cli 2개의 파일이 생성됩니다.
hostapd.conf 파일 수정
interface=wlan0
driver=nl80211
ssid=<보일 AP 이름>
hw_mode=g : 동작 무선 랜타입.
channel=1 : 동작 채널
ctrl_interface=/var/run/hostapd1 : 임시로 만들 인터페이스 위치로 현재 xilinx 에서 /var/run/hostapd 가 실행파일로 존재하므로 1을 더 붙여서 중복되지 않도록 처리
max_num_sta=255 : 최대 연결 장치 수로 디폴트 값.
WPA-PSK 설정 시
auth_algs=1 : default 는 3으로 되어 있음.
wmm_enabled=0 : default 는 1로 되어 있음
wpa=2
wpa_passphrase=a123456789a
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
파일 복사
hostapd, hostapd_cli -> /var/run
hostapd.conf -> /etc/hostapd/hostapd.conf
네트워크 인터페이스 환경 설정
$ vi /etc/network/interfaces
auto wlan0
# iface wlan0 init manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant/conf
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
default hostapd 파일 생성
vi /etc/hostapd/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
dnsmasq 설정
/etc/dnsmasq.conf 파일을 열어서 다음과 같이 설정합니다.
interface=wlan0
dhcp-range=192.168.2.2,192.168.2.50,255.255.255.0,12h
service 명령이 존재하지 않기 때문에 아래와 같이 재시작 또는 프로세스를 죽이고 다시 시작함.
ipconfig wlan0 up 또는 시스템 재시작
killall -9 dnsmasq
dnsmasq
hostapd 실행 (디버깅을 하고 싶다면 -d 옵션을 추가 하면 메시지가 인쇄가 됨)
./hostapd /etc/hostapd/hostapd.conf
'Development > Xilinx' 카테고리의 다른 글
[ZYNQ] Petalinux Kernel 드라이버 외부 빌드 방법 (0) | 2019.11.21 |
---|---|
[ZYNQ] PetaLinux QT 개발환경 설정 (6) | 2019.11.21 |
[ZYNQ] Petalinux Kernel 소스 유지 하기 (0) | 2019.11.20 |
[ZYNQ] Petalinux Kernel 소스 빌드 방법 (0) | 2019.11.20 |
[ZYNQ] ZYNQ FW 개발 환경 구성 (Vivado 제외) (0) | 2019.11.18 |
댓글