• NUC980webServer开发


    目录

    1.RTL8189FTV驱动移植

     2.wifi配置工具hostapd移植

    1.openssl-1.0.2r交叉编译

     2.libnl-3.2.25.tar.gz交叉编译

    3.hostapd-2.9.tar.gz交叉编译

    4.移植相关工具到开发板

     


    1.RTL8189FTV驱动移植

    1. 把驱动文件源码放在linux源码的drivers/net/wireless/realtek/rtlwifi/目录下,并且驱动文件源码目录更名为rtl8189

    2.进入drivers/net/wireless/realtek/rtlwifi/rtl8189目录 

    打开Makefile进行修改,加入下面的话

    1. CONFIG_PLATFORM_NEW = y
    2. ifeq ($(CONFIG_PLATFORM_NEW), y)
    3. EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    4. ARCH := arm
    5. CROSS_COMPILE := /usr/local/arm_linux_4.8/bin/arm-linux-
    6. KSRC := /NUC980-linux-4.4.y
    7. MODULE_NAME := wlan
    8. endif

    3.进入上级目录drivers/net/wireless/realtek/rtlwifi并打开Makefile

    加入

    obj-$(CONFIG_RTL8189) += rtl8189/
    

    4.进入drivers/net/wireless/,打开Kconfig

    在最下面加入

    source "drivers/net/wireless/realtek/rtlwifi/rtl8189/Kconfig"

    5.返回linux源码的顶层目录

    make menuconfig进行配置

    配置80211 ,mmc 以及rtl8189

    然后make编译即可

     2.wifi配置工具hostapd移植

    hostapd是Linux系统上的一个带加密功能的无线接入点(access point : AP)程序。hostapd能够使得无线网卡切换为master模式,模拟AP(路由器)功能,作为AP的认证服务器,负责控制管理stations的接入和认证。hostapd 是用于接入点和身份验证服务器的用户空间守护进程。它实现了IEEE 802.11接入点管理,当前版本支持Linux(Host AP、madwifi、mac80211-based驱动)和FreeBSD(net80211)。

    注意:在移植hostapd时必须获取libnl源码和openssl的源码

    相关源码获取

    hostapd-2.9.tar.gz,  wpa_supplicant-2.9.tar.gz    http://w1.fi/releases/
    libnl-3.2.25.tar.gz       http://www.infradead.org/~tgr/libnl/
    openssl-1.0.2r  https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz
     

    1.openssl-1.0.2r交叉编译

     1.openssl源码获取

    https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz

    2. 解压openssl,进入openssl目录,并创建_install目录用于获取编译后的库文件和相关头文件

    3. 生成Makefile

    ./config no-asm shared --prefix=$(pwd)/_install
    

    4.修改Makefile 

    1. CROSS_COMPILE= arm-linux-
    2. CC= $(CROSS_COMPILE)gcc
    3. CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -O3 -Wall
    4. DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS
    5. PEX_LIBS=
    6. EX_LIBS= -ldl
    7. EXE_EXT=
    8. ARFLAGS=
    9. AR= $(CROSS_COMPILE)ar $(ARFLAGS) r
    10. RANLIB= $(CROSS_COMPILE)ranlib
    11. RC= $(CROSS_COMPILE)windres
    12. NM= $(CROSS_COMPILE)nm
    13. PERL= /usr/bin/perl
    14. TAR= tar
    15. TARFLAGS= --no-recursion
    16. MAKEDEPPROG= makedepend
    17. LIBDIR=lib

     去掉CFLAG参数中的 -m64 ,SHARED_LDFLAGS参数中的 -m64

    5.编译安装

    make && make install 

     2.libnl-3.2.25.tar.gz交叉编译

    1.源码获取 http://www.infradead.org/~tgr/libnl/

    2.解压 

    1. tar -xvf libnl-3.2.25.tar.gz
    2. cd libnl-3.2.25/

    3.创建_install文件夹并安装依赖工具

    1. mkdir _install
    2. sudo apt-get install bison
    3. sudo apt-get install flex

    4.生成Makefile

    ./configure CC=arm-linux-gcc --prefix=$(pwd)/_install --host=arm-linux

    5.make && make install

    3.hostapd-2.9.tar.gz交叉编译

     1.解压文件

    tar -xvf hostapd-2.9.tar.gz

    2.生成.config文件

    1. cd hostapd-2.9/hostapd
    2. cp defconfig .config

    3.修改.config文件

     加入以下语句

    1. CFLAGS += -I/home/wpa_tools/libnl-3.2.25/_install/include/libnl3
    2. LIBS += -L/home/wpa_tools/libnl-3.2.25/_install/lib
    3. CFLAGS += -I/home/wpa_tools/openssl-1.0.2r/_install/include/openssl
    4. LIBS += -L/home/wpa_tools/openssl-1.0.2r/_install/lib

    4. 修改Makefile

    修改此处

    5.输出环境变量

     export PKG_CONFIG_PATH=/home/wpa_tools/libnl-3.2.25/_install/lib/pkgconfig/

    6.修改源码src/crypto/random.c文件中的 /dev/random修改为/dev/urandom

    7.编译

    make CC=arm-linux-gcc

    4.移植相关工具到开发板

    1.拷贝libnl相关库到开发板/lib目录下

     2.拷贝openssl相关库到/lib目录下 

    3.移植hostapd相关工具到/sbin目录下 ,移植配置文件到/etc目录下

     4.修改配置文件hostap.conf

    interface=wlan0

    ssid=123456789    //此处为wifi名称

    channel=1      //信道

    wpa=2        //加密等级

    wpa_passphrase=123456789  //wifi密码

    3.开启wifi

    直接用hostapd工具虽然可打开热点,但是设备无法连接,因为没有为连接热点的设备配置ip,要想自动配置IP就要用到udhcpd工具

    使用udhcpd之前必须在/etc下创建udhcpd.conf文件

    以下是可直接用的udhcpd.conf文件

    1. start 192.168.175.2
    2. end 192.168.175.254
    3. interface wlan0
    4. max_leases 234
    5. opt router 192.168.175.1

    1.加载wifi驱动

    insmod wlan0.ko

    2.检查wlan0是否存在

    ifconfig -a

    3.开启 wlan0

    ifconfig wlan0 up

    4.给wlan0 配置ip地址

    ifconfig wlan0 192.168.175.1

    5.开启hostapd工具

    hostapd /etc/hostapd.conf 

    6.开启udchpcd为设备分配IP

    udhcpd /etc/udhcpd.conf &

    7.可以用 cat /proc/net/arp查看连接的设备

  • 相关阅读:
    [附源码]java毕业设计智慧教室预约
    AI智剪:批量剪辑实战,技巧与实例
    Scala | SparkSQL | 创建DataSet | 序列化问题 | UDF与UDAF | 开窗函数
    noip2011选择旅馆
    [Hackthebox] Fawn (FTP)
    Python实现WOA智能鲸鱼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
    基于SPI机制手动模拟数据库驱动打成Jar包使用
    【计算机基础】Git系列2:配置多个SSH
    Python WSGI HTTP Server - Gunicorn
    工作常用之Spark调优[二】资源调优
  • 原文地址:https://blog.csdn.net/weixin_45993872/article/details/132738507