嵌入式Linux之wifi配网脚本分析

嵌入式Linux系统,一般都支持wifi联网,可以通过sh脚本或其它语言代码编程来实现wifi联网。

本篇来介绍一种通过sh脚本来配置wifi的脚本执行原理。

1 sh脚本wifi联网介绍

这里以飞凌开发板中的wifi启动脚本为例来介绍。

在这里插入图片描述

在飞凌开发板的串口中,执行如下命令(调用fltest_wifi.sh脚本,并指定一些参数),进行wifi连接:

fltest_wifi.sh -i mlan0 -s "wifi_name" -p wifi_password
  • wifi_name是自己的wifi名称
  • wifi_password是对于的wifi密码

然后ifconfig指令可以查看板子IP信息:

[root@ok3568:/usr/sbin]# ifconfig
lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:239 errors:0 dropped:0 overruns:0 frame:0TX packets:239 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:346556 (338.4 KiB)  TX bytes:346556 (338.4 KiB)mlan0     Link encap:Ethernet  HWaddr E8:FB:1C:66:AF:DFinet addr:192.168.5.111  Bcast:192.168.5.255  Mask:255.255.255.0inet6 addr: fe80::eafb:1cff:fe66:afdf/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:1799 errors:0 dropped:0 overruns:0 frame:0TX packets:981 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:109635 (107.0 KiB)  TX bytes:331552 (323.7 KiB)[root@ok3568:/usr/sbin]#

可以看到,mlan0这个网络接口的IP为192.168.5.111

2 fltest_wifi.sh脚本文件分析

下面来具体分析fltest_wifi.sh脚本的内容。

2.1 开头部分分析

先来看开头的这段脚本:

cnt1=`ps aux | grep hostapd | grep -v grep  | wc -l`
if [ "$cnt1" != "0" ];thenkillall hostapd > /dev/null
fi/etc/init.d/S80dnsmasq stop > /dev/null

分析:

首先是执行一条指令,确认正在运行的hostapd进程的个数,保存在cnt1变量中

  • ps aux:查看系统中当前正在运行的所有进程的详细信息
  • | grep hostapd | grep -v grep:匹配包含hostapd 并且不包含grep字样的行
  • | wc -l:统计行数(word count,字数统计)

注:“ps aux” 其实是一种组合使用的命令形式

  • “ps” 是 “process status”(进程状态)的缩写
  • “a” 表示显示所有用户(包括其他用户和终端用户)的进程,不仅仅是当前用户启动的进程
  • “u” 表示以用户为导向的详细格式(user-oriented detailed format)来显示进程信息,会给出诸如启动进程的用户、进程占用的 CPU 和内存资源百分比、进程状态等更为详细的信息
  • “x” 表示显示没有控制终端的进程,也就是那些在后台运行的、不是通过常规终端启动的进程

hostapd 是Linux中一款用于创建无线接入点(Wireless Access Point,WAP)的软件

hostapd的功能是用来创建AP,因为是要连接wifi,而不是创建热点,所以如果有hostapd进程,则停掉。

如果cnt1不为0,则杀掉所有的hostapd进程

  • killall:用于通过进程名来终止一个或多个正在运行的进程
  • > :Linux中常用的一种重定向操作,用于将命令的输出重定向到指定的位置
  • /dev/null:一个特殊的设备文件,可以接收任何写入的数据,但会直接丢弃这些数据

然后,执行/etc/init.d/S80dnsmasq stop

2.1.1 S80dnsmasq脚本分析

S80dnsmasq 也是一个脚本,内容为:

#!/bin/sh[ -f /etc/dnsmasq.conf ] || exit 0case "$1" instart)printf "Starting dnsmasq: "start-stop-daemon -S -x /usr/sbin/dnsmasq[ $? = 0 ] && echo "OK" || echo "FAIL";;stop)printf "Stopping dnsmasq: "start-stop-daemon -K -q -x /usr/sbin/dnsmasq[ $? = 0 ] && echo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过 JWT 来解决登录认证问题

1. 问题引入 在登录功能的实现中 传统思路: 登录页面时把用户名和密码提交给服务器服务器验证用户名和密码,并把检验结果返回给后端如果密码正确,则在服务器端创建 session,通过 cookie 把 session id 返回给浏览器 但是正常情…

【Linux】文件操作的艺术——从基础到精通

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言:一切皆文件 📚一、C语言的文件接口 📖1.文件打…

Redis数据库详解

文章目录 Redis数据库1 Redis概述1.1 Redis介绍1.2 Redis特点1.3 应用场景1.4 Redis版本1.5 Redis附加功能1.6 Redis安装1.6.1 Rocky Linux操作系统1.6.2 Windows操作系统1.6.3 Mac操作系统 2 配置文件详解3 数据类型3.1 字符串String3.1.1 字符串3.1.2 数值 3.2 列表List3.3 H…

FFmpeg 4.3 音视频-多路H265监控录放C++开发十八,ffmpeg解封装

为啥要封装和解封装呢? 1.封装就相当于将 h264 和aac 包裹在一起。既能播放声音,也能播放视频 2.在封装的时候没指定编码格式,帧率,时长,等参数;特别是视频,可以将视频帧索引存储,…

JAVA |日常开发中常见问题归纳讲解

