wifi相关工具移植

目录

1、wireless tools

2、iw

3、wpa_supplicant

4、DHCP

5、hostapd

6、使用方法


1、wireless tools

下载:
  http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html
编译:

tar xzvf wireless_tools.29.tar.gz
cd wireless_tools.29/
vi Makefile
    CC = arm-linux-gnueabihf-gcc
    AR = arm-linux-gnueabihf-ar
    RANLIB = arm-linux-gnueabihf-ranlib
make

拷贝:
  iwlist iwconfig iwspy iwpriv ifrename iwevent iwgetid -> 目标板:/usr/bin/
  libiw.so.29 -> 目标板:/usr/lib/

2、iw

iw工具是iwconfig的替代者,而在编译iw前需要先编译所依赖的libnl库。
① libnl
下载:
  Index of /~tgr/libnl/files
编译:

tar xzvf libnl-3.2.25.tar.gz
cd libnl-3.2.25/
mkdir tmp
./configure --host=arm-ca9-linux-uclibcgnueabihf --prefix=$PWD/tmp/
make
make install

如果依赖libnl的动态库编译的工具则需要拷贝tmp/lib/* -> 目标板:/usr/lib/

如果想依赖静态库编译有如下方法:

        1)、傻瓜操作,将动态库统统删掉
        2)、BUILD_STATIC = y(可能没有定义这个宏,也可能不叫这个名字,所以这个办法不一定可行)
        3)、问下度娘

② iw
下载:
  Index of /pub/software/network/iw/
编译:

tar xzvf iw-3.11.tar.gz
cd iw-3.11/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/song/work/WiFi2/libnl-3.5.0/tmp/lib/pkgconfig
make CC=arm-ca9-linux-uclibcgnueabihf-gcc

拷贝 iw -> 目标板:/usr/bin/

3、wpa_supplicant

  前面wireless tools和iw工具都只能连接OPEN和WEP加密方式的WiFi,而wpa_supplicant除了以上两种加密方式,还支持WPA/WPA2加密方式的WiFi。
wpa_supplicant依赖于libopenssl库和libnl库,需要先编译。
① libopenssl
下载:
  /source/index.html
编译:

tar xzvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g/
mkdir tmp
./config shared no-asm --prefix=$PWD/tmp/
vi Makefile     # 修改以下变量
    CROSS_COMPILE=arm-ca9-linux-uclibcgnueabihf-
    CNF_CFLAGS=-pthread 
    CNF_CXXFLAGS=-std=c++11 -lpthread 
make
make install

如果依赖openssl的动态库编译 wifi 工具则需要拷贝tmp/lib/* -> 目标板:/usr/lib/

② libnl
  参考iw工具的libnl编译。

③ wpa_supplicant
下载:
  Index of /releases
编译:

tar xzvf wpa_supplicant-2.7.tar.gz
cd wpa_supplicant-2.7/wpa_supplicant/
cp defconfig .config
vi .config
    # openssl
    CFLAGS += -I/home/song/work/WiFi2/openssl-1.1.0h/tmp/include
    LIBS += -L/home/song/work/WiFi2/openssl-1.1.0h/tmp/lib -lssl -lcrypto

    # libnl
    CFLAGS += -I/home/song/work/WiFi2/libnl-3.5.0/tmp/include/libnl3
    LIBS += -L/home/song/work/WiFi2/libnl-3.5.0/tmp/lib/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/song/work/WiFi2/libnl-3.5.0/tmp/lib/pkgconfig
make CC=arm-ca9-linux-uclibcgnueabihf-gcc

如果遇到如图所示的编译问题,原因是依赖的库文件无法找到,需要检查lib路径和include路径

拷贝:
  wpa_cli wpa_supplicant wpa_passphrase -> 目标板:/usr/bin/

4、DHCP

下载:
  ftp://ftp.isc.org/isc/dhcp/
编译:

tar xzvf dhcp-4.2.6.tar.gz
cd dhcp-4.2.6/
./configure --host=arm-linux-gnueabihf ac_cv_file__dev_random=yes
tar xzvf bind/bind.tar.gz -C bind/
vi bind/bind-9.9.5/lib/export/dns/Makefile.in
    gen: ${srcdir}/gen.c
         ${BUILD_CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
vi bind/Makefile
    (cd ${bindsrcdir} && ./configure BUILD_CC=gcc c_cv_file__dev_random=yes --host=arm-linux-gnueabihf --with-randomdev=no --disable-kqueue.......
mkdir tmp
make
make DESTDIR=$PWD/tmp install
 

拷贝:
  tmp/usr/local/sbin/dhclient、dhcpd -> 目标板:/usr/bin/
  tmp/usr/local/etc/dhclient.conf.example、dhcpd.conf.example -> 目标板并改名:/etc/dhclient.conf、dhcpd.conf
  client/scripts/linux -> 目标板:/sbin/dhclient-script
  chmod +x dhclient-script
  vi dhclient-script
  #!/bin/bash -> #!/bin/sh

5、hostapd

① libopenssl
  参考wpa_supplicant工具的libopenssl编译。

② libnl
  参考iw工具的libnl编译。

② hostapd
下载:
  Index of /releases
编译:

tar xzvf hostapd-2.9.tar.gz
cd hostapd-2.9/hostapd/
cp defconfig .config
vi .config
    # openssl
    CFLAGS += -I/home/linriming/test/wifi_tools/openssl-1.1.1g/tmp/include
    LIBS += -L/home/linriming/test/wifi_tools/openssl-1.1.1g/tmp/lib -lssl -lcrypto

    # libnl
    CFLAGS += -I/home/linriming/test/wifi_tools/libnl-3.2.25/tmp/include/libnl3
    LIBS += -L/home/linriming/test/wifi_tools/libnl-3.2.25/tmp/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/linriming/test/wifi_tools/libnl-3.2.25/tmp/lib/pkgconfig
make CC=arm-linux-gnueabihf-gcc
 

拷贝:
  hostapd hostapd_cli -> 目标板:/usr/bin/

6、使用方法
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值