S5pc100平台wifi模块驱动移植分析.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:5 大小:148KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

S5pc100平台wifi模块驱动移植分析.doc

S5pc100平台wifi模块驱动移植分析.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

S5pc100平台wifi模块驱动移植分析一、移植环境:1、主机:Ubuntu10.10发行版2、目标机:FS_S5PC100平台3、交叉编译工具:arm-none-linux-gnueabi-4、wifi模块:marvell-86865、内核:linux-2.6.35---------------------------------------------------------------------二、在linux下的移植1.平台代码修改内核驱动支持因为S5PC100平台上SDIO功能已经支持,所以只需要内核驱动支持marvell-8686即可。由于wifi的接口种类有很多种,比如有usb接口wifi,串口接口wifi,sd卡接口wifi,sdio接口wifi,所以在移植wifi驱动时必须确保usb,串口,sd卡的驱动存在,取决于wifi接口的类型。S5pc100开发板上的wifi的接口是sdio接口的,所以在此之前必须移植号sdio接口的驱动。$makemenuconfig修改:[*]Networkingsupport--->[*]Wireless---><*>cfg80211-wirelessconfigurationAPI{*}commonroutinesforIEEE802.11driversDeviceDrivers--->[*]Networkdevicesupport--->WirelessLAN---><*>Marvell8xxxLibertasWLANdriversupport<*>MarvellLibertas8385/8686/8688SDIO802.11b/gcardsGenericDriverOptions--->(sd8686.binsd8686_helper.bin)Externalfirmwareblobstobuildintothekernel2.内核的修改:wifi的移植依赖于网卡驱动的移植和nand-flash平台的支持,可以参考Linux-2.6.35内核移植—网卡驱动的移植和Linux-2.6.35内核移植——Nandflash驱动的移植文件arch/arm/mach-s5pc100/mach-smdkc100.c下有内核的分区,把第2个分区改成8M。因为生成的文件系统太大,大于4M。修改如下(红色字体部分):staticstructmtd_partitions5pc100_nand_part[]={[0]={.name="bootloader",.size=SZ_1M,.offset=0,},[1]={.name="kernel",.size=SZ_1M*4,.offset=MTDPART_OFS_APPEND,},[2]={.name="rootfs",.size=SZ_8M,.offset=MTDPART_OFS_APPEND,},[3]={.name="usrfs",.offset=MTDPART_OFS_APPEND,.size=MTDPART_SIZ_FULL,},3.固件的准备将固件sd8686.bin和sd8686_helper.bin拷贝到linux-2.6.35/firmware下。编译时会自动编译进内核。$cpsd8686.binlinux-2.6.35/firmware/$cpsd8686_helper.binlinux-2.6.35/firmware/$makezImage$sudocpzImage/tftpboot由于wifi驱动在运行时需要两个工具,wpa_supplicant和wpa_cli,所以必须先制作这两个工具放到文件系统的bin目录下面。三,文件系统的制作1.wpa_suppicant的移植源码版本选择:wpa_supplicant-0.7.3openssl-0.9.8e[openssl移植]:a、补丁安装openssl源码编译需要打wpa_supplicant提供的补丁,我们选择的openssl版本为openssl-0.9.8e所以我们需要wpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patch拷贝到openssl源码下。$cpwpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patchopenssl-0.9.8e/$cdopenssl-0.9.8e$patch-p1<openssl-0.9.8e-tls-extensions.patch注意:-p1,这里是数字“1”