近在做基于2440+linux下,开发marvell 88w8686驱动 ,因为三月、硬件设计是spi接口,所以我从marvell

官方网站下载SPI 接口的驱动程序src_gspi8686.tar.bz2,

此驱动程序是基于PXA270的,所以需要自己移植到2440平台上,主要有如下工作要做:

1.将src_gspi8686 下的 io 文件夹下的gspi.c和gspi.h 这两个文件修改,针对各个具体函数,按照2440 SPI 的时序来编写SPI 驱动

2.修改Makefile编译修改过的代码,编译生成gspi.ko 和gspi8xxx.ko

3.加载SPI 驱动 insmod gspi.ko

4.加载wifi驱动 insmod gspi8686.ko  helper_name=./helper_gspi.bin

fw_name=./gspi8686.bin mfdmode=1

5.得到wifi芯片的ID 为 0xb

6.加载firmware 成功

7.设置wifi  MAC地址,ip地址 ifconfig eth1 192.168.1.138 netmask 255.255.255.0等信息

8.扫描网络iwlist eth0 scanning,设置连接点和密码等信息。

9.ping 服务器 ping 192.168.1.130 成功,到此wifi驱动porting 成功.

移植过程中出现的问题:

1、硬件问题:我们下载固件是通过主机接口,不是外接eeprom。调试花了不少的时间。

2、接收数据的链表头没有初始化,应该是在使用后再初始化,这是一个bug。

3、网络配置问题。

iwconfig工具使用

下载iwconfig工具相关的源代码,并成功交叉编译通过,用于实际项目中。

可依据实际需要修改Makefile中的"CC=gcc","AR=ar"以及安装路径, 我是CC=$(TOOLCHAIN)/bin/arm-linux-gcc,和AR=$(TOOLCHAIN)/bin/arm-linux-ar;

其余makefile不需要修改;用 make clean;make;make install即可编译安装。

生成的libiw.so.29与其他工具一起。

把生成的文件拷到目标板的/bin文件夹下,libiw.so.29拷到/lib下即可以使用相关命令。

下面来自网络:

iwconfig是Linux Wireless

Extensions(LWE)的用户层配置工具之一。LWE是Linux下对无线网络配置的工具,包括内核的支持、用户层配置工具和驱动接口的支持三部

分。现在很多无线网卡都支持LWE,而且主流的Linux发布版本,比如Redhat Linux、Ubuntu Linux都已带了这个配置工具。

1、iwconfig

用法: iwconfig interface [essid {NN|on|off}]

[nwid {NN|on|off}]

