Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88730
  • 博文数量: 60
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-05 15:39
文章存档

2016年(6)

2015年(36)

2014年(13)

2013年(5)

我的朋友

分类: LINUX

2015-12-23 16:53:19

平台介绍:编译主机端—ubuntu10.04

                 开发板内核—linux-3.0.y(hi3518E平台)

                 dnsmasq版本—2.72

编译过程:

       DNSmasq是一个小巧且方便的用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

dnsmasq-2.72下载地址:
基于ARM平台移植dnsmasq-2.72过程非常简单,只需要修改下makefile文件即可,如下:
添加CC = arm-hisiv100nptl-linux-gcc(添加交叉编译链),把PREFIX = /usr/local修改为安装的目录PREFIX = /opt/dnsmasq
修改完毕,执行make目录,编译完毕后运行make install安装,此时/opt/dnsmasq目录下会生成sbin、share两个目录,其中sbin目录下生成一个dnsmasq的执行文件(该文件就是交叉编译之后要移植到板子上运行的文件)

移植过程:
1、通过挂载NFS的方式或者tftp的下载方式把编译生成的dnsmasq执行文件拷贝到板子根目录下
2、dnsmasq 配置文件(/etc/dnsmasq.conf),必要的配置如下:
dnsmasq.conf文件内容如下:
#选定需要侦听的网口
# Only listen to routers' LAN NIC.  Doing so opens up tcp/udp port 53 to
# localhost and udp port 67 to world:
interface=  
//网络接口根据自己实际情况而定,如我的wifi网络接口是ar0或者wlan0,则interface=ra0或者interface=wlan0


# dnsmasq will open tcp/udp port 53 and udp port 67 to world to help with
# dynamic interfaces (assigning dynamic ips). Dnsmasq will discard world
# requests to them, but the paranoid might like to close them and let the 
# kernel handle them:
bind-interfaces

#设定可分配的ip地址段和租约时间
# Dynamic range of IPs to make available to LAN pc
dhcp-range=192.168.5.20,192.168.5.200,12h
//设置动态ip地址段范围,约定时间是12小时


#绑定某些机器的ip-mac地址对,使其具有固定的ip地址
# If you’d like to have dnsmasq assign static IPs, bind the LAN computer's
# NIC MAC address:
dhcp-host=aa:bb:cc:dd:ee:ff,192.168.5.20                       //为某个MAC地址分配静态IP
dhcp-host=00:0e:7b:ca:1c:6e,daunbook,192.168.5.12    //为某个MAC地址分配静态IP和网口接口名字
#如:ip地址为192.168.0.12设置主机名:dannbook

3、完成以上步骤之后,开始执行dnsmasq 文件
问题一:执行时会出现报错的情况:
错误提示缺少/var/lib/misc/dnsmasq.leases文件
解决方法:
                进入/var目录,手动创建dnsmasq.leases文件

问题二:再次执行又会提示:dnsmasq:unknown interface ra0
解决方法:
                先为ra0接口分配一个IP,IP地址为192.168.5.20,再次支持dnsmasq,没有报错表示运行正常

链接测试:
       通过PC端链接WIFI热点,链接成功之后,查看PC端wifi热点给它分配的无线地址,如果地址和网段都跟dnsmasq.conf一样,则编译成功。




阅读(3291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~