home *** CD-ROM | disk | FTP | other *** search
- #! /bin/bash
-
- . /etc/sysconfig/hardware/scripts/functions
-
- NOMAC_HACK_APPLIED=no
- trap 'echo NOMAC_HACK_APPLIED=$NOMAC_HACK_APPLIED
- echo ADDRESS=$MAC_ADDRESS' EXIT
-
- case "$1" in
- eth*|ath*|wlan*|ra*) : ;;
- *) exit 0 ;;
- esac
-
- MAC_ADDRESS=
- if ls /sys/class/net/$1 2>/dev/null 1>&2; then
- MAC_ADDRESS=`cat /sys/class/net/$INTERFACE/address`
- fi
- if [ -z "$MAC_ADDRESS" ] ; then
- exit 0
- fi
- if [ "${MAC_ADDRESS%00:00:00}" != "$MAC_ADDRESS" ] ; then
- # Workaround for some drivers which don't request their
- # firmware before beeing set up and don't have a mac address
- # before firmware was loaded.
- ip link set up dev $INTERFACE
- ip link set down dev $INTERFACE
- # Do we have to wait some time?
- for i in 0 1 2 3 4 5 6 7 8 9; do
- MAC_ADDRESS=`cat /sys/class/net/$INTERFACE/address`
- info_mesg "waiting for a usefull mac address: $MAC_ADDRESS"
- if [ "${MAC_ADDRESS%00:00:00}" != "$MAC_ADDRESS" ] ; then
- NOMAC_HACK_APPLIED=yes
- break
- fi
- sleep 1
- done
- fi
-
- exit 0
-