[mode {managed|ad-hoc|...}

[freq N.NNNN[k|M|G]]

[channel N]

[ap {N|off|auto}]

[sens N]

[nick N]

[rate {N|auto|fixed}]

[rts {N|auto|fixed|off}]

[frag {N|auto|fixed|off}]

[enc {NNNN-NNNN|off}]

[power {period N|timeout N}]

[retry {limit N|lifetime N}]

[txpower N {mW|dBm}]

[commit]

说明:iwconfig是LWE最主要的工具,能够对无线网卡的大部分参数进行配置。

参数:

essid:配置无线网卡的ESSID(Extension Service Set ID)。通过ESSID来区分不同的无线网络,正常情况下只有相同ESSID的无线站点

才能够互相通讯,除非想监听无线网络。其后的参数为双引号括起的ESSID字符串,或是any/on/off,假如ESSID字符串中包含

any/no/off,则需要在前面加"--"。

示例:

#iwconfig eth0 essid any                   允许任何ESSID,也就是混杂模式

#iwconfig eth0 essid "My Network"          配置ESSID为"My Network"

#iwconfig eth0 essid -- "ANY"              配置ESSID为"ANY"

nwid: Network ID,只用于pre-802.11的无线网卡,802.11网卡利用ESSID和AP的MAC地址来替换nwid,现在基本上不用配置。

示例:

#iwconfig eth0 nwid AB34

#iwconfig eth0 nwid off

nick: Nickname,一些网卡需要配置该参数,但是802.11协议栈、MAC都没有用到该参数,一般也不用配置。

示例:

#iwconfig eth0 nickname "My Linux Node"

mode:配置无线网卡的工作模式,能够是

Ad-hoc:不带AP的点对点无线网络

Managed:通过多个AP组成的网络,无线设备能够在这个网络中漫游

Master:配置该无线网卡为一个AP

Repeater:配置为无线网络中继设备,能够转发网络包

Secondary:配置为备份的AP/Repeater

Monitor:监听模式

Auto:由无线网卡自动选择工作模式

示例:

#iwconfig eth0 mode Managed

#iwconfig eth0 mode Ad-Hoc

freq/channel:配置无线网卡的工作频率或频道,小于1000的参数被认为是频道,大于10000的参数被认为是频率。频率单位为Hz,

能够在数字后面附带k, M, G来改变数量级,比如2.4G。频道从1开始。使用lwlist工具能够查看无线网卡支持的频率

和频道。参数off/auto指示无线网络自动挑选频率。

注意:假如是Managed模式,AP会指示无线网卡的工作频率,因此该配置的参数会被忽略。Ad-hoc模式下只使用该设定的频率

初始无线网络,假如加入已存在的Ad-hoc网络则会忽略该配置的频率参数。

示例:

#iwconfig eth0 freq 2422000000

#iwconfig eth0 freq 2.422G

#iwconfig eth0 channel 3

#iwconfig eth0 channel auto

ap:连接到指定的AP或无线网络,后面的参数能够是AP的MAC地址,也能够是iwlist scan出来的标识符。假如是Ad-hoc,则连接到

一个已存在的Ad-hoc网络。使用off参数让无线网卡不改变当前已连接的AP下进入自动模式。any/auto参数,无线网卡自动选择

最好的AP。

注意:假如无线信号低到一定程度,无线网络会进入自动选择AP模式。

示例:

#iwconfig eth0 ap 00:60:1D:01:23:45

#iwconfig eth0 ap any

#iwconfig eth0 ap off

rate/bit:假如无线网卡支持多速率,则能够通过该命令配置工作的速率。小于1000的参数由具体的无线网卡驱动定义,一般是传输速

率的索引值,大于1000的为速率,单位bps,能够在数字后面附带k, M, G来指定数量级。auto参数让无线网卡自动选择速率

fixed参数让无线网卡不使用自动速率模式。

示例:

#iwconfig eth0 rate 11M

#iwconfig eth0 rate auto

#iwconfig eth0 rate 5.5M auto    //自动选择5.5M以下的速率

txpower:假如无线网卡支持多发射功率设定,则使用该参数设定发射,单位为dBm,假如指定为W(毫瓦),只转换公式为:

dBm=30+log(W)。参数on/off能够打开和关闭发射单元,auto和fixed指定无线是否自动选择发射功率。

示例:

#iwconfig eth0 txpower 15

#iwconfig eth0 txpower 30mW

#iwconfig eth0 txpower auto

#iwconfig eth0 txpower off

sens:配置接收灵敏度的下限,在该下限之下,无线网卡认为该无线网络信号太差,不同的网卡会采取不同的措施,一些现代的无线网卡

会自动选择新的AP。正的参数为raw data,直接传给无线网卡驱动处理,一般认为是百分比。负值表示dBm值。

示例:

#iwconfig eth0 sens -80

#iwconfig eth0 sens 2

retry:配置无线网卡的重传机制。limit ‘value’ 指定最大重传次数;lifetime ‘value’指定最长重试时间,单位为秒,能够附带m和u来

指定单位为毫秒和微秒。假如无线网卡支持自动模式,则在limit和lifetime之前还能够附加min和max来指定上下限值。

示例:

#iwconfig eth0 retry 16

#iwconfig eth0 retry lifetime 300m

#iwconfig eth0 retry min limit 8

rts:指定RTS/CTS握手方式,使用RTS/CTS握手会增加额外开销,但假如无线网络中有隐藏无线节点或有很多无线节点时能够提高性能。

后面的参数指定一个使用该机制的最小包的大小,假如该值等于最大包大小,则相当于禁止使用该机制。能够使用auto/off/fixed

参数。

示例:

#iwconfig eth0 rts 250

#iwconfig eth0 rts off

frag:配置发送数据包的分片大小。配置分片会增加额外开销,但在噪声环境下能够提高数据包的到达率。一般情况下该参数小于最大包

大小,有些支持Burst模式的无线网卡能够配置大于最大包大小的值来允许Burst模式。还能够使用auto/fixed/off参数。

示例:

#iwconfig eth0 frag 512

#iwconfig eth0 frag off

key/enc[ryption]:配置无线网卡使用的加密密钥,此处为配置WEP模式的加密key,假如要使用WPA,需要wpa_supplicant工具包。

密钥参数能够是 XXXX-XXXX-XXXX-XXXX 或 XXXXXXXX 格式的十六进制数值,也能够是s:xxxxxx的ASCII字符。假如在密钥参数之前

加了[index],则只是配置该索引值对应的密钥,并不改变当前的密钥。直接指定[index]值能够配置当前使用哪一个密钥。指定on/

off能够控制是否使用加密模式。open/restricted指定加密模式,取决于不同的无线网卡,大多数无线网卡的open模式不使用加密且

允许接收没有加密的数据包,restricted模式使用加密。能够使用多个key参数,但只有最后一个生效。

WEP密钥能够是40bit,用10个十六进制数字或5个ASCII字符表示,也能够是128bit,用26个十六进制数字或13个ASCII字符表

示。

示例:

#iwconfig eth0 key 0123-4567-89

#iwconfig eth0 key [3] 0123-4567-89

#iwconfig eth0 key s:password [2]

#iwconfig eth0 key [2]

#iwconfig eth0 key open

#iwconfig eth0 key off

#iwconfig eth0 key restricted [3] 0123456789

#iwconfig eth0 key 01-23 key 45-67 [4] key [4]

power:配置无线网卡的电源管理模式。period ‘value’ 指定唤醒的周期,timeout ‘value’指定进入休眠的等待时间,这两个参数之前能够

加min和max修饰,这些值的单位为秒,能够附加m和u来指定毫秒和微秒。off/on参数指定是否允许电源管理,all/unicast/multicast

指定允许唤醒的数据包类型。

示例:

#iwconfig eth0 power period 2

#iwconfig eth0 power 500m unicast

#iwconfig eth0 power timeout 300u all

#iwconfig eth0 power off

#iwconfig eth0 power min period 2 power max period 4

commit:提交任何的参数修改给无线网卡驱动。有些无线网卡驱动会先缓存无线网卡参数修,使用这个命令来让无线网卡的参数修改生效。但是一

般无需使用该命令,因为无线网卡驱动最终都会是参数的修改生效,一般在debug时会用到。

为了方便配置,能够把配置写到 /etc/network/interfaces中,这样以后就不用反复配置了。

auto loiface lo inet loopback

auto eth1

iface eth1 inet staticaddress 192.168.1.3

netmask 255.255.255.0gateway 192.168.1.1

echo nameserver 192.168.1.1>/etc/resolv.confpre-up /sbin/iwconfig eth1 essid "LW HOME LINK"

pre-up /sbin/iwconfig eth1 key s:liwei

auto usb0iface usb0 inet static

address 192.168.0.200netmask 255.255.255.0

auto dsl-provideriface dsl-provider inet ppp

pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconfprovider dsl-provider

auto eth0

iface eth0 inet manual

(come from http://blog.csdn.net/control_tech)

开发linux无线网卡驱动程序,linux-2.6.26下开发marvell 88w8686 wifi驱动 (转)相关推荐

  1. 【教程】Marvell 88W8686 WiFi模块驱动程序的编写(一)

    本文以STM32F1系列的单片机为例,详细讲解Marvell公司的88W8686 WiFi模块驱动程序的编写.编写程序时为了代码简短起见,直接用寄存器操作,不使用STM32库函数.IDE采用Keil ...

  2. linux提取驱动程序,linux驱动程序调试常用方法

    驱动程序开发的一个重大难点就是不易调试.本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段,它们是: 利用printk 查看OOP消息 利用strace 利用内核内置的hacking选项 利用i ...

  3. linux文件控制驱动程序,Linux设备驱动程序学习(6)-高级字符驱动程序操作[(3)设备文件的访问控制]...

    Linux设备驱动程序学习(6) -高级字符驱动程序操作[(3)设备文件的访问控制] 提供访问控制对于一个设备节点来的可靠性来说有时是至关重要的.这部分的内容只是在open和release方法上做些修 ...

  4. linux无线网卡0583,linux下如何安装无线网卡驱动

    linux下如何安装无线网卡驱动0 guliaimei2014.01.01浏览217次分享举报 笔记本 方正 R410IU ( 英特尔 4 Series - ICH9M 笔记本芯片组 ) 处理器 英特 ...

  5. linux网络设备驱动程序,Linux网络设备驱动程序

    Linux网络设备驱动程序体系结构 -------------------------------------- |        数据包发送    |    数据包接收      |    ---- ...

  6. linux无线网卡消失,linux下wpa/wpa2的无线网卡设置 [暂时还没有证实是否能用]

    今天实在受不了虚拟机里安装的Linux Server系统了,决定在笔记本电脑上安装个Ubuntu 10.04 Server版.网上搜索了一下,会自动设置成双系统,所以就不怕了.在Windows下删除了 ...

  7. linux鼠标驱动程序,Linux usb子系统(一) _写一个usb鼠标驱动

    USB总线是一种典型的热插拔的总线标准,由于其优异的性能几乎成为了当下大小设备中的标配. USB的驱动可以分为3类:SoC的USB控制器的驱动,主机端USB设备的驱动,设备上的USB Gadget驱动 ...

  8. linux多点触摸屏驱动程序,Linux系统实现支持多点触控操作[视频]

    虽然大多数人目前还不会购买拥有触控屏的设备,不过在Windows 7的大力推动下,触控操作已经开始流行了起来.然而Linux目前却无法支持这一功能,这让很多用户十分郁闷,不过来自ENAC Intera ...

  9. linux gtx驱动程序,linux GTX1080TI安装显卡驱动小记

    我这辈子没有见过什么世面,之前用的最好的显卡就是GTX750Ti了,有幸来到一个还算有钱的课题组,导师给配了一台装有E5-2696 v3 CPU,GTX1080TI显卡的电脑,不甚欢喜,爱不释手.没想 ...

  10. linux 背光驱动程序,Linux驱动工程师成长之路 LCD背光控制RT9379B

    老大说了,下周新的手机要回来了,用的是400*800的屏,到时候就由我来调这个屏了.把屏的spec和背光的spec都给了我让我先看看. 以前分析了LCD(framebuffer)的驱动框架,但是对于背 ...

最新文章

  1. 使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据
  2. mysql 显示用户_在Mysql中如何显示所有用户?
  3. WKWebView不显示提示框(Swift)
  4. 2-django进阶之日志功能(亲测)
  5. 【编译打包】haproxy 1.4.23
  6. Python适合自己的IDE才是最好的IDE
  7. Windows USB驱动开发点滴积累备忘录
  8. 软考信息系统项目管理师_信息系统项目管理基础---软考高级之信息系统项目管理师009
  9. Golang的io.go和io.pipe库的笔记
  10. 让别人查看云服务器的文件夹,让别人查看云服务器的文件夹
  11. 【天池大数据赛题解析】资金流入流出预测(附Top4答辩ppt)
  12. Node.js下载及安装步骤
  13. 手动修改Icon图标的颜色深度(张佩)
  14. 朴素贝叶斯分类与拉普拉斯平滑
  15. excel 选择一个单元格,所在行列变色
  16. 鸿蒙三千法则排名,三千法则名称大全_十大最强法则
  17. 新版Win10开机任务栏卡死的原因和解决方法
  18. 制造业ERP怎么创新与转型(阿朱说)
  19. dx/dy=1/y’求其二阶导
  20. windows安装python环境、conda常用命令

热门文章

  1. Think in Java 4 中关于使用XOM操作xml文件
  2. PHP攻防安全相关 -- 转
  3. python假设税前工资和税率如下_计算税后收入_税前税后工资计算公式,软件和手动计算哪个更有优势?...
  4. web应用基本框架图
  5. jQuery实现打字小游戏
  6. coldfusion_ColdFusion 9的发布…
  7. 你不知道的JavaScript APIs
  8. PCL点云滤波器总结
  9. [37期]二三事。老师说标题长才霸气。长长长…
  10. one class classification