客户在使用启扬板卡的过程中提出要求开发板支持网口热插拔自动获取ip地址的需求。
启扬工程师了解到需求后快速确定了解决思路:
通过ifplugd工具监听网口热插拔信息,并且执行指定脚本,脚本中使用udhcpc工具自动获取ip地址。
接下来将对操作过程进行介绍与分析。
编译环境准备✦
qiyang
主机:ubuntu16.04
编译器:arm-linux-gnueabihf-gcc,版本4.7
开发板环境:arm32
1
移植libdaemon
因为ifplugd依赖libdaemon库,所以我们需要先编译daemon。
笔者这里选择daemon的版本是官方git下来的版本,git链接如下:
git clone git://git.0pointer.de/libdaemon
git下来之后先执行./bootstrap.sh脚本,此脚本会根据配置环境自动生成configure等编译相关文件,生成之后配置
./configure--host=arm-linux-gnueabihf--prefix=/home/ylook/tools/libdaemon/build,
脚本执行完成之后会检查配置等,这里会出现一个报错:
checking whether setpgrp takes no argument... configure: error: cannot check setpgrp when cross compiling
遇到这个报错可以在之前配置的configure中加入ac_cv_func_setpgrp_void=yes,即可解决。
最后通过make && make install会将所需的lib以及include文件生成到build文件夹下。
注意:最后用file命令检查一下文件架构,防止误用x86的库。
2
移植ifplugd
本次使用的编译器是4.7版本,因为版本较低,所以ifplugd选择的也是老版本——ifplugd-0.14.tar.gz。
编译过程需要daemon的库和头文件,笔者为了方便直接将库和头文件放到编译器的头文件与库中,准备完毕后直接解压文件,
随后配置./configure --host=arm-linux-gnueabihf --prefix=/home/ylook/tools/ifplugd-0.14/build
这里会报lynx的错误,可直接在原先配置的configuer后添加“--disable-lynx”,就可解决,
即修改为./configure--host=arm-linux-gnueabihf--prefix=/home/ylook/tools/ifplugd-0.14/build/ --disable-lynx,;
此外还会报“ undefined reference to rpl_malloc”错误,解决方式是修改config.h.in,去掉其中的malloc。
配置完成后make && make install,同样会在build目录下生成我们需要的二进制文件。
注意:为了避免错误,最后依旧是用file命令检查文件架构,确认采用的是否为arm架构。
3
配置相关环境
配置环境过程中,启扬开发板需要daemon的库文件以及编译出来的ifplugd二进制文件。我们将daemon库文件拷贝到/usr/lib下,二进制文件拷贝到/usr/sbin下,输入ifplugd -h命令可以看到成功运行。
根据help信息,我们可以用以下两个命令监听两个网口:
ifplugd -i eth0 -r /etc/network/if.sh
ifplugd -i eth1 -r /etc/network/if.sh
监听两个网口并且执行后面的脚本文件,如果你的文件系统里有/etc/network/interface文件,需要将里面的auto改为allow-hotplug。
而if.sh里面的内容就是简单的检测并且dhcp。
最后我们可以将上面两个命令设置开机自启动,这样就会自动up两个网口,哪怕没有插网线也是准备状态,当插入网线后就会自动获取ip地址。
注意可能会出现延迟,可以稍等一下查看。
业界有哪些创新的5G工业CPE产品和解决方案?
如何借助RFID的力量来监管旅游大巴
致力打造新型智慧家庭无线方案,腾达惊艳亮相2017天翼智能生态博览会
智能空调语音ic,家电声控离线语音识别芯片
恒流LED驱动电路背后的基础知识
技术分享 | 开发板网口热插拔自动获取IP地址
分布式发电政策不断完善的情况下 屋顶光伏市场将持续保持高速增长
苹果 HomePod mini 现已在墨西哥和中国台湾发售
微雪电子STM32 Cortex M3开发板Core205R简介
基于单片机中风机温度控制系统的设计
自动驾驶汽车真会自己摁喇叭吗?
A/D转换器的原理 A/D转换步骤
华为最后能否超越三星,苹果又是否靠新iPhone重新逆袭?
微处理器的部件组成及特点介绍
二相电机正反转接线图 二相电机正反转接线实物图
基于CAN总线技术在交通运载工具电气系统中的应用
详细了解一下Allegro原理图设计工具SDA 的十大主要功能和改变
塔塔集团宣布在印度古吉拉特邦投资建设半导体晶圆厂
中兴公益荣获“十佳公益机构”和“十佳创意项目”双奖
振弦式传感器数据采集到水库大坝监测云平台进行监控和报警