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的更多相关文章

  1. 使用wifi网卡笔记2----概念及工具iw(STA模式)

    1.认证和加密的概念 (1)概念 (2)阶段划分 初级版本:认证不需要密码, 传输不需要加密 认证不需要密码, 传输需要加密(用WEP算法) 认证需要密码(用WEP算法), 传输需要加密(用WEP算法 ...

  2. 使用wifi网卡笔记5---AP模式

    使用WIFI网卡的AP功能 1.下载源码 hostapd: http://w1.fi/hostapd/ 2.编译.安装(hostapd依赖于libnl库,需要编译.安装此库) tar xzf host ...

  3. 使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置

    1.wifi的STA模式和AP模式 Ap(Access Point)模式指的是可以将网卡设置为路由器用来共享流量或有线网络给别人使用, sta模式指的是当做网卡连接路由器上网 (1):AP也就是无线接 ...

  4. 使用wifi网卡笔记3---工具wpa_supplicant(STA模式)

    1.  wpa_supplicant介绍 supplicant是恳求者的意思,是wpa的发起者,是发送认证请求的设备(手机),手机--AP--认证服务器,可用于上述4种"认证/加密" ...

  5. 在单板上使用WIFI网卡的固件问题

    (在单板上使用WIFI网卡的固件问题)(我的wifi网卡是RT3070) (一般买的网卡说是支持LINUX免驱的话,那么在/lib/firmware/ 下一定有相应的固件) 我将USB网卡接入UBUN ...

  6. 使用WIFI网卡 dhcp动态获取IP

    前面几篇博客中,wifi网卡的ip都是手工设置的,本篇博客将来移植dhcp,使得wifi网卡可以动态的获取ip.路由等信息. 那我们去哪里下载dhcp源码呢?在pc机上执行dh +tab键,看一下有哪 ...

  7. S5PV210 移植无线wifi网卡 MT7601

    一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...

  8. 3.1 wifi网卡RT3070在S3C2440的移植和使用

    学习目标:熟悉RT3070在S3C2440的移植和使用,以及其中的相关工具的安装和使用: 一.配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看w ...

  9. 34、JZ2440上WIFI网卡使用

    :http://wireless.kernel.org在这个网站上的document中有下面说有内容的介绍 1. 准备工作(虚拟机,开发板)及配置内核选择WIFI驱动1.1 选型:确定网卡的VID,P ...

随机推荐

  1. 为什么叫金拱门- golden arch

    不要再纠结为什么叫这么难理解的名字了.因为从golden arch直译过来的撒.金色的拱门.就叫金拱门咯. 关于M的商标的历史来源如下: "McDonald's logo" red ...

  2. [Scala]Scala学习笔记六 文件

    1. 读取行 读取文件,可以使用scala.io.Source对象的fromFile方法.如果读取所有行可以使用getLines方法: val source = Source.fromFile(&qu ...

  3. Java API访问ZK的权限控制

    无权限访问结点 /** * 对于ZK的授权访问 * Created by liuhuichao on 2017/7/27. */ public class AutoSample { private s ...

  4. CSDN博客积分规则

    1.博客积分规则 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准.博客等级也将由博客积分唯一决定.积分规则具体如下: 每发布一篇原创或者翻译文章:可获得10分: 每发布一篇转载文 ...

  5. C#中正则表达式编程(未完,待补充)

    对于只存储一个匹配,可用Match类: 一般模式: Regex reg = new Regex(string pattern); string str = "###############& ...

  6. 【排序】冒泡排序,C++实现

    原创文章,转载请注明出处! 博客文章索引地址 博客文章中代码的github地址 # 基本思想(从小到大排序)       对于给定的n个元素,从第一个元素开始,依次对相邻的两个元素进行比较,当前面的记 ...

  7. hiho1601最大分数 DP

    #1601 : 最大得分 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在玩一个游戏.给定一个数组A=[A1, A2, ... AN],小Hi可以指定M个 ...

  8. hiho1514 偶像的条件 lower_bound

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校正面临着废校的大危机.面对学校的危机,小Hi同学们决定从ABC三个班中各挑出一名同学成为偶像. 成为偶像团体的 ...

  9. CDQ分治--用时间降维的美丽算法

    CDQ分治–用时间降维的美丽算法 CDQ分治,网上的阐述很多,太专业性的文字我就不赘述,这里指谈谈自己的感受 还是%一下CDQ大神的论文 CDQ分治的主要想法就是降维(比如三维问题降维到二维问题),并 ...

  10. CentOS 6.6下安装OpenOffice4.0

    最近由于项目需要,要在公司服务器上安装Openoffice,网上搜了一些资料后成功安装,现分享给大家. 1.首先先下载好需要的rpm包:Apache_OpenOffice_4.0.0_Linux_x8 ...