The output of ifconfig changed in recent versions, breaking
parsing the available interfaces. Use that as a good excuse
for switching from ifconfig to ip.
The 's/@.*//' is required to strip the '@ethX0' from the interface
names 'vlan42@eth0', since in /sys/class/net/ only vlan42 exists
as such and not vlan42@eth0.
for mod in /sys/module/rt2??0/ ; do
if [ -d "$mod" ]; then
for mod in /sys/module/rt2??0/ ; do
if [ -d "$mod" ]; then
- IWPREUPLINE="$IWPREUPLINE pre-up /sbin/ifconfig $DV up\n"
+ IWPREUPLINE="$IWPREUPLINE pre-up /sbin/ip link set $DV up\n"
# Executing this script generates an entry in /etc/udev/rules.d/z25_persistent-net.rules
# for you, please check z25_persistent-net.rules for existing entries before
# running this script (once more)." > /etc/udev/scripts/netcardconfig
# Executing this script generates an entry in /etc/udev/rules.d/z25_persistent-net.rules
# for you, please check z25_persistent-net.rules for existing entries before
# running this script (once more)." > /etc/udev/scripts/netcardconfig
- for interface in $(ifconfig | awk '/^[a-z]/ &&!/^lo/{ print $1} ') ; do
+ for interface in $(ip -oneline link | awk '!/ lo: / {print $2}' | sed 's/:$//; s/@.*//') ; do
echo -n "INTERFACE=$interface /lib/udev/write_net_rules " >> /etc/udev/scripts/netcardconfig && \
if which udevadm >/dev/null 2>&1; then
udevadm info -a -p "/sys/class/net/$interface" | awk -F'==' '/address/ {print $2}' >> /etc/udev/scripts/netcardconfig
echo -n "INTERFACE=$interface /lib/udev/write_net_rules " >> /etc/udev/scripts/netcardconfig && \
if which udevadm >/dev/null 2>&1; then
udevadm info -a -p "/sys/class/net/$interface" | awk -F'==' '/address/ {print $2}' >> /etc/udev/scripts/netcardconfig
iwlist "$DV" scanning | grep "ESSID\|Quality" | sed -e "s/^.*ESSID:\"\|\"$//g" | tac > "$TMP"
while read -r line
do
iwlist "$DV" scanning | grep "ESSID\|Quality" | sed -e "s/^.*ESSID:\"\|\"$//g" | tac > "$TMP"
while read -r line
do