http://blog.csdn.net/junllee/article/details/8895908

w8782工作在station模式一切正常,于是想试试AP模式(master mode):

Arm-linux:$> iwconfig mlan0 mode master
Error for wireless request "Set Mode" (8B06) :
    SET failed on device mlan0 ; Invalid argument.

Arm-linux:$> iwconfig mlan0 mode ad-hoc

Arm-linux:$>

设置master模式失败,而设置ad-hoc模式是正常的, 没有出错。

检查移植过来的w8782的驱动,在moal_wext.c 和 moal_uap_wext.c中都有一个名为woal_set_bss_mode()的函数用于设置工作模式。

跟踪了一下,发现使用iwconfig mlan0 mode master 或 iwconfig mlan0 mode managed 时,都调用到moal_wext.c中的woal_set_bss_mode()函数,

而这个函数中,如下所示,竟然没有对maser 模式 IW_MODE_MASTER的处理,看来8782的ap模式不能用iwconfig来进行配置?!!

394     switch (*uwrq) {
 395     case IW_MODE_INFRA:
 396         bss->param.bss_mode = MLAN_BSS_MODE_INFRA;
 397         break;
 398     case IW_MODE_ADHOC:
 399         bss->param.bss_mode = MLAN_BSS_MODE_IBSS;
 400         break;
 401     case IW_MODE_AUTO:
 402         bss->param.bss_mode = MLAN_BSS_MODE_AUTO;
 403         break;
 404     default:
 405         ret = -EINVAL;
 406         break;
 407     }

仔细检查w8782驱动原码中附带的文件,发现一个README_UAP文件,仔细研读一下,原来是需要使用另外一个称为uaputl的工作进行AP模式的配置。

uaputl在驱动原码中的mapp/uaputl 下面。 交叉编译后生成uaputl,拷贝到开发板中:

终端运行 uaputl bss_start后,用手机搜索wifi,新发现了一个名为 "Marvell Micro AP"无线网线,无加密。连上后查看一下IP地址,是169.254.201.15

使用WPA2加密:

uaputl bss_stop                                              //if started, stop it first
       uaputl sys_cfg_protocol 32                             //choose WPA2 protocol
       uaputl sys_cfg_wpa_passphrase 1234567890   //set encryption keys
       uaputl sys_cfg_cipher 8 8
       uaputl bss_start

再用手机搜索wifi,又新出现一个名为 "Marvell Micro AP"的WPA2加密的无线网线,输入密钥:1234567890,OK,连接成功。

前面提到,连上后IP地址是169.254.201.15, 这是因为板子上Linux没有启动DHCP服务的原因,client使用伪随机算法,使得

地址取得分布在169.254.1.0和169.254.254.255之间。下面启动dhcpd(busybox中带有udhcpd,可直接用):

创建udhcpd.conf文件,放在/etc/目录,内容如下所示:

start 192.168.0.20

end 192.168.0.254

interface uap0

opt dns 192.168.1.1

option subnet 255.255.255.0

opt router 192.168.0.1

#opt wins 192.168.0.1

option dns 192.168.1.1 # appened to above DNS servers for a total of 3

option domain local

option lease 864000 # 10 days of seconds

配置AP的IP地址:ifconfig uap0 192.168.0.1 netmask 255.255.255.0 up

启动dhcpd : udhcpd /etc/udhcpd.conf

重新启动AP: uaputl bss_stop

uaputl bss_start

用手机重新搜索 "Marvell Micro AP"并连接后,查看其IP地址为: 192.168.0.21 , 在板子上ping 192.168.0.21, OK.

Arm-linux:$>ping 192.168.0.21
PING 192.168.0.21 (192.168.0.21): 56 data bytes
64 bytes from 192.168.0.21: seq=0 ttl=128 time=13.971 ms
64 bytes from 192.168.0.21: seq=1 ttl=128 time=2.805 ms
64 bytes from 192.168.0.21: seq=2 ttl=128 time=2.680 ms
64 bytes from 192.168.0.21: seq=3 ttl=128 time=2.958 ms
64 bytes from 192.168.0.21: seq=4 ttl=128 time=2.839 ms
64 bytes from 192.168.0.21: seq=5 ttl=128 time=2.839 ms
^C
--- 192.168.0.21 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 2.680/4.682/13.971 ms
Arm-linux:$>

