我有一块带LPC1788的定制板,32Mbyte SDRAM,128Mbyte Nand flash,在108 128。我下载了emcraft uclinux和网络项目。
poroblem是busybox udhcpc命令:
init started: BusyBox v1.17.0 (2014-12-05 16:25:33 CET)
~ # ifconfig
~ # udhcpc -f -i eth0
udhcpc (v1.17.0) started
Setting IP address 0.0.0.0 on eth0
Sending discover 0...
Sending discover 0...
Sending select for 192.168.0.27...
Received DHCP NAK
Sending discover 0...
Sending select for 192.168.0.27...
Received DHCP NAK
Sending discover 0...
Sending select for 192.168.0.27...
Received DHCP NAK
^C
~ # ifconfig
eth0 Link encap:Ethernet HWaddr C0:B1:3C:88:88:84
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:37 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7432 (7.2 KiB) TX bytes:2278 (2.2 KiB)
Interrupt:28 Base address:0x4000
~ #u-boot不是send boot The网络选项。udhcpc总是收到NAK
这是默认脚本:
#!/bin/sh
# udhcpc script edited by Tim Riker
RESOLV_CONF="/etc/resolv.conf"
[ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; }
NETMASK=""
[ -n "$subnet" ] && NETMASK="netmask $subnet"
BROADCAST=""
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
case "$1" in
deconfig)
echo "Setting IP address 0.0.0.0 on $interface"
ifconfig $interface 0.0.0.0
;;
renew|bound)
echo "Setting IP address $ip on $interface"
ifconfig $interface $ip $NETMASK $BROADCAST
if [ -n "$router" ] ; then
echo "Deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
for i in $router ; do
echo "Adding router $i"
route add default gw $i dev $interface
done
fi
echo "Recreating $RESOLV_CONF"
echo -n > $RESOLV_CONF-$$
[ -n "$domain" ] && echo "search $domain" >> $RESOLV_CONF-$$
for i in $dns ; do
echo " Adding DNS server $i"
echo "nameserver $i" >> $RESOLV_CONF-$$
done
mv $RESOLV_CONF-$$ $RESOLV_CONF
;;
esac
exit 0192.168.0.27是来自我的路由器的正确ip地址,但是为什么收到nak?为什么不运行udhcpc,这是一个我不能修改的默认项目,我不明白。请给我一个建议!
发布于 2018-09-14 00:10:51
udhcpc正在进行一项发现,并获得了一份报价。由于某些原因,当我们请求地址时,dhcp服务器使用NAK进行响应。也许dhcp服务器需要一些我们没有请求的特定字段?dhcp服务器上的日志应该会提供一些信息。如果您没有日志,那么在另一个节点上运行tcpdump可能有助于调试。类似于:
tcpdump -i any -s0 -vvv port 67 or port 68https://stackoverflow.com/questions/27410359
复制相似问题