wifi驱动 && wpa_supplicant在Linux PC上的移植

时间:2024-04-10 10:11:12

一. 编译环境准备

  • 1. 安装ubuntu

我尝试过编译MT7603的driver, 发现在ubuntu kernel 2.6.32上编译会出错,

所以安装的ubuntu kernel版本必须大于2.6.32, 建议是3.0 以上的。

我选择安装ubuntu 12.04(kernel ver: 3.2.0)

安装过程可百度一下,这里略过...

 

  • 2. 安装编译依赖Lib(编译wpa_supplicant时要用到)

用apt-get安装以下lib :

apt-get install libnl-3-dev

apt-get install libssl-dev

apt-get install libnl-genl-3-dev

            到此编译环境准备结束

 

二. 编译MT7603 driver

  • 1. 将MT7603的driver source code拷到ubuntu 上面
  • 2. 修改MT7603/makefile,  如下:

        wifi驱动 && wpa_supplicant在Linux PC上的移植

  • 3. 开始编译

make

    编译结束后会在mt7603/os/linux/  下面生成mt7603usta.ko,这个就是wifi driver的module

 

三. 编译wap_supplicant

  • 1. 下载wpa_supplicant

可以到下面地址下载最新的wpa_supplicant 代码:

http://w1.fi/wpa_supplicant/ 

  • 2. 使能P2P 功能

修改wpa_supplicant/defconfig

wifi驱动 && wpa_supplicant在Linux PC上的移植

  • 3. 修改libnl的include路径

修改wpa_supplicant/defconfig

wifi驱动 && wpa_supplicant在Linux PC上的移植

  • 4. 保存.config

cp defconfig  .config

  • 5. 开始编译

make

         编译结束后会在wpa_supplicant/ 下面生成:   Wpa_cli,   wpa_passphrase,  wpa_supplicant

 

四. 加载driver ko 及启用wpa_supplicant

  • 1. 禁止network

wifi驱动 && wpa_supplicant在Linux PC上的移植

 

  • 2. 将MT7603 driver/conf下面的dat 文件拷贝到/etc/wireless/RT2870STA

wifi驱动 && wpa_supplicant在Linux PC上的移植

 

  • 3. Insmod ko

Insmod /lib/modules/3.2.0-23-generic-pace/kernel/net/wireless/cfg80211.ko

insmod /wifi_driver/os/linux/mt7603usta.ko

用lsmod 查看kernel加载的ko, 如果出现我们刚insmod的两个ko, 那说明第一步已成功

wifi驱动 && wpa_supplicant在Linux PC上的移植

 

  • 4. 插入wifi dongle

iwconfig 查看virture interface是否生成, 如果出现wlan0 ,说明wifi dongle已经起作用,  但还没有up起来

wifi驱动 && wpa_supplicant在Linux PC上的移植

 

  • 5. 启动wpa_supplicant

用wpa_supplicant自带的wpa_supplicant.conf作为配置文件

wifi驱动 && wpa_supplicant在Linux PC上的移植

 

用iwconfig 查看wlan0是否已经up

wifi驱动 && wpa_supplicant在Linux PC上的移植

                到此大家便可以使用wpa_cli  wifi driver进行控制了