My Own Style

반응형
  • 요구사항 : wifi usb 동글을 이용하여 무선 웹 접속 지원
  • 작업내용
    • hostapd 데몬이용을 위한 크로스 컴파일
    • usb 감지시 hostapd 데몬 활성화 및 busybox udhcpd 데몬 활성화를 위한 udev 데몬 사용
  • hostapd 데몬 크로스 컴파일
    • 해당 데몬은 libnl, openssl 라이브러리 의존성을 가짐
    • libnl 크로스 컴파일 진행
 

Index of /~tgr/libnl/files

 

www.infradead.org

  • libnl-3.2.25.tar.gz 파일 다운로드
  • tar -xvf libnl-3.2.25.tar.gz
  • 크로스 컴파일 root lib 경로 설정 및 컴파일
mkdir /home/sjlim/cross_root
mkdir /home/sjlim/cross_root/lib
mkdir /home/sjlim/cross_root/host
//권한 변경
chomod 777 ~/cross_root -R 
cd libnl-3.2.25
./configure CC=aarch64-himix100-linux-gcc --host=arm-linux-gnueabi --prefix=/home/sjlim/cross_root/lib
make
make install
///home/sjlim/cross_root/lib/lib 하위에 libnl 관련 라이브러리 확인
 

/source/old/index.html

Old Releases Here are the old releases. Legalities Please remember that export/import and/or use of strong cryptography software, providing cryptography hooks, or even just communicating technical details about cryptography software is illegal in some part

www.openssl.org

tar -xvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./Configure gcc shared -mcpu=cortex-a73 -mtune=cortex-a73 -DL_ENDIAN --prefix=/home/sjlim/cross_root/lib --openssldir=/home/sjlim87/cross_root/lib
make CC=aarch64-himix100-linux-gcc RANLIB=aarch64-himix100-linux-ranlib LD=aarch64-himix100-linux-linux-ld MAKDEPPROG=aarch64-himix100-linux-gcc PROCESSOR=ARM
make install
file /home/sjlim/cross_root/lib/bin/openssl //확인

 

  • hostapd 크로스 컴파일 진행
    • hostapd 가 지원하는 드라이버 종류 : linux drivers that support nl80211/cfg80211 in ap mode
    • hostapd 컴파일의 경우, 지원하는 드라이버일 때 스크립트에서 옵션이 변경되어야함.
    • 자신이 사용하는 동글이 어떤 드라이버인지 확인 필요
    • 사용중인 동글은 realtek 드라이버인 rtl8192cu 이고 nl80211 base 이므로 사용 가능
      ( 사양 확인 링크 )
 

wireless AP with hostapd and realtek chipset (works) - Raspberry Pi Forums

paolo wrote:Hi, I am trying to follow the instructions. But I have a question: i just tried to replace the wireless-tools that come with raspbian with those from Realtek, but when i do "iwconfig wlan0 txpower 0" i still get the same error "Operation not pe

www.raspberrypi.org

  • hostapd-2.9.tar.gz 다운로드
  • 압축 해제, config 파일 수정, 컴파일
tar -xvf hostapd2.9.tar.gz 
cd hostapd2.9/hostapd 
//위의 경로에 hostapd.conf 파일 존재
//.conf 파일은 따로 복사 해놓음

vi .config

CONFIG_DRIVER_NL80211=y                           #nl80211 커널인터페이스를 사용하여 해당 드라이버 인터페이스 사용가능하도록 변경
CFLAGS += -i/home/sjlim87/cross_root/lib/include  #libnl, openssl 관련파일 경로 추가
LIBS += -L/home/sjlim87/cross_root/lib/lib        #libnl, openssl 관련 라이브러리 경로 추가
CONFIG_LIBNL32=y                                  #libnl 3.2 버전 크로스컴파일 사용으로 체크 진행

#인증 적용방식을 위한 config 내용 체크CONFIG_IAPP=y  IEEE802.11F 프로토콜 기반 환경 적용
CONFIG_RSN_PREAUTH=y                              #wifi 인증을 위한 WPA2/IEEE 802.11i 프로토콜 기반환경 적용
CONFIG_PEERKEY=y
CONFIG_IEEE80211W=y
CONFIG_EAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_TLS=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_GTC=y
CONFIG_EAP_TTLS=y

:wq

make CC=aarch64-himix100-linux-gcc DESTDIR=/home/sjlim/cross_root/hostapd/
make install
file /home/sjlim/etc/build_hostapd/usr/local/bin/hostapd //확인
  • 동작 테스트
    • /home/sjlim/cross_root/hostapd 실행파일은 bin 디렉터리에, /home/sjlim/cross_root/lib/ 하위의 lib 은
      임베비드 장비의 lib 참조 경로에 복사
    • usb wifi 동글 연결
    • iwconfig 
eth0 no wireless extensions.

wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr=2347 B Fragment thr:off
Encryption key:off
Power Management:off

eth1 no wireless extensions.

lo no wireless extensions.

 

  • ifconfig wlan0 inet 10.1.1.1 netmask 255.255.255.0
  • ifconfig wlan0 up
  • 따로 복사해 놓은 hostapd.conf 파일 내용 수정
interface=wlan0
ssid=test_ap
channel=6
driver=nl80211

auth_algs=1 # 1=wpa, 2=wep, 3=both
wpa=2 # WPA2 only
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=1234
  • hostapd hostapd.conf & 실행
  • udhcpd.conf 파일 수정
start   10.1.1.2
end     10.1.1.254
max_leases  254
interface   wlan0
opt subnet  255.255.255.0
opt router  10.1.1.1
opt lease   864000  #10days
  • busybox udhcpd udhcpd.conf & 실행
  • 스마트폰 wifi 검색 및 접속, 10.1.1.2 접속 시, ap 모드 동작 확인됨

  • usb 동글 드라이버 인식 후, 동작을 위한 udev rule 등록
    • /etc/udev/rule.d/ 하위에 .rules 파일 생성
//.rules 내용
KERNEL=="wlan*", DRIVERS=="rtl*", SUBSYSTEM=="net", RUN+="/bin/sh /etc/udev/test.sh start&"
  • test.sh 스크립트에 udhcpd, hostapd 실행에 대한 동작을 등록할 수 있도록 작업진행
반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band