[yocto] [pull-sys940x 3/4] genmac: Replace RANDOM_MAC in network/interfaces with a randomly generated MAC

Joshua Lock josh at linux.intel.com
Wed Feb 1 14:42:29 PST 2012



On 01/02/12 14:26, Darren Hart wrote:
> For machines that do not have a MAC in hardware and with drivers that don't
> generate a random one in the kernel, this init script will replace the string
> RANDOM_MAC in the network/interfaces file with one generated with "ranpwd -m".
> Care is taken to ensure multiple interfaces can use RANDOM_MAC and receive
> unique addresses. ranpwd generates MACs with the locally administered bit set
> and the multicast bit disabled.
>
> Signed-off-by: Darren Hart<dvhart at linux.intel.com>
> ---
>   meta-sys940x/recipes-bsp/genmac/files/genmac |   46 ++++++++++++++++++++++++++
>   meta-sys940x/recipes-bsp/genmac/genmac.bb    |   30 +++++++++++++++++
>   2 files changed, 76 insertions(+), 0 deletions(-)
>   create mode 100644 meta-sys940x/recipes-bsp/genmac/files/genmac
>   create mode 100644 meta-sys940x/recipes-bsp/genmac/genmac.bb
>
> diff --git a/meta-sys940x/recipes-bsp/genmac/files/genmac b/meta-sys940x/recipes-bsp/genmac/files/genmac
> new file mode 100644
> index 0000000..6ca069c
> --- /dev/null
> +++ b/meta-sys940x/recipes-bsp/genmac/files/genmac
> @@ -0,0 +1,46 @@
> +#!/bin/sh
> +### BEGIN INIT INFO
> +# Provides:          Random MAC address generator
> +# Required-Start:    $syslog
> +# Required-Stop:     $syslog
> +# Default-Start:     2 3 4 5
> +# Default-Stop:      0 1 6
> +# Short-Description: Set a random MAC for tagged interfaces
> +# Description:       Set a random MAC for interfaces with RANDOM_MAC
> +### END INIT INFO
> +
> +# Author: Darren Hart<dvhart at linux.intel.com>
> +# Based on /etc/init.d/skeleton
> +
> +PATH=/sbin:/usr/sbin:/bin:/usr/bin
> +DESC="Set a random MAC for tagged interfaces"
> +NAME=genmac
> +RANPWD=`which ranpwd`
> +SCRIPTNAME=/etc/init.d/$NAME
> +
> +# Exit if amixer is not installed

amixer?

> +[ -x "$RANPWD" ] || exit 0
> +
> +do_start() {
> +	# Replace every occurance of RANDOM_MAC with a unique locally
occurrence?
> +	# administered, unicast, randomly generated MAC address.
> +	while grep -q RANDOM_MAC /etc/network/interfaces; do
> +		sed -i "1,/RANDOM_MAC/s/RANDOM_MAC/$($RANPWD -m)/" /etc/network/interfaces
> +	done

Otherwise looks good, feel free to add my SOB.

Cheers,
Joshua
-- 
Joshua Lock
         Yocto Project "Johannes factotum"
         Intel Open Source Technology Centre



More information about the yocto mailing list