使用wifi网卡笔记4---工具dhcp及全自动使用wifi
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=gcc ac_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地址)
4、 一连接上WIFI AP, 就自动执行dhclient
(1)创建一脚本:
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
转自:http://blog.csdn.net/qingkongyeyue/article/details/52287855
使用wifi网卡笔记4---工具dhcp及全自动使用wifi的更多相关文章
- 使用wifi网卡笔记2----概念及工具iw(STA模式)
1.认证和加密的概念 (1)概念 (2)阶段划分 初级版本:认证不需要密码, 传输不需要加密 认证不需要密码, 传输需要加密(用WEP算法) 认证需要密码(用WEP算法), 传输需要加密(用WEP算法 ...
- 使用wifi网卡笔记5---AP模式
使用WIFI网卡的AP功能 1.下载源码 hostapd: http://w1.fi/hostapd/ 2.编译.安装(hostapd依赖于libnl库,需要编译.安装此库) tar xzf host ...
- 使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置
1.wifi的STA模式和AP模式 Ap(Access Point)模式指的是可以将网卡设置为路由器用来共享流量或有线网络给别人使用, sta模式指的是当做网卡连接路由器上网 (1):AP也就是无线接 ...
- 使用wifi网卡笔记3---工具wpa_supplicant(STA模式)
1. wpa_supplicant介绍 supplicant是恳求者的意思,是wpa的发起者,是发送认证请求的设备(手机),手机--AP--认证服务器,可用于上述4种"认证/加密" ...
- 在单板上使用WIFI网卡的固件问题
(在单板上使用WIFI网卡的固件问题)(我的wifi网卡是RT3070) (一般买的网卡说是支持LINUX免驱的话,那么在/lib/firmware/ 下一定有相应的固件) 我将USB网卡接入UBUN ...
- 使用WIFI网卡 dhcp动态获取IP
前面几篇博客中,wifi网卡的ip都是手工设置的,本篇博客将来移植dhcp,使得wifi网卡可以动态的获取ip.路由等信息. 那我们去哪里下载dhcp源码呢?在pc机上执行dh +tab键,看一下有哪 ...
- S5PV210 移植无线wifi网卡 MT7601
一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...
- 3.1 wifi网卡RT3070在S3C2440的移植和使用
学习目标:熟悉RT3070在S3C2440的移植和使用,以及其中的相关工具的安装和使用: 一.配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看w ...
- 34、JZ2440上WIFI网卡使用
:http://wireless.kernel.org在这个网站上的document中有下面说有内容的介绍 1. 准备工作(虚拟机,开发板)及配置内核选择WIFI驱动1.1 选型:确定网卡的VID,P ...
随机推荐
- window环境下创建Flask项目需要安装常见模块命令
安装Flask环境 pip install flask==0.10.1 使用命令行操作 pip install flask-script 创建表单 pip install flask-wtf 操作数据 ...
- ROW_NUMBER() OVER(PARTITION BY)
select * from (select *,ROW_NUMBER() OVER(PARTITION BY GoodsID ORDER BY IsMain desc,OrderNum) as Mai ...
- 源码编译tmux
(1)clone 源代码仓库: $ git clone https://github.com/tmux/tmux.git (2) 编译之前先安装libevent,去官网下载tar包: http://l ...
- Linux:wc命令详解
wc 用来计算数字 利用wc指令我们可以计算文件的Byte数.字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据. 语法 wc(选项)(参数) 选项 -c或 ...
- flowable DmnEngine和DmnEngineConfiguration
一.DmnEngineConfiguration创建实例 DmnEngineConfiguration 提供了7个公共的静态方法,用于创建自身实例. 其中5个是使用spring的机制加载配置文件. 另 ...
- flowable ContentEngine和ContentEngineConfiguration的关系
一.CommandExecutor ContentEngineConfiguration继承自 AbstractEngineConfiguration. 在 AbstractEngineConfigu ...
- 利用pandas随机切分csv文件
把数据集随机切分为训练集和测试集 method 1: df = pd.read_csv('data/tgnb_merge.csv', encoding='utf-8') df.drop_duplica ...
- HDU - 6513 Reverse It (SYSU校赛C题)(组合数学+容斥)
题目链接 题意:给定一个n*m的矩阵,可以选择至多两个子矩阵将其反转,求能形成多少种不同的矩阵. 任选一个矩阵有$C_{n+1}^{2}C_{m+1}^{2}$种方法,任选两个不同的矩阵有$C_{C_ ...
- 考研系列 HDU2241之早起看书 三分
考研并不是说说就可以了,要付诸于行动. 对于Lele来说,最痛苦的事莫过于早起看书了,不过为了考研,也就豁出去了.由于早起看书会对看书效率产生影响,所以对于要什么时候起床看书,还是有必要考虑的. 经过 ...
- js判断当前浏览类型
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串var isOpera = userAgent.indexOf("Opera ...