我正在开发一个嵌入式系统,它使用 udhcpc 作为其 DHCP 客户端。它似乎正在使用以下参数运行:
/usr/share/udhcpc # ps | grep dhcp 5366 root 2432 S udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0
我想更改参数或运行我自己的 DHCP 客户端。我搜索了一下,我认为这与 ifup 和 /etc/network/interfaces 有关。
iface eth0 inet dhcp
但我没有找到修改 DHCP 客户端的方法。
我想知道
- 如何将参数更改为 udhcpc,以及
- 是否可以在不杀死 udhcpc 的情况下运行我自己的 DHCP 客户端
谢谢!
答案1
您的系统似乎是 Debian 的轻量级版本/变体,基于busybox
.
busybox
通常用于恢复介质或资源有限的嵌入式系统。
如需修改参数,可udhcpc
自动调用。
您可以更改/etc/network/interfaces
为:
iface eth0 inet manual
pre-up /sbin/udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0
至于运行另一个 DHCP 客户端,您必须安装它;但是,udhcpc
除非您有其他接口,否则您必须切换它。
请记住,它udhcpc
只是 的一部分busybox
,它只是一个指向为您提供工作环境的全局二进制文件的链接,因此,您不会节省任何切换 DHCP 客户端的空间。
答案2
Martin Trenkmann 提出的解决方案对我不起作用(使用 udhcpc_opts)。但是,在我的系统上添加以下行即可/etc/network/interfaces
工作:
auto eth0
iface eth0 inet dhcp
hostname myhostname
这使得 BusyBox 执行:
$ ps aux| grep dhc
1685 root /sbin/udhcpc -n -p /run/udhcpc.eth0.pid -i eth0 -x hostname:myhostname
答案3
如何将参数更改为udhcpc?
您可以用于udhcpc_opts
此用途。
iface eth0 inet dhcp
udhcpc_opts -t 10
...
上面的例子告诉我们乌兹别克斯坦最多尝试 10 次才能获得租约。