WIFI移植全过程

基于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<mach/gpio.h>
#include<linux/mmc/host.h>
#include<plat/mci.h>
//增加平台设备对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  --->
<M> Marwell 8xxx Libertas WLAN driver support
<M> 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/(后面两个目录是自己创建的,固件的话
malaki paul我当时也是问老师拿的,没办法!)
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
数据包丢失需要修改启动代码 数据包丢失需要修改启动代码
换取lib后文件系统挂不上
后文件系统挂不上
文件系文件系统挂上但是没有获取统挂上但是没有获取wifi 数据数据

本文发布于:2024-09-21 22:58:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/137793.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:无线   驱动   内核   没有
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议