开发板调试DHCP笔记记录
来源:互联网 发布:ios10蜂窝数据快捷开关 编辑:程序博客网 时间:2024/06/06 12:28
测试反映设备DHCP不可用。这可是相当严重的一个问题,对此,我不得不重视起来。本以为是很简单的一个问题,没有想到,来来回回的折腾了半天多。
在我们的设备中采用命令工具udhcpc 自动获取ip 地址,当用户设置动态获取IP后,设备启动时,会调用udhcpc命令。
首先,我从打印分析开始, 以下是执行命令后给出的打印。
udhcpc (v0.9.9-pre) started
Jan 1 00:36:44 udhcpc[694]: udhcpc (v0.9.9-pre) started
m
Jan 1 00:36:44 udhcpc[694]: [truncated] m
从打印上看,在刚开始执行时就得到一个中断错误truncated,在网络上以相关关键字,dhcp + udhcpc + truncated 查找,均得不到有用的信息。但在查找的过程中,对udhcpc命令有了更进一步的认识。
我猜测有问题的地方可能出错地方有三处:1 udhcpc 命令有问题 2 busybox 3 内核。
首先从猜测点1 开始排查,拷贝一朋友可用的udhcpc文件到我们的系统中(开发环境相同),发现还是给出相同的错误提示。此时我估计着可能是busybox 和内核 有问题。
如果是busybox和内核的问题,对我来说,排查起来,更是无从下手。想了想,决定还是从udhcpc着手,udhcpc 是一个开源的软件, 我可以从源码上分析到底是哪一步出错。
于是从网络上下载了udhcp-0.9.9_pre20041216.tar.bz2源码,下载编绎后,生成可执行文件udhcpc ,nfs远程mount后, 执行./udhcpc 同样给出与之前一样的提示错误。
一步步的定位分析, 最终定位到错误处。
if ((fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))) < 0)
加上错误打印perror("create socket failed");
最终确认错误原因Address family not supported by protocol.
再次google之, 有人给出捍示可能是内核时编绎选项CONFIG_PACKET没有选上
于是去编绎内核文件,果然,CONFIG_PACKET没有勾选上。
重新编绎内核,设备升级内核,dhcp测试ok,完成。
- 开发板调试DHCP笔记记录
- 开发板调试笔记
- 开发板启动调试记录--nand启动
- DHCP笔记
- hisi_ISP调试个人记录笔记
- hisi_ISP调试个人记录笔记
- 电表芯片调试笔记记录
- android开发bug调试记录
- openstack dhcp调试
- 移植DHCP服务到MPC8377E开发板
- 移植DHCP客户端ARM开发板
- 嵌入式linux 开发板 dhcp ip
- 移植dhcp到ARM开发板
- gexin 2410bp开发板调试笔记
- 开发笔记记录一下
- android 开发笔记记录
- 开发记录笔记
- CCS+C6678LE开发记录18:解决EVM网口“DHCP配置无法获取IP”的问题
- java mail
- Ruby 实例变量
- qt的父子关系和父子类的区别
- MPEG2、MPEG4、H264的差异
- EasyUI 添加tab页(iframe方式)
- 开发板调试DHCP笔记记录
- msp430f149之二 端口功能及设置
- linux fork pipe
- 单芯片指纹锁设计方案1(来源网络)
- php采集论坛
- Touchanote在开发者大会上获大奖
- Ruby 实例变量和类变量
- c++类的编译器实现方式描述
- 比较直观的建模过程