zoukankan      html  css  js  c++  java
  • Linux SDIO WIFI驱动的编译

    目前sourceforge网站上提供了Linux 2.6.18版本内核的sdiostack补丁,使用此补丁后可以编译出供Atheros SDIO wifi v1.0模块使用的驱动。

    首先选择工作目录(例如当前用户的个人目录/home/~),此后的操作都在此目录下进行。下面以Samsung S3C2410平台为例介绍驱动编译过程,使用的交叉编译工具为arm-linux-gcc v3.4.6。

    1. 下载内核压缩包并解压。

       tar zxvf linux-2.6.18.tar.gz

    2. 下载sdiostack驱动并解压至内核源码目录,补丁包含5个patch文件和1个series文件,按照series文件中的顺序依次打补丁。

       tar zxvf sdio-linux-2.6.18.tar.gz -C linux-2.6.18/

       cd linux-2.6.18/

       patch -p1 < common_atheros_sdiostack.patch

       patch -p1 < common_atheros_sdiostack_shcd.patch

       patch -p1 < common_atheros_sdiostack_functions.patch

       patch -p1 < common_atheros_sdiostack_sample_fd.patch

       patch -p1 < common_atheros_sdiostack_benchmark.patch

       patch -p1 < common_atheros_sdiostack_ar6000_wlan.patch

    3. 可以从配置路径拷贝s3c2410配置模板后再对其修改。

       cp arch/arm/configs/s3c2410_defconfig .config

       需要开启Device Drivers-->Plug and Play support-->Plug and Play support选项支持PnP。

       需要开启Device Drivers-->Network device support-->Wireless LAN (non-hamradio)--> Wireless LAN drivers (non-hamradio) & Wireless Extensions选项,否则无法找到wireless_send_event函数定义。

       make menuconfig

    4. drivers/pnp/resource.c中的request_dma和free_dma函数需要删除,不然在稍后的编译中会造成缺少定义的错误(我始终未能让resource.c成功的找到这两个相关的dma函数实现,最后只能注释掉了,如果有了解的朋友,希望能告诉我正确的做法)。然后开始内核编译操作。

       make

    5. 最后在drivers/sdio/对应目录下生成驱动各个模块。sdiostack补丁中只提供了很少几种平台的hcd模块代码,如果缺少对应目标平台的代码,还需要自己移植。以下4个模块为必须的最小配置。

       lib/sdio_lib.ko

       busdriver/sdio_busdriver.ko

       function/wlan/ar6000/ar6000.ko

       hcd/s3c2412/sdio_s3c2410_hcd.ko

    注意:编译sdiostack驱动时使用的内核版本需要和目标平台上的内核版本一致,如果不是2.6.18版本的内核,在打补丁过程中可能会有提示信息,可以根据提示信息手工修改。不同平台的内核配置选项也会有所不同,可能需要对配置做少许调整。一般来说,补丁中包含的hcd模块代码不能满足需要,所以要想最终能使用SDIO WIFI网卡,最困难的地方在于如何获取缺少的这一部分的代码。MontaVista也提供了一个补丁下载,我没有用过这个补丁,但是其中包含的sdiostack文档是很好的资料。如果希望使用Atheros SDIO wifi v2.0,可以看看openmoko补丁。下一步,我将尝试编译wifi v2.0的驱动。

  • 相关阅读:
    Mac014--Sourcetree安装(Git client)
    SSM003/构建Maven单模块项目(二)
    Git016--Work
    Mac013--Docker安装
    前端002/常用标签属性(工作应用)
    Python 38 初识数据库
    Python 38 sql基础
    Python 39 数据库的数据类型
    Python 39 数据库
    Python 37 进程池与线程池 、 协程
  • 原文地址:https://www.cnblogs.com/faraway/p/1399608.html
Copyright © 2011-2022 走看看