http://blog.csdn.net/chinazjn/article/details/9134157

手头产品是类似于IPC的设备,通过wifi传输视频。目标客户可能在户外使用较多,这就要求wifi 应该是Ap模式工作。Marvell sd8782 Src 源码下载

根据习惯,度娘上一顿收缩,参考博文一篇

测试uaputl 工具报错,所有命令全部不能配置。因为实际使用的marvell驱动是芯片家直接给的,而手头有的源码版本要低些,uaputl工具是低版本源码编译的,可能这里有版本差异在里面了,先放放,后面拿到源码再试这个。

那我用iwpriv 工具来配置网卡了。

一、装一堆驱动模块

#insmod rfkill_backport.ko;
#insmod compat_firmware_class.ko;
#insmod compat.ko;
#insmod cfg80211.ko;
#insmod mlan.ko

#insmod sd8xxx.ko drv_mode=2&
#echo 1 > /sys/class/compat_firmware/mmc1\:0001\:1/loading
#cat "/lib/firmware/sd8782_uapsta.bin" > /sys/class/compat_firmware/mmc1\:0001\:1/data
#echo 0 > /sys/class/compat_firmware/mmc1\:0001\:1/loading

上面三行命令作用是,我们使用的底层驱动有bug,自己找不到sd8782_uapsta.bin文件(无论是直接编译进内核,还是用udev,nxp技术支持大哥这么解释)。手工指定个路径暂时解决下。

二、iwpriv配置

#iwpriv uap0 apcfg "ASCII_CMD=AP_CFG,SSID=TEST_uAP,SEC=open,CHANNEL=8"

#iwpriv uap0 start
#iwpriv uap0 bssstart

这时可以识别到uap0了

/drivers # iwconfig
lo        no wireless extensions.

dummy0    no wireless extensions.

uap0      IEEE 802.11-DS  ESSID:""  
          Mode:Master  Frequency:2.437 GHz  Access Point: Not-Associated   
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

三、配置Ip地址

/drivers # ifconfig uap0 192.168.1.2
/drivers # ifconfig
uap0      Link encap:Ethernet  HWaddr 48:02:2A:31:37:26  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

四、用手机测试下,能识别到这个无线网络了,但是链接不上,这时udhcp要上场了。

下载交叉编译udhcp,当然busybox里面已经带udhcp的,独立编译或着编译busybox都可以。

本人选择独立编译,省事。

修改makefile: CROSS_COMPILE=arm-linux-

#make

把udhcpd copy到您的文件系统下(PS,我还编译了dhcpd,出来有5M多)。

在samples下拷个udhcpd.conf放到/etc/下。

然后自己对udhcpd.conf修修改改,就可以跑来了。

