特定の MAC アドレスを持つ NIC の名前を自動的に変更し、番号を付ける udev ルールについて書いています。
結果のルールは、ほぼ同じことを行うはずです75-persistent-net-generator.rules
(カードの MAC アドレスの最初の 3 バイトに一致し、このベンダーのカードがインストールされている量に応じて「mycard*」という名前を付け、名前変更ルールを に書き込みます70-persistent-net.rules
)。
これは私が今までどれだけ来たかです:
# udev rules to name rename cards to mycard
ACTION!="add", GOTO="persistent_mycard_generator_end"
SUBSYSTEM!="net", GOTO="persistent_mycard_generator_end"
# ignore the interface if a name has already been set
NAME=="mycard*", GOTO="persistent_mycard_generator_end"
# device name whitelist
KERNEL!="eth*", GOTO="persistent_mycard_generator_end"
# read MAC address
ENV{MATCHADDR}="$attr{address}"
# match interface type
ENV{MATCHIFTYPE}="$attr{type}"
# ignore non mycard MAC addresses
ENV{MATCHADDR}!="00:11:22:*", GOTO="persistent_mycard_generator_end"
# default comment
ENV{COMMENT}=="", ENV{COMMENT}="mycard connected through ($attr{driver})"
#### THIS IS THE PART I DON'T GET ####
# write rule
DRIVERS=="?*", IMPORT{program}="write_net_rules"
# rename interface if needed
ENV{INTERFACE_NEW}=="?*", NAME="mycard*"
#### THIS IS THE END OF THE PART I DON'T GET ####
LABEL="persistent_mycard_generator_end
「THE PART I DON'T GET」が行うべきタスクは、カード (eth3 としましょう) の名前を mycard0 に変更すること、またはシステム内で一致する MAC アドレス mycard1 を持つ 2 番目のカードである場合などです。
前もってありがとう、フロクラ