WIFI移植全过程

  • 格式:pdf
  • 大小:930.93 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于S3C S3C242424440的SDIO 卡WIFI 移植移植

1112/1112/yangjun yangjun yangjun

环境:Ubuntu10.10

LINUX2.26.38

交叉编译工具链:arm-linux-gcc

一、SDIO 设备驱动移植

1、 修改SD 卡驱动使内核支持SD 卡

修改文件:arch/arm/mach-s3c2440/mach-smdk2440.c

添加所需头文件:

#include

#include

#include

//增加平台设备对sd 卡的支持

static struct platform_device *smdk2440_devices[] __initdata = {

&s3c_device_ohci,

&s3c_device_lcd,

&s3c_device_wdt,

&s3c_device_i2c0,

&s3c_device_iis,

&s3c_device_sdi,

};

//添加平台数据dev->platform_data

static struct s3c24xx_mci_pdata smdk2440_mmc_cfg __initdata={

.gpio_detect = S3C2410_GPG(8),//此处保留为使用中断号8,看芯片手册

.set_power = NULL,

.ocr_avail = MMC_VDD_32_33,

};

2、 在smdk2440_machine_init 中添加

s3c24xx_mci_set_platdata(&smdk2440_mmc_cfg);

二、配置内核以支持Marvel 无线WIFI

选择38内核中的wlan marwell sdio 模块

device drivers ---->

[*] Network device support --->

[*] Wireless LAN --->

Marwell 8xxx Libertas WLAN driver support

Marwell Libertas 8385/8686/8688 SDIO 802.11b/g cards Networking support --->

-*- Wireless --->

<*> cfg80211 - wireless configureation API

{*} common routines for IEEE 802.11 drivers

三、编译内核,生成驱动模块

1、先执行make 然后make modules 最后执行make uImage //内核生成模块的方式

2、将生成的wlan相关ko文件拷贝到目标板中,在这我放在/sdio目录下

/drivers/net/wireless/libertas/$

cp libertas.ko libertas_sdio.ko /opt/filesystemx/sdio/

3、把固件helper_sd.bin sd8686.bin拷贝到相应的位置

/rootfs/filesystem/lib/firmware/mrvl/(后面两个目录是自己创建的,固件的话

我当时也是问老师拿的,没办法!)

4、在目标板子插入SDIO WIFI 并加载驱动

首先插入SDIO WIFI 然后加载驱动

/sdio#insmod libertas.ko

/sdio#insmod libertas_sdio.ko

helper_name=/lib/firmware/mrvl/helper_sd.bin

fw_name=/lib/firmware/mrvl/sd8686.bin (注意要在一行)

驱动加载完成会提示:(注意:如果没有,则再次热插拔你的sdio wifi卡便可以看

到)

if_sdio_intterupt

libertas: 00:01:36:19:b3:6b, fw 9.70.3p23, cap 0x00000303

if_sdio_intterupt

libertas: wlan0: Marvell WLAN 802.11 adapter

sdio_havefister_driver

sdio_init_module have done

(此处提示信息有可能会不一样)

四、制作无线测试工具及测试

1、无码(没有密码)

测试无线网卡用无线工具iwconfig iwlist等命令是通过开源软件

wireless_tools_29.rar编译得到。

步骤:

1、首先在windows目录解压上面那个软件包,把解压后的文件夹复制到虚拟机

/home$ls

wireless_tools_29

/home/wireless_tools_29$

2、修改Makefile:根据下面的行号

8 PREFIX = /home/wtools //指定安装路径

12 CC = arm-linux-gcc (和编译你的文件系统所用保持一致,也可静态编译,对Makefile 适当修改)

14 AR = arm-linux-ar

接着make 然后执行make install 即可。在/home/wtools下查看有:

lib sbin usr

目录,libiw.so(这是个软连接) libiw.so.29库在lib目录 而sbin目录为一

些网络工具,如:iwlist、iwconfig等 可以man xxx查看功能

3、拷贝libiw.so、libiw.so.29库和测试工具

/home/wtools/lib/$cp * /opt/root_38fs/lib -a

/home/wtools/sbin/$cp * /opt/root_38fs/bin (这样就不用考虑环境变量了)

4、ifconfig -a 查看是否检测到无线网卡

在测试工具目录下测试

root_38fs/bin #ifconfig wlan0 up

root_38fs/bin #iwlist wlan0 scanning //搜索热点

root_38fs/bin #iwconfig wlan0 essid "热点名字" //链接热点

root_38fs/bin #ifconfig wlan0 192.168.2.99 netmask 255.255.255.0 up (静

态分配,也可以动态分配。参考我的《基于FS2410的DHCP移植》)

root_38fs/bin #route add default gw 192.168.2.1

root_38fs/bin #ping 192.168.2.1

相关主题