NI Linux RT における複数 USB-LAN アダプタの安定した Ethernet インターフェース命名

更新しました Feb 2, 2026

環境

オペレーティング・システム

  • LabVIEW Real-Time (NI Linux Real-Time)

NI Linux RT で複数の USB-LAN アダプタを使用する場合、デバイスの列挙順が非決定的であるため、ethX の命名が不安定になることは想定された挙動です。推奨かつサポートされている解決策は、MAC アドレスに基づいてインターフェース名を固定する udev ルールを作成することです。これにより、再起動後も一貫性があり予測可能なネットワーク設定を維持できます。

Linux ベースのシステム(NI Linux RT を含む)では、ネットワークインターフェースは、カーネルがハードウェアを検出した順に eth0, eth1, eth2, … と命名されます。複数の USB-LAN アダプタを接続している場合、この検出順は電源投入ごとに保証されません。その結果、以下のような現象が発生します。

  • インターフェース名(ethX)が起動ごとに異なるハードウェアに割り当てられる
  • 各インターフェースに設定した IP アドレスが「入れ替わった」ように見える
  • NI MAX では元の設定が表示されているにもかかわらず、実際のインターフェースとハードウェアの対応関係が変わっている

USB-LAN アダプタが 1 台のみの場合は、列挙の曖昧さがないため、通常この問題は発生しません。

この問題を恒久的に解決するには、MAC アドレスに基づいて安定したインターフェース名を割り当てる udev ルールを設定します。
これにより、起動順に依存せず、各物理 Ethernet アダプタが常に同じインターフェース名で認識されるようになります。

 

設定ファイル

NI Linux RT ターゲット上で、以下のファイルを編集します(空の場合は作成してください)。

 /etc/udev/rules.d/80-net-name-slot.rules 

 

udev ルールの例

各 USB-LAN アダプタを、その MAC アドレスに基づいて一意で安定したインターフェース名にマッピングします。

# MAC アドレスに基づいて安定した名前を割り当てる
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:2f:19:0c:79", NAME="ethA"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:2f:19:0c:3c", NAME="ethB"

 ※ MAC アドレスおよびインターフェース名は、使用環境に合わせて置き換えてください。

 

重要な注意点と制限事項

  • eth0, eth1, eth2, eth3 などの既存の名前は再利用しないでください。
    • これらは起動初期にすでに割り当てられており、後から再利用することはできません。
  • 以下のような、新しく一意な名前を使用してください。
    • ethA / ethB
    • lan0 / lan1
    • eth5 / eth6
  • MAC アドレスは以下の形式で、小文字で記述する必要があり
    • aa:bb:cc:dd:ee:ff
  • 内蔵 Ethernet ポート(eth0 / eth1)の名前変更は推奨されません。
  • すでに使用されている名前に変更しようとすると、udev は「name already exists」 エラーで失敗します。
 

MAC アドレスの確認方法

各ネットワークインターフェースの MAC アドレスは、ターゲット上で次のコマンドを実行することで確認できます。ipconfigを実行するとMAC アドレスは HWaddr として表示されます。

 

NI MAX での表示

udev ルールによってリネームされたインターフェース(例:ethA, ethB)は、NI MAX の Network Settings タブに表示されます。これらのインターフェースに対しても、他のネットワークアダプタと同様に IP アドレスを設定できます。

次のステップ

元の動作に戻す方法

カスタムのインターフェースマッピングを削除するには、以下を実行します。

  1. 次のファイルを開きます
    /etc/udev/rules.d/80-net-name-slot.rules
    
  2. ファイルの中身をすべて削除し、空の状態にします
    • ファイル自体は削除しないでください
  3. ターゲットを再起動します

再起動後、インターフェース命名は Linux のデフォルト動作に戻ります。