diff options
Diffstat (limited to 'meta-sys940x/recipes-bsp/genmac/files/genmac')
-rw-r--r-- | meta-sys940x/recipes-bsp/genmac/files/genmac | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-sys940x/recipes-bsp/genmac/files/genmac b/meta-sys940x/recipes-bsp/genmac/files/genmac new file mode 100644 index 00000000..1899e95f --- /dev/null +++ b/meta-sys940x/recipes-bsp/genmac/files/genmac | |||
@@ -0,0 +1,46 @@ | |||
1 | #!/bin/sh | ||
2 | ### BEGIN INIT INFO | ||
3 | # Provides: Random MAC address generator | ||
4 | # Required-Start: $syslog | ||
5 | # Required-Stop: $syslog | ||
6 | # Default-Start: 2 3 4 5 | ||
7 | # Default-Stop: 0 1 6 | ||
8 | # Short-Description: Set a random MAC for tagged interfaces | ||
9 | # Description: Set a random MAC for interfaces with RANDOM_MAC | ||
10 | ### END INIT INFO | ||
11 | |||
12 | # Author: Darren Hart <dvhart@linux.intel.com> | ||
13 | # Based on /etc/init.d/skeleton | ||
14 | |||
15 | PATH=/sbin:/usr/sbin:/bin:/usr/bin | ||
16 | DESC="Set a random MAC for tagged interfaces" | ||
17 | NAME=genmac | ||
18 | RANPWD=`which ranpwd` | ||
19 | SCRIPTNAME=/etc/init.d/$NAME | ||
20 | |||
21 | # Exit if ranpwd is not installed | ||
22 | [ -x "$RANPWD" ] || exit 0 | ||
23 | |||
24 | do_start() { | ||
25 | # Replace every occurence of RANDOM_MAC with a unique locally | ||
26 | # administered, unicast, randomly generated MAC address. | ||
27 | while grep -q RANDOM_MAC /etc/network/interfaces; do | ||
28 | sed -i "1,/RANDOM_MAC/s/RANDOM_MAC/$($RANPWD -m)/" /etc/network/interfaces | ||
29 | done | ||
30 | } | ||
31 | |||
32 | case "$1" in | ||
33 | start) | ||
34 | echo "$NAME: Setting random MAC addresses" | ||
35 | do_start | ||
36 | ;; | ||
37 | stop) | ||
38 | ;; | ||
39 | *) | ||
40 | echo "Usage: $SCRIPTNAME {start|stop}" >&2 | ||
41 | exit 3 | ||
42 | ;; | ||
43 | esac | ||
44 | |||
45 | exit 0 | ||
46 | |||