原标题:瑞芯微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移植详解相关推荐

  1. 基于VScode的ESP32开发学习(二):官方例程softap,提供wifi,详解

    完整代码放在文末 1.wifi事件处理函数 /*wifi事件处理函数*/ static void wifi_event_handler(void* arg, esp_event_base_t even ...

  2. Linux 高可用(HA)集群之Pacemaker详解

    大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...

  3. linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解

    linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...

  4. linux下grep文件内容搜索工具及基本正则表达式详解

    linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...

  5. linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...

    在linux中对文件的复制删除移动分别会使用到rm,mv,cp三个命令,下面我来给大家介绍一下rm,mv,cp命令对文件的常规操作吧, 先看实例 删除复制移动文件命令 Linux代码 rm -rf / ...

  6. linux中etc下的hosts(本地IP解析)文件详解

    linux中etc下的hosts(本地IP解析)文件详解 1./etc/hosts(本地解析) 很多人一提到更改hostname首先就想到修改/etc/hosts文件, 认为hostname的配置文件 ...

  7. linux中用zip压缩文件,详解Linux中zip压缩和unzip解压缩命令及使用详解

    下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩myda ...

  8. ML之shap:分析基于shap库生成的力图、鸟瞰图、散点图等可视化图的坐标与内容详解之详细攻略

    ML之shap:分析基于shap库生成的力图.鸟瞰图.散点图等可视化图的坐标与内容详解之详细攻略 目录 一.力图可视化 1.单个样本力图可视化

  9. 【Linux】shell脚本实战-if多分支条件语句详解

    文章目录 前言 多分支语句的语法 多分支语句举例: 1. 出嫁的条件 2. 管理http服务实战脚本 3. 猜数字游戏v1版本-if版本 总结 前言 前面我们已经学习过单分支语句和双分支语句的使用. ...

最新文章

  1. PhotoGun中文版
  2. python读excel乱码_Python读写excel练习_去除excel中乱码行,并添加列
  3. Mosquitto配置----日志设置
  4. 《SAS编程与数据挖掘商业案例》学习笔记之十七
  5. linux常用命令(用户篇)
  6. 数据结构 二、向量(接口与实现and可扩容向量)
  7. C# 使用 HelpProvider 控件调用帮助文件
  8. c语言自动取款机贴吧,求助 简单atm机的循环操作
  9. [Python] L1-013. 计算阶乘和-PAT团体程序设计天梯赛GPLT
  10. 77GHz毫米波雷达快速chirp信号技术(一):测距原理
  11. 个人网页制作 大学生个人网页设计 个人网站模板 简单静态HTML个人网页作品 大学生毕设网页设计源码HTML
  12. 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流
  13. 【上位机教程】CANopen通信下一体化步进电机与台达PLC(AS228T)的应用
  14. linux开机自动进入安全模式,Linux的安全模式
  15. linux设置搜狗输入法,Ubuntu系统安装和使用搜狗输入法
  16. linux shell 中各种符号的含义
  17. Ubuntu下添加开机启动项的2种方法
  18. iOS 一个APP打开另一个APP
  19. 图神经网络(三):数学基础
  20. 由RGB到HSV的转换详解

热门文章

  1. 内核相关硬货必看-$kernel/arch/arm/boot/dts
  2. MySQL CREATE EVENT创建任务计划定时执行任务
  3. 仿百度弹出框在框架页面中的应用
  4. 作业7-2 求矩阵各行元素之和
  5. centos7修改网卡名
  6. 提灯人Project#1|参赛作品展示(六)
  7. 大学生应该脱口而出的 ,背完,你的英语口语绝对不成问题了
  8. 安全性和保密性设计---数字签名与数字水印
  9. 程序员夫妻给孩子取名
  10. Spotify Music Converter for Mac如何注册?