
我正在開發一個嵌入式系統,它使用 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 次才能獲得租約。