私はOrange piの2台のシングルボードコンピュータを持っていますが、それぞれ2台のオンボードネットワークアダプタがあります。そのうちの1つは通常eth0と呼ばれ、もう1つはボードによって異なります。 enxc0742bffdf83 や enxc0742bffdf6e などの他の名前があります。私はArmbianイメージを使ってボードに電力を供給しました。 DCHPが自動的にIPアドレスを取得しないように、両方のネットワークアダプタを1つに設定しました。私は以下のように/etc/network/interfacesファイルを変更してこれを行いました。
auto eth0
iface eth0 inet manual
auto enxc0742bffdf6e
iface enxc0742bffdf6e inet manual
手動で設定された画像を別のSDカードにコピーし、/etc/network/interfacesを手動で再変更することなく直接実行できることを願っています。アダプタ1やアダプタ2など、すべてのマザーボードに適用される共通のエイリアスを使用するオプションはありますか?それ以外の場合は、システム起動時に各ボードアダプタの正しい名前で/ etc / network / interfacesファイルを自動的に更新する一般的なスクリプトを作成する方法はありますか?
答え1
で始まるネットワークインターフェイス名には、enx...
接続されたNICのMACアドレスが含まれます。ファイルが原因で割り当てられている可能性があります/etc/systemd/network/81-usbnet.link
。
詳しくはこちらをご覧くださいman systemd.net-naming-scheme
。man systemd.link
/etc/systemd/network/*.link
2番目のNICの属性によっては、ボード上の2番目のNICと一致する一般的なファイルを作成し、必要な名前を割り当てることができない場合があります。これを行うことができる場合は、次のファイルを作成し、デフォルトのASCII英数字ソート順に最初に表示される*.link
ように名前を付けます。81-usbnet.link
[Match]
<some condition that matches your second NIC>
[Link]
NamePolicy=
Name=<your desired name for the second NIC>
*.link
システムがinitramfsを使用している場合は、ファイルがinitramfsに含まれ、システムがinitramfsで実行されている間にNICドライバがロードされた場合にも適用されるように、それを再生成する必要があります。
または、カーネル割り当て名(たとえば)がeth0
システムで信頼できると確信している場合は、カーネルブートパラメータを追加して2つのネットワークインターフェイス(および)net.ifnames=0
を取得できます。ネットワークインタフェースドライバモジュールが常に同じ順序でロードされていることを確認してください。ファイルに次の内容を追加できます。eth0
eth1
/etc/modprobe.d/*.conf
install <second_NIC_driver> /sbin/modprobe <first_NIC_driver> && /sbin/modprobe -i <second_NIC_driver>
これにより、カーネルが何らかの理由で2番目のネットワークカードのドライバを最初にロードしても、モジュールのロードプロセスは常に最初のネットワークカードのドライバを最初にロードするため、最初のネットワークカードは常に名前をキャプチャしますeth0
。
答え2
systemd-networkd
/etc/network/interfacesの代わりにこのサービス(システムに付属)を試してください。
サービスを有効にしてファイルを介して/etc/systemd/network/*.network
ネットワークを設定したら(参考資料を参照man systemd.network
)、さまざまな基準(インターフェイス名ワイルドカードやドライバ名など)に応じてインターフェイスと一致するように設定できます。
[Match]
Name=enx*
[Network]
...
[Match]
Driver=r8188eu
[Network]
Address=...
(ファイルリストは*.network
ASCIIアルファベット順に読み込まれ、各インタフェースは最初networkctl status
.