全部博文(60)
分类: 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一样,则编译成功。