ls0398 发表于 2015-10-2 11:11:40

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.4、在smdk2440_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.so、libiw.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!
页: [1]
查看完整版本: Marvel 8686 Wifi Module移植到S3C2440