2.1.1.15使用WIFI网卡4_工具dhcp及全自动使用wifi

目录

dhcp : 使得WIFI网卡动态获取IP

·1、源码获取

2、开发环境配置

3、使用

4、 一连接上WIFI AP, 就自动执行dhclient

(1)创建一脚本:    

2)修改脚本的可执行权限

(3)执行以下命令

5、热拔插功能

(1)修改mdev.conf配置文件

(2)编写脚本文件

(3)修改脚本属性


 

dhcp : 使得WIFI网卡动态获取IP

 

·1、源码获取

输入dh看有哪些应用程序,输入dhclient -v查看一下相关信息,源码获取的网址

2、开发环境配置

解压
tar xzf dhcp-4.2.5-P1.tar.gz
cd dhcp-4.2.5-P1

配置

./configure --host=arm-linux ac_cv_file__dev_random=yes


cd bind
修改Makefile:

//CC一般来说是gcc 或arm-linux-gcc,BUILD表示用此电脑(x86)编译,因而工具链是gcc

./configure BUILD_CC=gccac_cv_file__dev_random=yes --host=arm-linux --disable-kqueue


tar xzf bind.tar.gz
cd bind-9.8.4-P2

file 命令是查看指定文件的信息,从上面可知gen文件是ARM 架构的,无法在PC上执行

修改 lib/export/dns/Makefile.in 

因为Makefile来源于Makefile.in

gen: ${srcdir}/gen.c
        ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
改为
gen: ${srcdir}/gen.c
        ${BUILD_CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}

编译  

安装

make DESTDIR=$PWD/tmp install
把文件复制到NFS

sudo cp bin/* /work/nfs_root/fs_mini_mdev_new/bin/
sudo cp sbin/* /work/nfs_root/fs_mini_mdev_new/sbin/
sudo cp etc/dhclient.conf.example //work/nfs_root/fs_mini_mdev_new/etc/dhclient.conf
sudo cp etc/dhcpd.conf.example //work/nfs_root/fs_mini_mdev_new/etc/dhcpd.conf


sudo cp client/scripts/linux /work/nfs_root/fs_mini_mdev_new/etc/dhclient-script

增加可执行权限

chmod +x /work/nfs_root/fs_mini_mdev_new/etc/dhclient-script


并修改

#!/bin/bash


改为

#!/bin/sh

在嵌入式里面,我们用的shell是bin/sh

3、使用

启动开发板,接上无线网卡

mkdir -p /var/db

//-B是指应用程序wpa_supplicant运行于后台,-c是指定配置文件, -i是指定网卡接口名

wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0

//让网卡eth0 自动获取ip地址和dns

dhclient wlan0
 

dhclient -h
显示帮助
man  dhclient  (搜索debug,查看debug信息)
显示帮助手册
dhclient  是自动配置网卡ip和dns使用的命令,
dhclient -d wlan0  -d用于显示一些信息
ifconfig -a  可以看到计算机上的网卡
route命令 本地 IP 路由表中显示和修改条目网络命令

cat  etc/resolv.conf//里面存储的是域名服务器(可在ping的时候可根据ping的网址找到相应的IP地址)

 

一接入WIFI网卡,就自动执行wpa_supplicant等
参考第2期视频第28课热拔插
cat /etc/mdev.conf 
wlan0 0:0 777 * /sbin/auto_wifi.sh

cat /sbin/auto_wifi.sh
#!/bin/sh
if [ $ACTION = "add" ];
then                                              
   wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0
   wpa_cli -a/sbin/wpa_action.sh -B
else                     
   killall wpa_supplicant
   killall wpa_cli 
   killall dhclient
fi

chmod +x /sbin/auto_wifi.sh 

 

4、 一连接上WIFI AP, 就自动执行dhclient

 

 

(1)创建一脚本:    

cat /sbin/wpa_action.sh 
#!/bin/sh
IFNAME=$1
CMD=$2
if [ "$CMD" = "CONNECTED" ]; then
   echo connect $IFNAME, dhclient for it > /dev/console
   dhclient $IFNAME
fi
if [ "$CMD" = "DISCONNECTED" ]; then
   echo disconnect $IFNAME, kill dhclient for it > /dev/console
   killall dhclient
fi

解析

cat /sbin/wpa_action.sh 
#!/bin/sh
IFNAME=$1 表示哪一个网卡
CMD=$2  CONNECTED或者DISCONNECTED,表示动作
if [ "$CMD" = "CONNECTED" ]; then 

//把打印信息connect $IFNAME, dhclient for it显示到控制台

   echo connect $IFNAME, dhclient for it > /dev/console

 假若网卡是wlan0 ,执行dhclient  wlan0

   dhclient $IFNAME
fi
 

//脚本语言,对应if----fi,表示if 的结束语句

if [ "$CMD" = "DISCONNECTED" ]; then
   echo disconnect $IFNAME, kill dhclient for it > /dev/console

杀掉名字为dhclient的进程

   killall dhclient
fi
例:

wpa_cli  -iwlan0  disconnect表示断开链接

2)修改脚本的可执行权限

chmod +x /sbin/wpa_action.sh

(3)执行以下命令

-a代表action,运行程序wpa_cli会一直运行于后台(-B是运行于后台的意思),当wpa_supplicant发现wifi网卡连接上AP后,就会给wpa_cli发一个事件(通过socket通信),wpa_cli就会执行脚本/sbin/wpa_action.sh

wpa_cli -a/sbin/wpa_action.sh -B

用PS命令查看进程

5、热拔插功能

 一接入WIFI网卡,就自动执行wpa_supplicant等(查看wap_supplicant文件的ERADME文件了解使用功能)

参考第2期视频第28课热拔插

(1)修改mdev.conf配置文件

cat /etc/mdev.conf 

wlan0 0:0 777 * /sbin/auto_wifi.sh

(2)编写脚本文件

cat /sbin/auto_wifi.sh (自动连接wifi的脚本文件)
#!/bin/sh
if [ $ACTION = "add" ]; 如果添加网卡的话
then       

 //-B是指应用程序wpa_supplicant运行于后台,-c是指定配置文件 -i是指定网卡接口名          wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0

-a代表action,运行程序wpa_cli会一直运行于后台(-B是运行于后台的意思),当wpa_supplicant发现wifi网卡连接上AP后,就会给wpa_cli发一个事件(通过socket通信),wpa_cli就会执行脚本/sbin/wpa_action.sh

   wpa_cli -a/sbin/wpa_action.sh -B
else                     
   killall wpa_supplicant
   killall wpa_cli 
   killall dhclient
fi

(3)修改脚本属性

chmod +x /sbin/auto_wifi.sh 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本季课程在开发板上移植USB WIFI模块(套装附带的MT7601模块),工作在ap模式下,并且用电脑通过WIFI去连接开发板实现主机和开发板的无线网络局域网通信,这样就可以用WIFI网络取代板载ethernet有线网络方式来进行调试和局域网视频预览。现在很多的视频摄像头产品都要求支持无线网络连接功能,本季课程主要是针对这方面开发技术讲解的。随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值