私はこの質問が古いことを理解していますが、この問題にぶつかり、このページでこれまでに提案された解決策のどれも私の問題を解決しませんでした。私にとって、rules.dフォルダーのトリックは何もしないようです。
私の解決策は、名前に関係なく、有線のイーサネットポートにDHCPを割り当てるために、init.dフォルダーに入るスクリプトを単に書くことでした。私はいくつかのRaspberry Piユニットを持っているので、これは重要です。それらはすべてこの同じ問題を抱えています。(非常にイライラする)
ブートプロセス中にマウントする必要があるネットワークストレージフォルダーがあるため、私の問題はさらに複雑になります。インターフェイスがアップしなかったため、このマウントは失敗し、事態は悪化しました。
これが私の解決策です。これが上記の回答を使用して参加を見つけることができない他の人を助けることを願っています。
任意のテキストエディターを使用して、ファイル/etc/init.d/raspi-init-networkを作成します。私はviを使うのが好きです。
cd /etc/init.d
sudo vi raspi-init-network
これはファイルに属するコードです
#!/bin/sh
### BEGIN INIT INFO
# Provides: boot-identify-myself
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: identify-myself
# Description: identify this computer to the main server upon
### END INIT INFO
#
# when using predictible network names for the interfaces,
# the pi doesn't seem to activate the interface correctly so
# this script will force the issue.
#
# it works by getting the interface name of the wired network
# device and using that to initialize dhcp
start()
{
interface=`ifconfig -a | grep "encap:Ethernet" | grep -oh -E "^[^ ]+"`
dhclient $interface
mount -a
}
stop()
{
: # do nothing
}
uninstall()
{
: # do nothing
}
case "$1" in
start)
start
;;
stop)
stop
;;
uninstall)
uninstall
;;
retart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|uninstall}"
esac
スクリプトが実行可能であることを確認してください
sudo chmod 755 raspi-init-network
update-rc.dコマンドを実行して、ブートプロセス中に実行されるようにコードをアクティブにします。
sudo update-rc.d raspi-init-network defaults 90
この後、私は単一の問題を抱えておらず、同じ安定した結果ですべてのPiユニットにコードをコピーすることができました。
注:ドライブをマウントしない場合は、「mount -a」行を省略できます。
調整:WiFiを使用している場合、「interface =」で始まる行を変更して、最初の「grep」セグメントを編集できます。この最初のgrepは、使用するインターフェイスの行全体を取得します。2番目のgrepはその行を受け取り、インターフェース名のみを返します。