基于瑞芯微3399的嵌入式linux,瑞芯微x3399 linux QT平台WIFI移植详解
原标题:瑞芯微x3399 linux QT平台WIFI移植详解
第1章 内核配置
硬件平台:x3399开发板或ibox3399卡片电脑
操作系统:linux4.4.5+ QT5.6
WIFI型号:AP6356S(AP6335,AP6225方法可通用)
1.1使能内核配置项CFG80211
确定内核配置项CONFIG_CFG80211=y,如下:
-> Networking support (NET [=y])
-> Wireless (WIRELESS [=y])
-> cfg80211 - wireless configuration API
1.2添加内容到Kconfig
添加下面内容到kernel/drivers/net/wireless/rockchip_wlan/rkwifi/Kconfig
source"drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Kconfig"
1.3添加内容到Makefile
添加下列内容到kernel/drivers/net/wireless/rockchip_wlan/rkwifi/Makefile
obj-$(CONFIG_BCMDHD) += bcmdhd/
注意:如果Makefile文件这一项的配置项是“obj-$(CONFIG_AP6XXX) += bcmdhd/”,则将其改为上述内容。
1.4Wi-Fi驱动配置
添加上述2和3后,进入内核make menuconfig
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> WirelessLAN (WLAN [=y])
-> Rockchip Wireless LAN support
做出如下配置:
说明:配置项Firmware path和NVRAM path可以不用修改,参照默认配置即可。这里的文件fw_bcm4356a2_ag_apsta.bin、nvram_ap6356s.txt获取来源参见本文档“添加固件”
第2章 Buildroot配置
2.1配置wpa_supplicant
执行makex3399_defconfig默认配置后,进入makemenuconfig做出如下配置:
-> Target packages
-> Networking applications
2.2配置rfkill
-> Target packages
-> Hardware handling
[*] rfkill
2.3配置hostapd
-> Target packages
-> Networking applications
选择hostapd配置项
2.4在buildroot中添加S99wpa_supplicant
添加文件S99wpa_supplicant到buildroot/board/9tripod/x3399/rootfs-overlay/etc/init.d/目录
文件S99wpa_supplicant是wpa_supplicant服务开机启动的脚本,内容如下:
#!/bin/sh
#
# Start the wpa_supplicant....
#
case "$1" in
start)
echo"Starting wpa_supplicant..."
ifconfig wlan0 up
/usr/sbin/wpa_supplicant -Dnl80211 -i wlan0 -c/etc/wpa_supplicant.conf &
# /usr/sbin/wpa_supplicant -Dnl80211 -iwlan0-c/etc/wpa_supplicant.conf -B
;;
stop)
echo -n "Stopping wpa_supplicant..."
ifconfig wlan0 down
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
说明:wpa_supplicant可执行程序根据具体位置确定。其中启动wpa_supplicant服务指令:
-iwlan0 wlan0网络接口名称;/etc/
wpa_supplicant.conf是wpa_supplicant的配置文件;
可适当添加下列选项;
-d 增加调试信息,-Dwext:wext驱动名称
2.5在buildroot中添加wpa_supplicant.conf文件
添加文件wpa_supplicant.conf到buildroot/board/9tripod/x3399/rootfs-overlay/etc/目录
wpa_supplicant.conf是wpa_supplicant的配置文件,内容如下:
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
network={
ssid="JDCZ2.4"
psk="123456789"
}
其中ssid是接入点名称,psk是密码
2.6添加固件
文件:nvram_ap6356s.txt、fw_bcm4356a2_ag.bin、fw_bcm4356a2_ag_apsta.bin
将此3个文件添加进buildroot/board/9tripod/x3399/rootfs-overlay/system/etc/firmware/目录
第3章 Wi-Fi的配置与用法
3.1手动启动WIFI
Linux系统启动后使用ifconfig查看wlan0是否已经启动,如果没有启动键入命令ifconfig -a指令查看是否存在wlan0,如存在则启动wlan0:
ifconfig wlan0up
此时wifi并没有正常工作,需要启动wpa_supplicant服务:
wpa_supplicant-Dnl80211 -i wlan0 -c /etc/wpa_supplicant.conf -d&
选项-d会显示调试信息,如果不需要可以去掉此-d选项;/etc/wpa_supplicant.conf文件是配置文件,此文件的具体配置参见本文档“在buildroot中添加wpa_supplicant.conf文件”。
如果添加的接入点和密码正确,执行此指令稍等片刻,键入指令:
dhcpcd wlan0&
使路由器分配动态IP地址。稍等片刻键入ifconfig查看wlan0是否分配IP地址,如果没有IP地址,可再次键入此指令,然后多次键入ifconfig查看,直到获取IP地址为止。
3.2手动扫描接入点
如果不知道接入点具体名称,可使用指令wpa_cli扫描,扫描方法如下:
方法1:
[root@X3399:~]# wpa_cli
> scan
> scan_results
> quit
[root@X3399:~]#
键入wpa_cli指令,回车后键入scan指令扫描,再键入scan_results指令可查看扫描结果,如果没有扫描结果,请确定是否有WIFI天线(开发板集成的有天线,但是IBOX未集成)。
方法2:
wpa_cli -i wlan0-p /var/run/wpa_supplicant/scan
wpa_cli -i wlan0 -p/var/run/wpa_supplicant/scan_results
3.3自动启动服务
使WIFI相关服务自动启动,可在linux文件系统添加文件/etc/init.d/S99wpa_supplicant,其内容参见本文档“在buildroot中添加S99wpa_supplicant”,如果没有在buildroot源码buildroot/board/9tripod/x3399/rootfs-overlay/etc/init.d/目录下添加此文件,可手动在文件系统中添加,注意修改权限。
启动wpa_supplicant服务需要添加文件/etc/wpa_supplicant.conf,其内容参见本文档“在buildroot中添加wpa_supplicant.conf文件”。
文件wpa_supplicant.conf包含了接入点的名称和密码,但是启动服务后并没有获取到IP地址,此时可以在控制台键入命令动态获取IP:
dhcpcd wlan0&
也可以在脚本S99wpa_supplicant中加入此命令。
3.4手动添加接入点
如果wpa_supplicant.conf文件的接入点不正确,可手动修改,也可使用命令手动添加
键入指令wpa_cli:
①连接无加密的AP
[root@X3399:~]# wpa_cli
>add_network (It will display a networkid for you, assume it returns 0)
>set_network 0 ssid “JDCZ2.4”
>set_network 0 key_mgmt NONE
>enable_network 0
>quit
②连接WEP加密AP
>add_network (assume returns 1)
>set_network 1 ssid “JDCZ2.4”
>set_network 1 key_mgmt NONE
>set_network 1 wep_key0 “123456789”
>set_network 1 wep_tx_keyidx 0
>select_network 1 (optional, remember,if you are connecting with another
AP, you should select it to disable theanother)
>enable_network 1
③连接WPA-PSK/WPA2-PSK加密的AP
>add_network (assume returns 2)
>set_network 2 ssid “JDCZ2.4”
>set_network 2 psk “123456789”
>select_network 2 (optional, remember,if you are connecting with another
AP, you should select it to disable theanother)
>enable_network 2
注意:如果已经连接到一个ap接入点,需要换一个AP接入点,则需要键入指令select_network x和enable_network x。
详情参考链接:https://user.qzone.qq.com/3406930075?source=panelstar返回搜狐,查看更多
责任编辑:
基于瑞芯微3399的嵌入式linux,瑞芯微x3399 linux QT平台WIFI移植详解相关推荐
- 基于VScode的ESP32开发学习(二):官方例程softap,提供wifi,详解
完整代码放在文末 1.wifi事件处理函数 /*wifi事件处理函数*/ static void wifi_event_handler(void* arg, esp_event_base_t even ...
- Linux 高可用(HA)集群之Pacemaker详解
大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...
- linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解
linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...
- linux下grep文件内容搜索工具及基本正则表达式详解
linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...
- linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...
在linux中对文件的复制删除移动分别会使用到rm,mv,cp三个命令,下面我来给大家介绍一下rm,mv,cp命令对文件的常规操作吧, 先看实例 删除复制移动文件命令 Linux代码 rm -rf / ...
- linux中etc下的hosts(本地IP解析)文件详解
linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...
- linux中用zip压缩文件,详解Linux中zip压缩和unzip解压缩命令及使用详解
下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩myda ...
- ML之shap:分析基于shap库生成的力图、鸟瞰图、散点图等可视化图的坐标与内容详解之详细攻略
ML之shap:分析基于shap库生成的力图.鸟瞰图.散点图等可视化图的坐标与内容详解之详细攻略 目录 一.力图可视化 1.单个样本力图可视化
- 【Linux】shell脚本实战-if多分支条件语句详解
文章目录 前言 多分支语句的语法 多分支语句举例: 1. 出嫁的条件 2. 管理http服务实战脚本 3. 猜数字游戏v1版本-if版本 总结 前言 前面我们已经学习过单分支语句和双分支语句的使用. ...
最新文章
- PhotoGun中文版
- python读excel乱码_Python读写excel练习_去除excel中乱码行,并添加列
- Mosquitto配置----日志设置
- 《SAS编程与数据挖掘商业案例》学习笔记之十七
- linux常用命令(用户篇)
- 数据结构 二、向量(接口与实现and可扩容向量)
- C# 使用 HelpProvider 控件调用帮助文件
- c语言自动取款机贴吧,求助 简单atm机的循环操作
- [Python] L1-013. 计算阶乘和-PAT团体程序设计天梯赛GPLT
- 77GHz毫米波雷达快速chirp信号技术(一):测距原理
- 个人网页制作 大学生个人网页设计 个人网站模板 简单静态HTML个人网页作品 大学生毕设网页设计源码HTML
- 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流
- 【上位机教程】CANopen通信下一体化步进电机与台达PLC(AS228T)的应用
- linux开机自动进入安全模式,Linux的安全模式
- linux设置搜狗输入法,Ubuntu系统安装和使用搜狗输入法
- linux shell 中各种符号的含义
- Ubuntu下添加开机启动项的2种方法
- iOS 一个APP打开另一个APP
- 图神经网络(三):数学基础
- 由RGB到HSV的转换详解