Marvell w8782 sdio wifi AP模式设置的更多相关文章

  1. Arduino IDE for ESP8266教程(二) 创建WIFI AP模式

    创建WIFI热点 #include <ESP8266WiFi.h> void setup() { Serial.begin ( 115200 ); Serial.println(" ...

  2. ARM WIFI AP 模式 使用 iptables nat 转发 通过 LAN 网线上网

    编译内核,支持 iptables 和 forward 和 nat. 编译内核,使用新内核启动arm 开发板. 编译内核支持 iptables-> Networking support (NET ...

  3. Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志

    Tethering技术在移动平台上已经运用的越来越广泛了.它能够把移动设备当做一个接入点,其它的设备能够通过Wi-Fi.USB或是Bluetooth等方式连接到此移动设备.在Android中能够将Wi ...

  4. 树莓派配置AP模式

    所需硬件:树莓派.无线网卡 1.查看无线网卡是否被识别 pi@raspberrypi ~ $ sudo lsusb Bus Device : ID : Standard Microsystems Co ...

  5. ESP8266-Soft AP模式 —— 谁想连上我

    AP是Access Point简称,也就是访问接入点,是网络的中心节点.一般家庭的无线路由器就是一个AP,众多站点(STA)加入到它所组成的无线网络,网络中的所有的通信都通过AP来转发完成. 软AP也 ...

  6. 华硕RT-AC86U路由器 AP模式实现多路由器组网,扩展主路由器的无线网范围

    描述: 宽带拨号上网的路由器为 TP-LINK  TL-WAR1200L,由于室内空间大,遂在此路由器下接入一个 华硕RT-AC86U路由器: 配置使该 华硕路由器与 TP-LINK 路由器的网段相同 ...

  7. 关于 RTL8723BS 同时开启 STA/AP 模式

    最近接到一个调试 wifi 驱动的任务,使用的是 rtl8723bs 芯片组.要求是让无线设备工作在 station 模式的时候同时开启一个 ap 热点.简单来讲就是连接其他 wifi 的同时发出一个 ...

  8. orangepi one AP模式配置

    前两天买了一块orangepi one开发板,目的是做个局域网共享目录,具体共享协议用samba:这块板子有两个网卡,一个有线一个无线:有线主要用来ssh登陆调试,修改配置. 首先下载armbian的 ...

  9. MT7601 AP模式移植

    MT7601 的 STA 模式和 AP 模式的驱动,是不一样的. 所以,需要另外移植驱动 驱动源码位置 https://github.com/eywalink/mt7601u 下载之后,先修改 Mak ...

随机推荐

  1. 谷歌PageRank算法

    1. 从Google网页排序到PageRank算法 (1)谷歌网页怎么排序? 先对搜索关键词进行分词,如“技术社区”分词为“技术”和“社区”: 根据建立的倒排索引返回同时包含分词后结果的网页: 将返回 ...

  2. JSOI 2017 退役记

    意料之中,真的要退役了. 懒得写游记了. Round 2 的时候状态一直不太清醒,最后混了个rank19,准备AFO吧.

  3. HOJ 1108

    题目链接:HOJ-1108 题意为给定N和M,找出最小的K,使得K个N组成的数能被M整除.比如对于n=2,m=11,则k=2. 思路是抽屉原理,K个N组成的数modM的值最多只有M个. 具体看代码: ...

  4. Ubuntu 下查看已安装的软件

    Ubuntu 下如何查看已安装的软件 1.查看安装的所有软件 dpkg -l 例如: dpkg -l | grep ftp 2.查看软件安装的路径 dpkg -L | grep ftp 也可以用 wh ...

  5. [Ext JS 4] MVC 应用程序框架

    前言 大型客户端应用程序总是很难编写,很难组织和很难维护.随着功能的增加和更多的开发人员加入项目,对项目的控制也越来越困难了.Ext JS 4 提供了一个新的应用程序框架帮助组织代码. 模型 - 一组 ...

  6. go的匿名组合

    golang也提供了继承机制,但采用组合的文法,因此称为匿名组合.与其他语言不同, golang很清晰地展示出类的内存布局是怎样的. 一  非指针方式的组合 1)基本语法 type base stru ...

  7. 湖南省第六届省赛题 Biggest Number (dfs+bfs,好题)

    Biggest Number 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 You have a maze with obstacles and non-zero di ...

  8. MVC公开课 – 2.查询,删除 (2013-3-15广州传智MVC公开课)

    查询 /Controller/HomeController.cs /// <summary> /// 查询 文章 列表 /// </summary> /// <retur ...

  9. day4 正则表达式(regular)

    正则(regular),要使用正则表达式需要导入Python中的re(regular正则的缩写)模块.正则表达式是对字符串的处理,我们知道,字符串中有时候包含很多我们想要提取的信息,掌握这些处理字符串 ...

  10. Windows下配置Apache服务器

    第一步:下载最新Apache. 下载网址:http://www.apachehaus.com/cgi-bin/download.plx 第二步:把下载文件解压缩到一个工作目录.D:\Apache 第三 ...