mac80211_phy_to_path() { local phy="$1" [ -x /usr/bin/readlink -a -h /sys/class/ieee80211/${phy} ] || return local path="$(readlink -f /sys/class/ieee80211/${phy}/device)" [ -n "$path" ] || return path="${path##/sys/devices/}" case "$path" in platform*/pci*) path="${path##platform/}";; esac local p local seq="" for p in $(ls /sys/class/ieee80211/$phy/device/ieee80211); do [ "$p" = "$phy" ] && { echo "$path${seq:++$seq}" break } seq=$((${seq:-0} + 1)) done } mac80211_path_to_phy() { local path="$1" local p for p in $(ls /sys/class/ieee80211); do local cur="$(mac80211_phy_to_path "$p")" case "$cur" in *$path) echo "$p"; return;; esac done }