WiFi在linux下的移植.
在Linux系统中移植WiFi功能涉及到多个层面的工作,包括内核驱动支持、wpa_supplicant的移植、固件准备以及最终的测试。以下是对这些步骤的详细解释: 1. **内核驱动支持**: 在Linux内核配置中,需要确保选择并启用对Marvell 8686 WiFi芯片的支持。这通常是在内核配置菜单的`Networking support` -> `Wireless` -> `Improved wireless configuration API` -> `common routines for IEEE 802.11 drivers` -> `Marvell 8xxx Libertas WLAN driver support` 和 `Marvell Libertas 8385 and 8686 SDIO 802.11b/g cards` 选项。同时,需要将固件文件`sd8686.bin`和`sd8686_helper.bin`放入`/firmware`目录以便内核加载。 2. **wpa_supplicant的移植**: wpa_supplicant是负责处理Wi-Fi安全认证的关键组件。需要选择合适的wpa_supplicant版本,如`wpa_supplicant-0.7.2`,并移植OpenSSL库。对于OpenSSL,需要应用wpa_supplicant提供的补丁,然后配置、编译和安装OpenSSL。接着,在wpa_supplicant源码目录下,配置编译环境,指定交叉编译器路径,并添加OpenSSL库的头文件和库文件路径。完成编译后,将生成的`wpa_supplicant`和`wpa_cli`复制到目标系统的`bin`目录。 3. **固件准备**: 将固件文件`sd8686.bin`和`sd8686_helper.bin`复制到Linux内核源码的`firmware`子目录,这样在编译内核时会自动集成这些固件。 4. **测试**: 测试阶段,首先需要在根文件系统中创建`/etc/resolv.conf`以进行DNS解析。接着,创建`wpa_supplicant.conf`配置文件,包含网络SSID、安全类型、协议、密钥管理、对称加密算法和预共享密钥。创建`/var/run/wpa_supplicant`目录以供wpa_supplicant运行。然后,设置无线网卡的IP地址,配置默认网关,并通过wpa_supplicant连接到无线网络。使用`wpa_cli status`检查连接状态,并通过`ping`命令验证网络连通性。 5. **在Android下的移植**: 在Android系统中,WiFi驱动通常作为内核模块编译。这涉及修改Android的内核配置,使能对应的WiFi驱动,并且需要与Android的HAL(硬件抽象层)和用户空间服务(如wpa_supplicant的Android版`wpa_supplicant.conf`)协同工作。Android的WiFi框架会通过`wificond`服务来控制wpa_supplicant,实现网络连接的自动化管理。 在移植WiFi功能时,必须确保所有组件的兼容性和正确配置,包括内核、固件、wpa_supplicant以及Android特有的服务。此外,还需要注意不同Linux发行版或Android版本可能存在的差异,这可能会影响到移植过程中的具体步骤和配置选项。在实际操作中,还需要密切关注日志输出,以便排查可能出现的错误和异常。
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助