基于2.6.35内核的SDIO-WiFi驱动移植

来源:互联网 发布:日本av作品番号数据库 编辑:程序博客网 时间:2024/06/05 17:18

基于2.6.35内核的SDIO-WiFi驱动移植

一、 移植环境:

【移植环境】

1、 主机:Ubuntu 10.10发行版

2、 目标机:FS_S5PC100平台

3、 交叉编译工具:arm-none-linux-gnueabi-4.5.1

4、wifi模块:marvell-8686

5、Linux文件系统:rootfs. cramfs.

6、内核:linux-2.6.35-farsigt

二、 在linux下的移植

1. 平台代码修改

drivers/mmc/host/sdhci.c 

屏蔽以下代码

629行  printK (KERN_WARING "%s: too large timeout requested!\n", mmc_hostname(host_>mmc));

2. 内核驱动支持

因为S5PC100平台上SDIO功能已经支持,所以只需要内核驱动支持marvell-8686即可。

[*] Networking support  --->

[*]   Wireless  --->

<*> cfg80211 - wireless configuration API

{*} common routines for IEEE 802.11 drivers

Device Drivers  --->

[*] Network device support  --->

Wireless LAN  --->

<*>Marvell 8xxx Libertas WLAN driver support

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

Generic Driver Options  --->

(sd8686.bin sd8686_helper.bin) External firmware blobs to build into the kernel (firmware) Firmware blobs root directory

3. 内核的修改

文件arch/arm/mach-s5pc100/mach-smdkc100.c有内核的分区, 把第2个分区改成8M.

因为生成的文件系统太大,大于4M.

4. 固件准备

将固件sd8686.binsd8686_helper.bin拷贝到linux-2.6.35/firmware下。编译时会自动编译进内核。

make zImage

sudo  cp  zImage  /tftpboot/zImage_wifi

三、 文件系统的制作

1. wpa_suppicant的移植

源码版本选择:

wpa_supplicant-0.7.2

openssl-0.9.8e

openssl移植:

a、补丁安装

openssl源码编译需要打wpa_supplicant提供的补丁,我们选择的openssl版本为openssl-0.9.8e所以我们需要wpa_supplicant-0.7.2/patches/openssl-0.9.8e-tls-extensions.patch拷贝到openssl源码下。

patch -p1 < openssl-0.9.8e-tls-extensions.patch

b、配置编译安装

./Configure linux-elf-arm -DL_ENDIAN linux:'arm-none-linux-gnueabi-gcc' shared --prefix=/home/linux/workdir/wifi/openssl

make

make install

 

wpa_supplicant移植:

/wpa_supplicant-0.7.2/wpa_supplicant目录下

a、makefile修改

添加

CC=arm-unknown-linux-gnueabi-gcc//自己的交叉编译工具

 

CFLAGS += -I../src

CFLAGS += -I../src/utils

下添加:

CFLAGS += -I/home/linux/workdir/wifi/openssl/include

 

修改

LIBS += -lssl

LIBS += -lssl -L/home/linux/workdir/wifi/openssl/lib/

 

修改

LIBS_p += -lcrypto

LIBS_p += -lcrypto -L/home/linux/workdir/wifi/openssl/lib/

b、编译

cp deconfig .config

make

编译后将生产的wpa_supplicantwpa_cli拷贝到根文件系统的bin目录下

0 0
原创粉丝点击