在linux 下的移植 1、内核驱动支持 因为平台上 SDIO 功能已经支持,所以只需要内核驱动支持 marvell-8686 即可。 [*] Networking support ---> [*] Wireless ---> <*> Improved 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 and 8686 SDIO 802.11b/g cards Generic Driver Options ---> (sd8686.bin sd8686_helper.bin) External firmware blobs to build into the kernel binary 把 sd8686.bin 和 sd8686_helper.bin 这两个固件放在/firmware 这个目录下。 2、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、 按如下方式修改 cp deconfig .config vi .config 在里面添加如下 CC= arm-linux-gcc -L /home/linux/workdir/wifi/openssl/lib/ CFLAGS += -I/home/linux/workdir/wifi/openssl/include LIBS += -L/home/linux/workdir/wifi/openssl/lib/ b、编译 make 编译后将生产的 wpa_supplicant 和 wpa_cli 拷贝到跟文件系统的 bin 目录下 3、固件准备 将固件 sd8686.bin 和 sd8686_helper.bin 拷贝到linux-2.6.35/firmware 下。编译时会自动编译进内核。 4、测试 a 、 在根文件中添加/etc/resolv.conf,域名解析。 内容为: # Generated by NetworkManager nameserver 8.8.8.8 b、 在根文件系统/etc下添加 wpa_supplicant配置文件 wpa_supplicant.conf内容为: # WPA-PSK/TKIP ctrl_interface=/var/run/wpa_supplicant network={ ssid="XXXX" ...