udhcpcはどのように実行され、どのように変更されますか?

udhcpcはどのように実行され、どのように変更されますか?

私は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クライアントを変更する方法が見つかりませんでした。

知りたい

  1. パラメータをudhcpcに変更する方法
  2. udhcpcを終了せずに私のDHCPクライアントを実行できますか?

ありがとうございます!

答え1

あなたのシステムは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

(で見つかりましたhttps://wiki.alpinelinux.org/wiki/Udhcpc)

答え3

パラメータをudhcpcに変更するには?

この目的に使用できますudhcpc_opts

iface eth0 inet dhcp
  udhcpc_opts -t 10
  ...

上記の例は私たちに教えてくれます。ウズベキスタンリースを得るには最大10回の試みが必要です。

関連情報