我正在使用这些引导参数:
setenv bootargs 'console=ttyPS0,115200n8 root=/dev/nfs rootfstype=nfs nfsroot=192.168.0.101:/usr/nfs/xilinx-zynq,port=2049,nolock,proto=tcp rw loglevel=8 tcp ip=dhcp'
最需要注意的可能是ip=dhcp
。查看启动日志,我得到两个不同的 IP 地址。
- 怎么会这样?
- 可以取消第二个请求吗?
第一个IP:
[ 7.792623] IP-Config: Complete:
[ 7.795836] device=eth0, hwaddr=00:0a:35:00:22:01, ipaddr=192.168.0.102, mask=255.255.255.0, gw=192.168.0.254
[ 7.806161] host=192.168.0.102, domain=, nis-domain=(none)
[ 7.812063] bootserver=0.0.0.0, rootserver=192.168.0.101, rootpath= nameserver0=192.168.0.254
第二个IP:
INIT: Entering runlevel: 5
Configuring network interfaces... udhcpc (v1.24.1) started
Sending discover...
Sending select for 192.168.0.93...
Lease of 192.168.0.93 obtained, lease time 73202
/etc/udhcpc.d/50default: Adding DNS 192.168.0.254
done.
答案1
我仍然不明白为什么在这两种情况下都会得到两个不同的 IP 地址,但我找到了如何消除第二个 DHCP 调用:
在/etc/网络/接口,我输入以下内容:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# Wired or wireless interfaces
auto eth0
iface eth0 inet manual
这里的关键点是“手动”设置,它告诉系统不要尝试激活该接口,因为它已经激活了。
顺便说一句,我在某处读到,不建议依赖初始 DHCP,因为租约永远不会以这种方式续订,但我不确定这会产生什么影响。