]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/install+setup/install/probenic.sh
Merge remote-tracking branch 'origin/next' into thirteen
[people/teissler/ipfire-2.x.git] / src / install+setup / install / probenic.sh
index fcec6bd23bd95974ed43055f9a574797964db2b0..fb428cc49a335b3664965638d7396dc4c2a22eb7 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2011  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -30,34 +30,50 @@ for card in `ls /sys/class/net`; do
        if [ `cat /sys/class/net/$card/type` == "1" ]; then
                hwaddr=`cat /sys/class/net/$card/address`
 
-               #Check if mac is valid (not 00:00... or FF:FF...)
-               if [ ! "$hwaddr" == "00:00:00:00:00:00" ];then
-               if [ ! "$hwaddr" == "ff:ff:ff:ff:ff:ff" ];then
+               #Check that is no VLAN if
+               if [[ ! "$card" =~ "[.]" ]]; then
 
-                       driver=`grep PHYSDEVDRIVER= /sys/class/net/$card/uevent | cut -d"=" -f2`
-                       type=`grep PHYSDEVBUS= /sys/class/net/$card/uevent | cut -d"=" -f2`
-                       description=`echo $type: $driver`
+                       #check if this not a bridge
+                       if [ ! -e /sys/class/net/$card/brforward ]; then
 
-                       #Get more details for pci and usb devices
-                       if [ "$type" == "pci" ]; then
-                               slotname=`grep PCI_SLOT_NAME= /sys/class/net/$card/device/uevent | cut -d"=" -f2`
-                               name=`lspci -s $slotname | cut -d':' -f3`
-                               description=`echo $type:$name`
-                       fi
-                       if [ "$type" == "usb" ]; then
-                               bus=`grep DEVICE= /sys/class/net/$card/device/uevent | cut -d"/" -f5`
-                               dev=`grep DEVICE= /sys/class/net/$card/device/uevent | cut -d"/" -f6`
-                               #work around the base8 convert
-                               let bus=`echo 1$bus`-1000
-                               let dev=`echo 1$dev`-1000
-                               name=`lsusb -s $bus:$dev | cut -d':' -f3`
-                               description=`echo $type: $name`
-                       fi
+                               #Check if mac is valid (not 00:00... or FF:FF...)
+                               if [ ! "$hwaddr" == "00:00:00:00:00:00" ];then
+                               if [ ! "$hwaddr" == "ff:ff:ff:ff:ff:ff" ];then
 
-                       echo desc: \"$description\"  >>/var/ipfire/ethernet/scanned_nics
-                       echo driver: $driver         >>/var/ipfire/ethernet/scanned_nics
-                       echo network.hwaddr: $hwaddr >>/var/ipfire/ethernet/scanned_nics
-               fi
+                                       driver=`grep DRIVER= /sys/class/net/$card/device/uevent | cut -d"=" -f2`
+                                       type=`grep MODALIAS= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d":" -f1`
+
+                                       #Default if not available in /sys/class/net
+                                       if [ "a$type" == "a" ]; then
+                                               type="???"
+                                       fi
+                                       if [ "a$driver" == "a" ]; then
+                                               driver="Unknown Network Interface ($card)"
+                                       fi
+                                       description=`echo $type: $driver`
+
+                                       #Get more details for pci and usb devices
+                                       if [ "$type" == "pci" ]; then
+                                               slotname=`grep PCI_SLOT_NAME= /sys/class/net/$card/device/uevent | cut -d"=" -f2`
+                                               name=`lspci -s $slotname | cut -d':' -f3 | cut -c 2-`
+                                               description=`echo $type: $name`
+                                       fi
+                                       if [ "$type" == "usb" ]; then
+                                               bus=`grep DEVICE= /sys/class/net/$card/device/uevent | cut -d"/" -f5`
+                                               dev=`grep DEVICE= /sys/class/net/$card/device/uevent | cut -d"/" -f6`
+                                               #work around the base8 convert
+                                               let bus=`echo 1$bus`-1000
+                                               let dev=`echo 1$dev`-1000
+                                               name=`lsusb -s $bus:$dev | cut -d':' -f3 | cut -c 6-`
+                                               description=`echo $type: $name`
+                                       fi
+
+                                       echo desc: \"$description\"  >>/var/ipfire/ethernet/scanned_nics
+                                       echo driver: $driver         >>/var/ipfire/ethernet/scanned_nics
+                                       echo network.hwaddr: $hwaddr >>/var/ipfire/ethernet/scanned_nics
+                               fi
+                               fi
+                       fi
                fi
        fi
 done