Я пишу правило udev для автоматического переименования и нумерации сетевых карт с определенными MAC-адресами.
Полученное правило должно действовать почти так же, как и 75-persistent-net-generator.rules
(сопоставьте первые 3 байта MAC-адреса карты, назовите его «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
Задача «ЧАСТЬ I НЕ ПОЛУЧИТЬ» должна переименовать карту (скажем, eth3) в mycard0 или, если это вторая карта в системе с совпадающим MAC-адресом mycard1 и т. Д.
Спасибо заранее,
flokra