USB WIFI移植

来源:互联网 发布:修改oracle数据库时间 编辑:程序博客网 时间:2024/06/01 09:08

USB WIFI移植

1、开发环境

平台 FS4412 交叉编译工具链 arm-linux- wifi 相关源码包 DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2 wpa_supplicant-0.7.2.tar.gz openssl-0.9.8e.tar.gz

2、移植步骤

  1. 获取 RT2780 驱动

    RT2780驱动源码,点击下载

  2. 解压USB-Wifi_driver

    $ tar -jxvf USB-Wifi_driver.bz2
  3. 修改 Makefile

    1. 修改 DPO_MT7601U_LinuxSTA_3.0.0.4_20130913 目录下的 Makefile

      #修改 49 行中的#PLATFORM = SMDK#为PLATFORM = SMDK
    2. 在 275 行,修改 linux 源码目录和交叉工具链

      ifeq ($(PLATFORM),SMDK)LINUX_SRC = /home/linux/work/4412/linux-3.0-fs4412_V3CROSS_COMPILE = arm--linux-endif
    3. 修改 include/rtmp_def.h 文件中第 1604 行

      将1604 行和 1605 行中的 ra 改成 wlan

    4. 查看 os/linux/config.mk 文件

      HAS_WPA_SUPPLICANT=yHAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

3、编译源码

在 DPO_MT7601U_LinuxSTA_3.0.0.4_20130913 目录下执行以下命令编译源码

$ make clean$ make -j2

DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/mt7601Usta.ko 拷贝我们的根文件系统中

4、拷贝 RT2870STA.dat

在开发板的根文件系统中创建目录/etc/Wireless/RT2870STA/

mkdir etc/Wireless/RT2870STA/ -p

将源码目录中的 RT2870STA.dat拷贝到刚才创建的 etc/Wireless/RT2870STA/目录中

5、测试

  1. 插上 USB-Wifi 模块

这里写图片描述

  1. 加载 USB-Wifi 模块

    insmod mt7601Usta.ko
  2. 配置 wlan0 网络

    ifconfig wlan0 up

6、Wifi 加密工具移植

WPA 全名为 Wi-Fi Protected Access,有 WPA 和 WPA2 两个标准,是一种保护无线电脑网络(Wi-Fi)安全的系统,它是应研究者在前一代的系统有线等效加密(WEP)中找到的几个严重的弱点而产生的

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL。SSL 是 Secure Sockets Layer(安全套接层协议)的缩写,可以在 Internet 上提供秘密性传输。

6.1、Openssl 移植

  1. 安装补丁

    cp wpa_supplicant-0.7.2/patches/openssl-0.9.8e-tls-extensions.patch ./openssl-0.9.8ecd openssl-0.9.8epatch -p1 < openssl-0.9.8e-tls-extensions.patch
  2. 配置编译安装

    在工作目录/home/linux/work/4412 里创建一个新的目录 wifi

    mkdir /home/linux/work/4412/wifi

    在 openssl-0.9.8 目录中执行以下命令 :

    此时出现openssl不支持动态库,在此可以将移植文档里的命令 -share 去掉

    /Configure linux-elf-arm -DL_EDNIAN linux:'arm-cortex_a8-linux-gnueabi-gcc' -prefix=/home/linux/work/4412/wifi/

    编译安装

    makemake install

    步骤完成之后在wifi目录下有新增的几个目录

    openssl

6.2、移植 wpa_supplicant

  1. 进入 wpa_supplicant-0.7.2/wpa_supplicant 目录

    cd /home/linux/work/4412/wpa_supplicant-0.7.2/wpa_supplicant
  2. 修改 Makefile

    修改第 2 行中的 CC=gcc 为 CC=arm-linux-gcc,并且注销第 1 行和第 3 行

    1、在CFLAGS += -I../srcCFLAGS += -I../src/utils下添加:CFLAGS += -I/home/linux/work/4412/wifi/include/2、修改LIBS += -lssl为LIBS += -lssl -L/home/linux/work/4412/wifi/lib/3、修改LIBS_p += -lcrypto为LIBS_p += -lcrypto -L/home/linux/work/4412/wifi/lib/
  3. 编译

    在目录/home/linux/work/4412/wpa_supplicant-0.7.2/wpa_supplicant 下执行命令

    cp defconfig .configmake

    wpa_supplicantwpa_cli 拷贝到开发板根文件系统的/bin 目录中

6.3、测试

  1. 添加文件 resolv.conf

    在开发板根文件系统的/etc 目录中添加文件 resolv.conf,其内容如下

    # Generated by NetworkManagernameserver 202.96.64.68
  2. 添加文件 wpa-psk-tkip.conf

    在开发板根文件系统的/etc 目录中添加配置文件 wpa-psk-tkip.conf, 内容如下

    # WPA-PSK/TKIPctrl_interface=/var/run/wpa_supplicantnetwork={ssid="XXXX" # XXXX 为无线路由的 ssidkey_mgmt=WPA-PSKproto=WPApairwise=CCMPgroup=CCMPpsk="XXXXXXXX" # XXXXXXXX 为对应的无线路由密码}
  3. 创建目录/var/run/wpa_supplicant

    在开发板根文件系统中创建目录/var/run/wpa_supplicant,执行以下命令

    mkdir /var/run/wpa_supplicant -p
  4. 启动开发板测试

    等开发板内核启动完成后,在终端上执行以下命令

    1. 配置网卡 ip,执行以下命令

      ifconfig wlan0 192.168.1.200 //注意: 配置的 ip 网段要和路由器的网段一致
    2. 配置默认网关

      route add default gw 192.168.1.1
    3. 启动 wpa_supplicant 连接无线网络

      wpa_supplicant -B -i wlan0 -c /etc/wpa-psk-tkip.conf
    4. 查看连接状态

      wpa_cli status