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 expansion-rom-version: 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
On SLES
# hwinfo --network | grep Driver | sort | uniq Driver Modules: "igb" Driver: "igb"
On RHEL 7
Next is 'lshw' utility, if this is not available you can get this from the Red Hat repo.
# rpm -qf /usr/sbin/lshw lshw-B.02.18-7.el7.x86_64 # lshw -c network *-network:0 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