X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Frule_generator%2Fwrite_net_rules;h=cb346757cc40050e034dada01224f4fc0790629b;hp=9b66c938f39380c1b6970f57b1447fe263192de5;hb=4435308844467c0dab329531def8dbfa451d9781;hpb=6e509e539b15ae882afd8ce3fafe1fbd33008509 diff --git a/extras/rule_generator/write_net_rules b/extras/rule_generator/write_net_rules index 9b66c938f..cb346757c 100644 --- a/extras/rule_generator/write_net_rules +++ b/extras/rule_generator/write_net_rules @@ -15,12 +15,20 @@ # variables used to communicate: # MATCHADDR MAC address used for the match # MATCHID bus_id used for the match +# MATCHDEVID dev_id used for the match # MATCHDRV driver name used for the match # MATCHIFTYPE interface type match # COMMENT comment to add to the generated rule # INTERFACE_NAME requested name supplied by external tool # INTERFACE_NEW new interface name returned by rule writer +# debug, if UDEV_LOG= +if [ -n "$UDEV_LOG" ]; then + if [ "$UDEV_LOG" -ge 7 ]; then + set -x + fi +fi + RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' . /lib/udev/rule_generator.functions @@ -47,9 +55,10 @@ write_rule() { if [ "$PRINT_HEADER" ]; then PRINT_HEADER= echo "# This file was automatically generated by the $0" - echo "# program run by the persistent-net-generator.rules rules file." + echo "# program, run by the persistent-net-generator.rules rules file." echo "#" - echo "# You can modify it, as long as you keep each rule on a single line." + echo "# You can modify it, as long as you keep each rule on a single" + echo "# line, and change only the value of the NAME= key." fi echo "" @@ -78,6 +87,10 @@ if [ "$MATCHDRV" ]; then match="$match, DRIVERS==\"$MATCHDRV\"" fi +if [ "$MATCHDEVID" ]; then + match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" +fi + if [ "$MATCHID" ]; then match="$match, KERNELS==\"$MATCHID\"" fi @@ -92,6 +105,9 @@ if [ -z "$match" ]; then exit 1 fi +basename=${INTERFACE%%[0-9]*} +match="$match, KERNEL==\"$basename*\"" + if [ "$INTERFACE_NAME" ]; then # external tools may request a custom name COMMENT="$COMMENT (custom name provided by external tool)" @@ -101,7 +117,6 @@ if [ "$INTERFACE_NAME" ]; then fi else # if a rule using the current name already exists, find a new name - basename=${INTERFACE%%[0-9]*} if interface_name_taken; then INTERFACE="$basename$(find_next_available "$basename[0-9]*")" echo "INTERFACE_NEW=$INTERFACE"