How to find ethernet network card firmware and driver information in Linux

Based n the Linux Variant you use the commands and their output may differ. I have worked on Red hat Enterprise Linux and SuSE Enterprise Linux and below commands and method have been really very useful to get the driver and firmware details of the Ethernet Network Card connected to the system
I prefer using the OS provided tools and not some other third party tools because just to get the NIC driver and firmware version I don't want to go through all browsing, download, getting over my firewall, copying to my blade (as in office environment generally we don't have internet access to our Linux blades) when we already have bunch of OS provided tools which can be used for this purpose.
Below command can be used on both SuSE and RHEL which has two different sections with separate firmware and driver version details.

# ethtool -i eth0
driver: be2net
version: 11.2.1263.16
firmware-version: 11.2.1263.19
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: no
supports-priv-flags: yes

Based on the driver name you get from the above command you can get more details on the module it is using from below command

# modinfo be2net
filename:       /lib/modules/3.10.0-693.5.2.el7.x86_64/weak-updates/be2net/be2net.ko
supported:      external
license:        GPL
author:         Emulex Corporation
description:    Emulex OneConnect NIC Driver 11.2.1263.16
version:        11.2.1263.16

Few more examples on a hardware with different Ethernet Network card

# ethtool -i eth0
driver: igb
version: 5.2.15-k
firmware-version: 2.1.5
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes

Similarly for igb module

# modinfo igb
filename:       /lib/modules/3.0.101-100-default/kernel/drivers/net/ethernet/intel/igb/igb.ko
version:        5.2.15-k
license:        GPL
description:    Intel(R) Gigabit Ethernet Network Driver
author:         Intel Corporation, 

Below are some more commands you can use to get the NIC firmware and driver related details and information

# hwinfo --network | grep Driver | sort | uniq
  Driver Modules: "igb"
  Driver: "igb"

Next is 'lshw' utility, if this is not available you can get this from the Red Hat repo.


This is available on Red Hat Enterprise Linux
# rpm -qf /usr/sbin/lshw
# lshw -c network
       description: Ethernet interface
       product: OneConnect NIC (Skyhawk)
       vendor: Emulex Corporation
       physical id: 0
       bus info: pci@0000:06:00.0
       logical name: eth0
       version: 10
       serial: 00:17:a4:77:00:0e
       size: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msix pciexpress vpd bus_master cap_list rom ethernet physical autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=be2net driverversion=11.2.1263.16 duplex=full firmware=11.2.1263.19 latency=0 link=yes multicast=yes slave=yes speed=1Gbit/s
As you see here it also gives us enough detailed information about the available Ethernet Card with the firmware and driver version along with the driver name