当前位置:首页 > Linux > 正文

Linux内核网卡支持查询指南

查看Linux内核支持的网卡方法:,1. 使用 lspci -k 查看已安装网卡型号及加载的内核驱动。,2. 使用 dmesg | grep -i ethernet 检查内核启动时识别的网卡及驱动加载信息。,3. 查阅内核文档 /lib/modules/$(uname -r)/modules.alias/usr/share/hwdata/pci.ids 获取支持的硬件ID列表。

使用 lspci 查看已识别网卡

原理:列出所有PCI设备(包括网卡),通过驱动信息判断内核支持状态。
步骤

lspci -v | grep -i "network|ethernet" -A 10

输出关键字段

  • Kernel driver in use: 显示e1000er8169等表示驱动已加载(内核支持)。
  • Kernel modules: 列出兼容的驱动模块(如igb)。
    示例

    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (14) I219-V
      Subsystem: Lenovo Device 22be
      Kernel driver in use: e1000e  # 表示内核已支持
      Kernel modules: e1000e

通过 dmesg 检查内核日志

原理:查看系统启动和硬件检测日志中的网卡记录。
命令

dmesg | grep -i "eth|network|firmware"

典型成功输出

[    5.220155] r8169 0000:03:00.0 eth0: RTL8168h/8111h, 00:11:22:33:44:55
[    5.220300] r8169 0000:03:00.0 eth0: jumbo features [frames: 9200 bytes ...]

故障线索:出现unrecognized devicefirmware not found表示驱动缺失或固件问题。


查询 /sys 文件系统

原理sysfs虚拟文件系统暴露硬件和驱动关联信息。
操作

Linux内核网卡支持查询指南  第1张

# 查看所有网络接口
ls /sys/class/net/
# 检查指定网卡驱动状态
cat /sys/class/net/eth0/device/uevent | grep DRIVER

输出示例

DRIVER=e1000e  # 驱动名称即内核支持模块

使用 ethtool 获取网卡详情

原理:专用于查询和配置网卡的工具。
步骤

ethtool -i eth0  # 替换eth0为实际接口名

关键字段

  • driver: 驱动名称(如ixgbe
  • firmware-version: 固件版本
  • supports-statistics: 功能支持列表

检查内核模块状态

适用场景:验证驱动是否已加载或可用。
命令

# 查看已加载模块
lsmod | grep -i "net|eth"
# 查询模块信息(以e1000e为例)
modinfo e1000e | grep "description|version"

输出示例

description:    Intel(R) PRO/1000 Network Driver
version:        5.15.0-78-generic

查阅官方内核文档

路径

/usr/src/linux-headers-$(uname -r)/Documentation/networking/

关键文件

  • device_drivers/:厂商驱动文档(如intel-e100.rst
  • supported_devices.txt:历史设备支持列表(部分内核版本提供)

在线文档
Linux内核网络设备文档


硬件检测工具

推荐工具

  • lshw
    sudo lshw -class network

    输出包含configuration: driver=...字段。

  • hwinfo
    sudo hwinfo --netcard

总结建议

场景 推荐方法
快速检查当前网卡状态 lspci + ethtool
驱动加载失败诊断 dmesg + /sys文件系统
开发或深度兼容性验证 内核文档 + 模块信息

重要提示

  • 部分网卡需额外固件(如iwlwifi无线驱动),缺失固件时,需安装linux-firmware包。
  • 若内核未内置驱动,可尝试DKMS编译安装官方驱动。
  • 企业级环境建议使用ELRepo或硬件厂商提供的驱动。

通过上述方法,您可系统性验证Linux内核的网卡支持状态,高效解决硬件兼容性问题。


引用说明

  • Linux内核文档(kernel.org)
  • lspci/ethtool工具手册页(man7.org)
  • PCI ID数据库(pci-ids.ucw.cz)
0