eth0が利用可能になった後、DHCPクライアントの前にコマンドを実行する

eth0が利用可能になった後、DHCPクライアントの前にコマンドを実行する

私は ARM ボードで Debian Weezy を実行しています。現在、ネットワーク ドライバーの問題を回避するために、イーサネット インターフェイスを 100 メガビットに制限する ethtool コマンドを実行しています。ただし、ドライバーの問題は DHCP ネゴシエーションの早い段階で発生するため、dhclient を実行する前に ethtool を実行する必要があります。

私は、ethtool (または mii-tool、どちらでも) が dhclient の前に実行できる場所を見つけようとしています。 これまで試した場所 (/etc/network/if-pre-up.dおよび/etc/dhcp/dhclient-enter-hooks.d) はすべて、「eth0」がまだ存在しないため機能しません。

Debian ネットワークまたはシステム構成に、dhclient の実行前に Ethernet の状態を変更できるクリーン フックはありますか? それとも、ここで何か不可能なことをしようとしているのでしょうか?

答え1

eth を「手動」で起動し、実行したい任意のスクリプト(動作を遅くするためのスリープを含む)を適用し、最後に dhclient を呼び出すことは可能です。Ubuntu では、/etc/network/interfaces は次のようになります。

auto eth0
iface eth0 inet manual
pre-up /etc/network/pre-up-scripts/eth0.sh  ( one way to do it)
pre-up some-script-or-command  (another way)
up dhclient  eth0

インターフェースのマニュアルページは非常に役立ちます。

関連情報