LPC1788、32M バイトの SDRAM、128M バイトの Nand フラッシュ、108Mhz を搭載したカスタム ボードがあります。emcraft uclinux およびネットワーク プロジェクトをダウンロードします。
問題は、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 は、bootargs ネットワーク オプションを送信しません。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 0
192.168.0.27 はルーターからの正しい IP アドレスですが、nak を受信したのはなぜですか? なぜ udhcpc を動かさないのですか。これは私が変更しないデフォルトのプロジェクトです。理解できません。アドバイスをください!