zoukankan      html  css  js  c++  java
  • 记录ok6410 使用fast150u 无线网卡的过程 其中部分内容为转载 没有修改

    1、lsusb 查看该无线网卡使用的芯片 是rt5370

    从网上下载相应的驱动,并且编译

    linux内核预配置

    make menuconfig

    将Ralink driver support设置为M,支持动态加载,把Ranlink相关的设置空,以免冲突

    将wireless extensions sysfs files选上

    重新编译内核

    make

    生成 zImage  

    下载驱动源码,雷凌官网的下载地址是:

    http://www.ralinktech.com/en/04_support/support.php?sn=501

    解压2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2

    进入目录,修改Makefile
    将PLATFORM = PC  注释掉,同时将#PLATFORM = SMDK的#去掉,即PLATFORM定义为SMDK.
    将ifeq ($(PLATFORM),SMDK)这句后面的两句改为:
    LINUX_SRC = /root/下载/linux-2.6.32.2   (这里根据自己的开发板的内核源码路径来定义)
    CROSS_COMPILE = /usr/local/arm/4.4.3/bin/arm-linux-    (交叉编译工具链所在的路径)

    2、移植wpa_supplicant

    在本周的最后一个工作日的最后一个小时里,一个困扰了我几天的问题在近乎绝望的调试中突然通过了!人生真是充满惊喜啊

    本来已经接近放弃了,抱着最后一试的打算,居然成功了。阳光果然就在50米开外的拐角处啊,坚持到底不放弃,奇迹就会出现!

    ========================================================

    正文

    ========================================================

    因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具。

    一、下载源码
            http://hostap.epitest.fi/wpa_supplicant/

            下载wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的补丁)
                    #tar xvfz wpa_supplicant-0.7.3.tar.gz
            下载www.openssl.org/source/openssl-0.9.8e.tar.gz
                    #tar zxvf openssl-0.9.8e.tar.gz
    二、编译openssl库
    将wpa_supplicant中的补丁拷贝到openssl中 
            # cp wpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/

    patch -p1 < patches/openssl-0.9.8e-tls-extensions.patch
            #cd openssl-0.9.8e
            #mkdir /usr/local/ssl
            #vim Makefile
                    CC= arm-linux-gnu-gcc
                    AR= arm-linux-gnu-ar $(ARFLAGS) r
                    RANLIB= arm-linux-gnu-ranlib
                    INSTALLTOP=/usr/local/ssl
                    OPENSSLDIR=/usr/local/ssl
            #make 
            #make install

    在/usr/local/ssl目录下安装了ssl库
     #ls /usr/local/ssl
     #bin  certs  include  lib  man  misc  openssl.cnf  private

    后面编译wpa_supplicant要依赖openssl中的lib和include

    三、编译wpa_supplicant 
    进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:
            #cp defconfig        .config
            #vim .config
                    CC=arm-linux-gcc  -L/usr/local/ssl/lib/
              #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
    CFLAGS += -I/usr/local/ssl/include
    #CPPFLAGS += -I../src/include -I../../src/router/openssl/include
    LIBS += -L/usr/local/ssl/lib
            #make

    /*注:这里可能出现很多编译错误!不过不要慌张,认真看下到底是什么错误!基本上都是缺少函数声明,

    不知道作者为什么会犯这样的错误。比如在wpa_supplicant.c中对某个函数没有定义,这时应该用grep

    或者cscope等工具查找该函数名,找到在头文件里的定义,然后将头文件写入该文件中就可以了!

    */

    经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。


    四、配置wpa_supplicant

    在板子根目录nfsroot/etc中建立wpa_supplicant.conf文件

    文件内容如下

    ctrl_interface=/var/run/wpa_supplicant

    network={
                    ssid="max"     //填写无线网络的的用户名
                    key_mgmt=WPA-PSK
                    proto=WPA
                    pairwise=TKIP
                    group=TKIP
                    psk="1234567890" //填写密码
    }

    注意要与你的无线路由中的设置对应。


    另外要注意的是,无线路由中的模式应该设为 :  11bg mixed

    否则会出现些脑残情况!

    五、测试

    insmod zd1211rw.ko

    ifconfig wlan0 up

    iwconfig wlan0 essid  max

    wpa_passphrase ssid名 密码 >> /etc/wpa_supplicant.conf

    之后wpa_supplicant.conf中会添加以下内容,然后把最后面的经过加密的密码修改到上面去,再把下面的内容删掉!

    network={
          ssid="max"
          #psk="1234567890"
          psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba
    }

    如:

    network={

                    ssid="max"     //填写无线网络的的用户名
                    key_mgmt=WPA-PSK
                    proto=WPA
                    pairwise=TKIP
                    group=TKIP

                    psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba               

                    #psk="1234567890" //填写密码
    }

    链接AP

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

    当时我遇到的问题就是怎么都连不上,会打出以下信息

    cfg80211: Calling CRDA to update world regulatory domain

    不断的反复的出现

    用dmesg查看后台,发现有该信息打出:


    zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0100077 bits 24
    zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0200998 bits 24
    zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x034644d bits 24
    zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0025f98 bits 24
    zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0025f9a bits 24

    经过无比煎熬的google,终于发现一个阿根廷人和一个德国人的对话,说这完全是正常情况,只是debug信息!
    看到这里,我重新编译内核,将zd1211的debug选项去掉,再执行连接,发现顺利通过了!!

    在执行udhcpc -i wlan0 可以顺利获取ip

    最后使用的wpa_supplicant.conf是这样的

    # WPA-PSK/TKIP

    ctrl_interface=/var/run/wpa_supplicant

    network={
    ssid="CMCC-dG6r"
    key_mgmt=WPA-PSK
    proto=WPA
    pairwise=TKIP
    group=TKIP
    psk="3kdd76t4"
    }

  • 相关阅读:
    LightOJ1031 Easy Game(区间DP)
    POJ1325 Machine Schedule(二分图最小点覆盖集)
    ZOJ1654 Place the Robots(二分图最大匹配)
    LightOJ1025 The Specials Menu(区间DP)
    POJ2288 Islands and Bridges(TSP:状压DP)
    LightOJ1021 Painful Bases(状压DP)
    LightOJ1013 Love Calculator(DP)
    POJ1780 Code(欧拉路径)
    POJ1201 Intervals(差分约束系统)
    ZOJ2770 Burn the Linked Camp(差分约束系统)
  • 原文地址:https://www.cnblogs.com/eastgeneral/p/11788052.html
Copyright © 2011-2022 走看看