嵌入式Linux--wirelesstools详解

一、wireless tools工具移植

wireless tools是操作WiFi的实用工具集,包含iwconfig(设置无线网络参数)、iwlist(扫描热点)、iwspy(获取节点连接质量)、iwpriv(操作特定驱动)、ifrename(重命名接口),其中iwlist和iwconfig最为常用。

移植时,先把资料包里的iwlist_for_visteon-master.tar.bz2复制到Ubuntu的tool目录,解压后进入文件夹,修改Makefile中的CC、AR和RANLIB变量,替换为适配开发板的交叉编译工具,格式为arm-linux-gnueabihf-xxx。修改完成后,执行make clean清理工程,再运行make编译,就能得到iwlist、iwconfig等工具,以及关键的libiw.so.29库文件。

编译完成后,将这些工具复制到开发板根文件系统的/usr/bin目录,库文件复制到/usr/lib目录,即可完成移植。

二、wireless tools工具测试
测试的核心是iwlist工具,先输入iwlist命令,若输出工具的用法提示,就说明工具正常工作。

正式测试前,先让WiFi模块运行起来,以RTL8188 USB WiFi为例,把模块插到开发板USB接口,加载驱动模块8188eu.ko,再用ifconfig wlan0 up打开网卡。之后输入iwlist wlan0 scan,就能扫描到周边所有WiFi热点,输出的信息包含MAC地址、WiFi名称、协议、频率、速率、信号质量等,通过扫描信息,可确定要连接的目标热点,为后续联网操作做准备。

三、wpa_supplicant移植
wpa_supplicant用于连接指定WiFi热点,移植前需要先完成两个依赖库的移植。

  1. 移植openssl
    openssl是wpa_supplicant的加密依赖库,先在Ubuntu的tool目录下解压openssl-1.1.1d.tar.gz,再新建openssl文件夹存放编译结果。进入解压后的目录,执行配置命令,指定32位ARM平台和交叉编译器,之后运行makemake install编译安装。编译完成后,把openssl的lib目录里的libcryptolibssl库复制到开发板/usr/lib目录。
  1. 移植libnl库
    libnl是wpa_supplicant的通信依赖库,编译前需先在Ubuntu安装bison和flex工具。接着把libnl-3.2.23.tar.gz复制到tool目录解压,新建libnl文件夹存放编译结果,进入解压目录执行配置命令,指定交叉编译器前缀和编译存放路径,再用make -j12编译、make install安装。安装完成后,将libnl的lib目录下所有文件复制到开发板/usr/lib目录。
  1. 移植wpa_supplicant本体
    解压wpa_supplicant-2.7.tar.gz,进入其wpa_supplicant子目录,把defconfig文件复制为.config。打开.config文件,指定交叉编译器,同时配置openssl和libnl的头文件与库路径。然后设置环境变量,指定libnl的pkgconfig路径,避免编译时报错,最后执行make编译。编译成功后会生成wpa_supplicant和wpa_cli两个工具,复制到开发板/usr/bin目录,重启开发板后,输入wpa_supplicant -v,若能正常输出版本号,就说明移植成功。

四、WiFi联网测试
不管是USB WiFi还是SDIO WiFi,联网都遵循固定步骤:插好模块(SDIO WiFi需先拔SD卡避免冲突)、加载对应驱动、用ifconfig打开网卡、用iwlist扫描热点,确认目标热点可扫描后,再用wpa_supplicant完成连接。

  1. RTL8188 USB WiFi联网测试
    先明确驱动匹配,RTL8188EUS用8188eu.ko,RTL8188CUS用8192cu.ko。扫描确认目标热点后,在开发板/etc目录创建wpa_supplicant.conf配置文件,填写目标热点的SSID和密码,格式必须严格,等号前后不能有空格,缩进用空格,建议手动输入避免错误,同时创建/var/run/wpa_supplicant目录。

配置完成后,输入wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &启动连接,连接成功会有明确提示。最后用udhcpc -i wlan0获取IP地址,地址获取成功后,输入ifconfig wlan0查看网卡信息,通过ping指定网卡IP访问百度,若能通,就说明USB WiFi联网正常。

  1. RTL8189 SDIO WiFi联网测试
    测试流程和RTL8188基本一致,先拔掉SD卡再插SDIO模块,加载对应驱动,打开网卡扫描热点。连接时需注意,要用wpa_supplicant -D nl80211 -c /etc/wpa_supplicant.conf -i wlan0 &,参数不能错。连接成功后,同样用udhcpc获取IP,再ping百度验证连通性,若ping通则说明SDIO WiFi联网正常。

这套方法适配开发板,核心是确保驱动匹配、依赖库完整,严格遵循配置格式和操作顺序,就能顺利实现WiFi联网。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 4,756评论 0 6
  • 1、expected an indented block 冒号后面是要写上一定的内容的(新手容易遗忘这一点); 缩...
    庵下桃花仙阅读 1,043评论 1 2
  • 一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具 【M】移动工具 【V...
    墨雅丫阅读 1,402评论 0 0
  • 跟随樊老师和伙伴们一起学习心理知识提升自已,已经有三个月有余了,这一段时间因为天气的原因休课,顺便整理一下之前学习...
    学习思考行动阅读 889评论 0 2
  • 一脸愤怒的她躺在了床上,好几次甩开了他抱过来的双手,到最后还坚决的翻了个身,只留给他一个冷漠的背影。 多次尝试抱她...
    海边的蓝兔子阅读 928评论 1 4

友情链接更多精彩内容