JAVA |日常开发中常见问题归纳讲解 前言一、语法错误相关问题1.1 分号缺失或多余1.2 括号不匹配1.3 变量未定义或重复定义 二、数据类型相关问题2.1 数据类型不匹配2.2 整数溢出和浮点数精度问题 三、面向对象编程相关问题3.1 空指针异常(NullPointerExc…

Git常用命令参考手册

Git常用命令参考手册 整理了一篇git常用的命令参考手册,命令顺序按照一个项目从头到尾的常用命令顺序做了排序,后续会继续完善内容示例并补全其他命令使用说明,希望对不熟悉的小伙伴有所帮助。 git config # 配置列表 git config --list #…

翰高4.5.7安装测试手册centos

翰高4.5.7centos版本安装 1 环境准备 产品包:hgdb4.5.7-see-centos7-x86-64-20210804.rpm 环境:10.1.5.172 root/sh88861158 操作系统安装完成后,执行常规操作:修改hosts、关闭防火墙、关闭senliunx 2 安装步骤 2.1 安装前准…

港科夜闻 |香港科大推出 InvestLM生成式人工智能平台,支持金融中小企应用AI技术潜力...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大推出 InvestLM生成式人工智能平台,支持金融中小企应用AI技术潜力。香港科大商学院继去年研究团队成功开发本港首个专为金融界而设、应用于生成式人工智能(生成式AI)的开源大语言模型InvestLM后&#…

【计算机网络】实验6:IPV4地址的构造超网及IP数据报

实验 6:IPV4地址的构造超网及IP数据报 一、 实验目的 加深对IPV4地址的构造超网(无分类编制)的了解。 加深对IP数据包的发送和转发流程的了解。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、了解IPV4地址的构造超网…

全面解析 C++ STL 中的 set 和 map

C 标准模板库(STL)中的关联式容器以其强大的功能和高效性成为开发者解决复杂数据组织问题的重要工具。其中,set 和 map 是最常用的两类关联容器。本篇博客将从基本特性、底层实现、用法详解、高级案例以及性能优化等多个角度,详细…

FreeRtos开发之计数信号量

前面介绍过了计数信号量的定义取值只有0与1两种状态的信号量称之为二值信号量 取值大于1的信号量称之为计数信号量 计数信号量的取值也可以为1,但通常大于1,如果取值为1,相当于只有0与1两种状态,用二值信号量即可。 计数信号量应用…

Profinet转EtherNet/IP网关是如何解决西门子S7-1500PLC与AB PLC的通讯问题的

一、 案例背景 在一个工业现场,一端是AB的PLC,IP地址192.168.1.20;另一端西门子是S7-1500系列,IP地址192.168.2.248。AB的PLC内有 B3、N7、F8 三个寄存器文件涉及到通讯,分别对应西门子PLC的M、DB1、DB2三个存储区域。通过捷米特…

【C语言】扫雷游戏(一)

我们先设计一个简单的9*9棋盘并有10个雷的扫雷游戏。 1,可以用数组存放,如果有雷就用1表示,没雷就用0表示。 2,排查(2,5)这个坐标时,我们访问周围的⼀圈8个位置黄色统计周围雷的个数是1。排查(8,6)这个坐标时&#xf…

360笔试题之LINUX和UNIX篇

写出完成以下任务的命令: 1.查看当前所在目录。如若当前在,/home/usr1目录下,查看此目录大小。列出此目录下的所有文件(包括隐藏文件)。 参考答案: 您可以使用以下命令查看当前所在目录和目录大小&#x…

Unity开发FPS游戏之完结篇

这个系列的前几篇文章介绍了如何从头开始用Unity开发一个FPS游戏,感兴趣的朋友可以回顾一下。这个系列的文章如下: Unity开发一个FPS游戏_unity 模仿开发fps 游戏-CSDN博客 Unity开发一个FPS游戏之二_unity 模仿开发fps 游戏-CSDN博客 Unity开发一个F…

浅析RPC—基础知识

该文章会简单介绍一下 RPC 相关的基础概念。 什么是RPC? RPC(Remote Procedure Call) 即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。 为什么要 RPC ? 因为,两个不同的服务器…

mysql数据库varchar截断问题

用了这么多年mysql数据库,才发现varchar是可以截断的,而且是在我们线上数据库。个人觉得dba的这个设置是非常有问题的,用户往数据库里存东西,就是为了以后用的,截断了存放,数据不完整,就用不了了…

数据处理与统计分析——07-Pandas的concat连接、merge()合并、多表查询、内/外/自连接查询操作

pandas数据拼接 (1) DataFrame数据组合-concat连接 概述 连接是指把某行或某列追加到数据中, 数据被分成了多份可以使用连接把数据拼接起来把计算的结果追加到现有数据集,也可以使用连接 df对象与df对象拼接 行拼接参考: 列名, 列拼接参考: 行号 # todo 记忆: con…

EwoMail邮箱服务器软件安装教程

EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案,帮助你提升运维效率,降低 IT 成本,兼容主流的邮件客户端,同时支持电脑和手机邮件客户端。 一、系统版本 二、关闭selinux vi /etc/sysconf…

【机器学习】机器学习的基本分类-监督学习-支持向量机(Support Vector Machine, SVM)

支持向量机是一种强大的监督学习算法,主要用于分类问题,但也可以用于回归和异常检测。SVM 的核心思想是通过最大化分类边界的方式找到数据的最佳分离超平面。 1. 核心思想 目标 给定训练数据 ,其中 是特征向量, 是标签&#xf…