logo资料库

WIFI模块调试.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
1.移植
2 wifi工具- wireless_tool
3 dhcpd
4. wpa_supplicant 编译
5. 正常使用wifi的流程;
HI3559AV100 移植 usb 无线网卡 1. 移植 (1).配置内核支持的环境 内核需要配置相关的模块进行对 wifi 支持,具体配置选项可以参考: https://www.cnblogs.com/LuoboGan/p/10411837.html (2) 下载驱动源码 本次调试使用的是 EW-7811Un 模块,驱动源码; 源码链接: http://www.edimax.us/html/english/frames/b-download.htm (3).编译驱动; 01. 解压 rtl8188C_8192C_usb_linux_v4.0.9_20171222.tar.gz 02. 修改 Makefile 增加 CONFIG_PLATFORM_HISI3559 = y,改 CONFIG_PLATFORM_I386_PC = n 增加: ifeq ($(CONFIG_PLATFORM_HISI3559), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN ARCH := arm64 CROSS_COMPILE:=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux- KVER := 4.9.37 #内核版本 KSRC ?= /home/deepglint/linux-4.9.37 #内核位置(该位置不要太过复杂,最好复制出来) Endif 03. 编译:make 04. 错误 1:implicit declaration of function ‘csum_ipv6_magic’ 解决: 找到错误处增加头文件: #include 05. 错误 2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] {"rx_info", proc_get_rx_info, proc_reset_rx_info}, 解决: 将 int proc_reset_rx_info(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) 修改为: static ssize_t proc_reset_rx_info(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data) 06. 再次执行 make,最后会在同级目录下生成 8192cu.ko 驱动文件. 07. 加载驱动;insmod 8192cu.ko 09. 启动无线网卡: ifconfig wlan0 up 再执行 iwlist scanning
此命令可以搜索到可用的无线网络接入点 2 wifi 工具- wireless_tool 01. 说明: 用于扫描,连接. 02. 下载源码: https://hewlettpackard.github.io/wireless-tools/Tools.html 或者 https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz 03. 编译: CC = aarch64-himix100-linux-gcc AR = aarch64-himix100-linux-ar RANLIB = aarch64-himix100-linux-ranlib a) Makefile ,修改: b) c) d) e) make; 将生成的命令复制过去就可以直接使用;iwlist f) 在执行 iwlist 时需要哭的支持: libiw.so.29,将其复制到开发板中. 使用: 执行 iwlist scanning 命令可以搜索到当前可用无线网络接入点. g) 连接: 连接需要 iwconfig 工具
无线接入点是需要密码的。假设密码是 123456。使用如下的命令设置密码。 iwconfig wlan0 key 123456 为了能接无线网,还要使用下面的命令设置 ESSID iwconfig wlan0 essid "rat-linux" 如: iwconfig wlan0 essid "null" key ch123456 如果出现这种错误; Error for wireless request "Set Encode" (8B2A) : 原因就是系统对 wpa 加密方式的支持不够,还需要其他额外配置,使用 wpa_passphrase 软 件 需要移植 wpa_supplicant 3 dhcpd 用于无线网卡连接后分配 IP 01. 下载源码: ftp://roy.marples.name/pub/dhcpcd(我下载的版本是:dhcpcd-6.9.4.tar.xz) 02. 配置:./configure 03. 编译:make CC=aarch64-himix100-linux-gcc 04. 生成:直接复制 dhcpd 即可使用(./dhcpd wlan0) 4. wpa_supplicant 编译 环境准备: 需要事先准备好: libnl,openssl 01. Libnl,为编译 wpa_supplicant 做准备 02. 下载源码: http://www.infradead.org/~tgr/libnl/(libnl-3.2.25.tar.gz ) 03. ./configure CC=aarch64-himix100-linux-gcc --host=aarch64-himix100-linux --enable-static --enable-shared LIBS=-lpthread --prefix=$(pwd)/__install 04. make clean 05. make 06. make install 07. iw 编译(需要单独编译 libnl,编译不再此处描述) 08. 下载:https://www.kernel.org/pub/software/network/iw/(注意下载 4.0 版本,其他版本 没有编译通过) 09. 配置 export PKG_CONFIG_PATH=/home/Hi3559A/work/wifi/libnl-3.2.25/__install/lib/pkgconfig:$PKG_CONFIG_PATH 10. 修改:NL3xFOUND := Y 11. make 便可生成 iw 12. openssl(https://blog.csdn.net/shunrenwang/article/details/80440647)编译 13. 下载 https://www.openssl.org/(openssl-1.0.2h) 14. ./config no-asm shared --prefix=$(pwd)/__install 15. make depend
16. 修改 Makefile: 将下面 CC= gcc AR= ar $(ARFLAGS) r NM= nm 修改为 CC= aarch64-himix100-linux-gcc AR= aarch64-himix100-linux-ar $(ARFLAGS) r NM= aarch64-himix100-linux-nm 17. 删除-m64 18. make clean 19. make 20. make install 21. 下载 wpa_supplicant 源码: http://w1.fi/wpa_supplicant/(wpa_supplicant-2.5.tar.gz ) 22. cd wpa_supplicant-2.5/wpa_supplicant/ 23. cp defconfig .config 24. 修改.config 将#CONFIG_LIBNL32=y 修改为 CONFIG_LIBNL32=y 25. 修改 Makefile 增加下面几行(地址需要根据实际编译的地址改变) #openssl CFLAGS += -I/home/Hi3559A/work/wifi/openssl-1.0.2h/__install/include/ LIBS += -L/home/Hi3559A/work/wifi/openssl-1.0.2h/__install/lib LIBS_p += -L/home/Hi3559A/work/wifi/openssl-1.0.2h/__install/lib #libnl CFLAGS += -I/home/Hi3559A/work/wifi/libnl-3.2.25/__install/include/libnl3/ CFLAGS += -I/home/Hi3559A/work/wifi/libnl-3.2.25/__instal /include/ LIBS += -L/home/Hi3559A/work/wifi/libnl-3.2.25/__install/lib/ 26. make clean 27. make CC=aarch64-himix100-linux-gcc(有些打印 No package 'libnl-3.0' found,可以忽略) 28. wpa_supplicant 使用配置: 设置配置文件:vi /etc/wpa_supplicant.conf 内容(ctrl_interface 为文件夹,update_config 表示 wpa_cli 可以更新该配置文件): update_config=1 ctrl_interface=/etc/wpa_supplicant network={ ssid="DG" proto=WPA RSN key_mgmt=WPA-PSK WPA-EAP pairwise=CCMP group=CCMP psk="On1shiuva4"
} 运行: wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d & 注意在运行之前需要动态库的支持: libnl-3.so.200; libnl-genl-3.so.200; libssl.so.1.0.0; libcrypto.so.1.0.0 也可参考: https://www.jianshu.com/p/e8e7949cf4d3 5. 正常使用 wifi 的流程; 1. 开启 wifi 网卡 ifconfig wlan0 up 2. 动态分配一个 ip 或者手动分配 ifconfig wlan0 192.168.0.232 动态获取: dhcpcd wlan0 3. 输入 wifi 密码 #写入配置 wpa_passphrase "null" "ch123456" 准) #连接 wifi wpa_supplicant -B -i wlan0 -Dwext -c /etc/wpa_supplicant.conf > /etc/wpa_supplicant.conf (conf 文 件以 实 际 为 4. 配置 dns 服务器 修改文件: /etc/ resolv.conf;dns 服务器的地址以实际为准,本次测试使用谷歌公网地 址. nameserver 114.114.114.114 nameserver 114.114.114.114
分享到:
收藏