[Linux项目实践] Marvel 8686 Wifi Module移植到S3C2440

环境:Ubuntu10.10

  linux-2.6.38.8

  S3C2440

交叉编译工具链:arm-none-linux-gnueabi-

一、 SDIO 设备驱动移植

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

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

1.1添加所需头文件:
#include<mach/gpio.h>
#include<linux/mmc/host.h>
#include<plat/mci.h>

1.2增加平台设备对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, 
};

1.3添加平台数据dev->platform_data

1.4smdk2440_machine_init中添加

s3c24xx_mci_set_platdata(&smdk2440_mmc_cfg);

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

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

[*] Networking support  ---> 

 -*-   Wireless  ---> 

 <*>   cfg80211 - wireless configuration API  

 {*}   Common routines for IEEE802.11 drivers 

Device Drivers -->

 [*] Network device support  --->  

[*]   Wireless LAN  ---> 

<M>   Marvell 8xxx Libertas WLAN driver support 

<M>   Marvell Libertas 8385/8686/8688 SDIO 802.11b/g cards 

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

1、 先执行make 然后make modules  最后执行make uImage  

2、 将生成的wlan相关模块的.ko文件拷贝到目标板文件系统中,在这里我们放在文件系统根目录下的/sdio中

terry@terry-virtual-machine:~/terry_shared/kernel3/linux-2.6.38.8/drivers/net/wireless/libertas$

3、 cp libertas.ko libertas_sdio.ko /opt/fs2410/filesystem/sdio/

4、 将Marvell 88W8686固件helper_sd.bin sd8686.bin拷贝到挂载的文件系统相应的位置/opt/fs2410/filesystem/lib/firmware/mrvl

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

无码(没有密码)

测试无线网卡用无线工具iwconfig iwlist等命令是通过开源软件wireless_tools_29.rar编译得到。

步骤:

1首先在windows目录解压上面那个软件包,把解压后的文件夹复制到Ubuntu /home$ls
wireless_tools_29
/home/wireless_tools_29$

2修改Makefile

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

lib sbin usr

3拷贝lib目录下的libiw.solibiw.so.29库和测试工具到文件系统中

/home/wtools/lib/$cp * /opt/fs2410/filesystem/lib -a
/home/wtools/sbin/$cp * /opt/fs2410/filesystem/bin 

五、Wifi Module测试:

启动S3C2440加载内核、挂载文件系统、插入wifi module

手动加载wifi module模块

/sdio # ifconfig wlan0 up       //启动网络连接

/sdio # iwlist wlan0 scanning          //扫描热点

/sdio # iwconfig wlan0 essid "byL"     //连接某一个热点

/sdio # ifconfig wlan0 192.168.8.99 netmask 255.255.255.0 up

/sdio # route add default gw 192.168.8.1

/sdio # ping 192.168.8.1

OK

阅读更多
个人分类: Linux项目实践
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