当前位置:首页>Linux>【Linux系统】网卡驱动:瑞昱r8127.ko & 马威尔atlantic.ko

【Linux系统】网卡驱动:瑞昱r8127.ko & 马威尔atlantic.ko

  • 2026-09-10 13:29:06
【Linux系统】网卡驱动:瑞昱r8127.ko & 马威尔atlantic.ko

一、先定位 r8127 驱动 ko 文件路径

1、查找驱动源文件位置

modinfo r8127

执行后看filename:字段,就是 ko 真实路径,一般格式: /lib/modules/[内核版本]/extra/r8127.ko

2、快速示例查找命令

find /lib/modules -name "r8127.ko"

输出路径 = 驱动文件真实位置


二、复制驱动到 U 盘(sda/sde 外接 U 盘)

  1. 先挂载 U 盘
mkdir -p /mnt/usbmount /dev/sda1 /mnt/usb

用fdisk -l确认 U 盘分区名,不是 sda1 就替换成实际盘符

  1. 拷贝 ko 文件(把下面路径替换成 find 查到的真实路径)
cp /lib/modules/5.xx.x/extra/r8127.ko /mnt/usb/
  1. 安全卸载 U 盘
umount /mnt/usb

三、补充说明

  1. lsmod
    里 r8127 后面数字 = 驱动占用内存大小,0 代表没有应用挂载、可直接卸载 / 拷贝;
  2. 若需要连带驱动依赖文件,打包整个驱动目录:
tar -zcvf r8127_driver.tar.gz /lib/modules/(uname -r)/extracp /r8127/r8127.ko /lib/modules/(uname -r) -name r8127.ko

拷贝这台原生 ko 到故障机,即可直接加载。


三、附带提示

Could not chdir to home directory /home/ugreen: No such file or directoryrootfs 损坏导致用户家目录丢失,不影响驱动安装操作。

逐条拆解操作 & 逻辑

1、本机内核确认

Linux DXP4900-0A32 6.12.30+

当前机器内核 6.12.30+,和r8127.ko编译内核版本完全匹配,可以正常加载。

2、操作分步说明

① 驱动源文件在 /root/r8127/r8127.ko

/root目录存在r8127驱动文件夹。

② 把 r8127.ko 复制到系统标准驱动目录

cp -r /root/r8127/r8127.ko /lib/modules/6.12.30+/kernel/extra/
  • /lib/modules/6.12.30+/kernel/extra/
    :系统额外驱动存放目录,内核开机自动检索这个路径的 ko。
  • 复制后ls能看到目录里已经多出r8127.ko。

③ 更新内核驱动依赖索引

depmod -a

作用:更新modules.dep驱动依赖列表,让系统识别新增的 r8127 驱动。

④ 设置开机自动加载驱动

echo "r8127" >> /etc/modules-load.d/modules.conf

写入配置:系统开机自动modprobe r8127加载网卡,不用每次手动 insmod。

⑤ reboot 重启生效

reboot

重启后验证命令(开机后输入)

lsmod |grep r8127ip a

✅ 出现 r8127 模块 + eth 网口 = 永久安装成功。

补充关键点

  1. 之前驱动丢失根源:故障机内核 6.18.15 和 6.12.30 + 驱动版本不兼容 + rootfs 损坏
    ;
  2. 当前这台 6.12.30 + 机器操作全正确,驱动永久固化,重启不会丢
    。

Linux find 命令完整用法(批量查找文件 / 日志 / 库)

find命令用法:find /lib/modules -name "r8127.ko"

基础语法

find [搜索起始目录] [匹配条件] [执行动作]
  • 不写起始目录:默认从当前目录查找
  • 不写匹配条件:输出目录下所有文件、子文件夹

一、基础查找(按名称搜索,最常用)

1. 精确匹配文件名

# 在/根目录找pt_linux_x64程序find / -name "pt_linux_x64"# 当前目录找Cinebench.exefind . -name "Cinebench.exe"# /PerformanceTest目录找所有zip压缩包find /PerformanceTest -name "*.zip"

2. 忽略大小写 -iname

# 不区分大小写找cinebench相关文件find ~ -iname "*cinebench*"

二、按文件类型过滤 -type

参数:

  • f
    :普通文件(exe、deb、txt、压缩包)
  • d
    :文件夹目录
  • l
    :软链接
  • s
    :socket 文件

示例:

# 只查找文件夹find /root -type d -name "PerformanceTest"# 只找后缀.so库文件find /usr/lib -type f -name "*.so"# 查找所有.sh脚本文件find . -type f -name "*.sh"

三、按文件大小查找 -size

单位:c字节、kKB、MMB、GGB

# 查找大于1G的文件find /mnt -size +1G# 查找小于100MB的log日志find /var/log -size -100M# 等于10KB的文件find . -size 10k

四、按时间筛选(日志 / 临时文件清理)

1. 访问时间 -atime

# 7天内访问过的文件find /root -atime -7# 超过30天没访问的文件find /tmp -atime +30

2. 修改时间 -mtime(文件内容改动)

# 24小时内修改过的文件find . -mtime -1

3. 分钟级 -mmin

# 10分钟内新建/修改的文件find . -mmin -10

五、按权限 / 用户查找

# 查找777权限文件find / -type f -perm 777# 查找root用户创建的文件find /home -user root

六、搭配执行动作(核心实用功能)

1. -ls:列出文件详细信息(类似 ls -l)

find /PerformanceTest -name "*.deb" -ls

2. -delete:批量删除匹配文件(谨慎使用!)

# 删除所有.log临时日志find . -name "*.log" -delete# 删除tmp下7天未访问文件find /tmp -atime +7 -delete

3. -exec 对查找结果执行自定义命令

格式:-exec 命令 {} \;{} = 匹配到的文件路径占位符

# 找到deb包,批量安装find /PerformanceTest/lib -name "*.deb" -exec dpkg -i {} \;# 找到exe文件,赋予执行权限find . -name "*.exe" -exec chmod +x {} \;# 查找so库,打印依赖lddfind . -name "*.so" -exec ldd {} \;

4. -ok:带确认的 exec(删除前弹窗确认,安全)

find . -name "*.tmp" -ok rm {} \;

七、常用组合实战(适配你 NAS 测试场景)

场景 1:查找所有崩溃日志 BugReport.txt

find /root -name "BugReport.txt" -ls

场景 2:批量清理测试临时文件

find /PerformanceTest -name "*.tmp" -delete

场景 3:查找缺失依赖,批量查看 so 库

find /usr/lib /lib -name "libncurses*.so" -ls

场景 4:查找所有 sysbench、pt_linux 测试程序

find / -type f -name "sysbench" -o -name "pt_linux_x64"

场景 5:过滤排除目录(不搜索 /sys/proc 系统目录)

find / -path /sys -prune -o -path /proc -prune -o -name "cinebench*" -print

八、补充参数

  1. -maxdepth n
     限制搜索层级(避免递归过深)
# 只搜索当前目录一级,不进子文件夹find . -maxdepth 1 -name "*.zip"
  1. -o
     多条件或匹配
# 找zip或deb文件find . -name "*.zip" -o -name "*.deb"
  1. -and
     多条件同时满足
# 大于100M且是压缩包find /mnt -size +100M -and -name "*.zip"

Linux 查看网卡驱动全套命令(Debian/Ubuntu NAS 适用,按实用优先级排序)

前置:先查看本机网卡名称

先执行这条,获取所有网卡设备名(eth0/enp2s0/enxxxxx)

ip addr

输出示例:eth0、enp0s31f6 就是网卡名,下面命令替换成你的网卡名称即可。

方法 1:ethtool(最推荐,直接输出驱动名 + 版本 + 固件)

1. 先安装工具(Debian 默认不带)

apt install ethtool -y

2. 查看单网卡完整驱动信息

# 替换eth0为你自己的网卡名ethtool -i eth0

输出字段说明:

driver: r8169        # 网卡驱动模块名version: 6.0.5.10    # 驱动版本号firmware-version: 03.01bus-info: 0000:01:00.0 # PCI硬件地址

方法 2:lspci -k(无需额外安装,查看 PCI 网卡 + 绑定驱动)

查看所有以太网硬件 + 对应驱动

lspci -k | grep -A 5 -i ethernet

输出解读:Kernel driver in use: xxx 就是当前正在使用的驱动

01:00.0 Ethernet controller: Realtek RTL8125 2.5GbE        Kernel driver in use: r8169        Kernel modules: r8169

方法 3:lsmod 查看已加载的网卡驱动内核模块

列出系统所有已加载驱动,过滤网卡相关模块

lsmod | grep -E "r8169|e1000|igb|ice|tg3"
  • r8169:瑞昱 Realtek 网卡(最常见 2.5G / 千兆)
  • e1000e:Intel 桌面千兆网卡
  • igb:Intel 服务器千兆网卡
  • ice/i40e:Intel 万兆网卡

方法 4:modinfo 查看驱动模块详细源码 / 作者 / 参数

拿到驱动名后(比如 r8169),查看完整驱动详情

modinfo r8169

能看到:版本、源码路径、支持硬件列表、驱动参数。

方法 5:lshw 一次性输出全部网卡完整硬件 + 驱动

安装

apt install lshw -y

执行

lshw -class network

会打印:网卡型号、厂商、驱动名、速率、MAC 地址全套信息。

方法 6:/sys 底层文件查看(纯内核原生,无需工具)

# 替换eth0为你的网卡ls -l /sys/class/net/eth0/device/driver

输出示例:driver -> ../../../bus/pci/drivers/r8169,末尾就是驱动名。

方法 7:dmesg 开机日志,查看驱动加载日志

dmesg | grep -i eth# 或者过滤驱动dmesg | grep r8169

可以看到开机时驱动初始化、协商速率、报错日志(排查网卡丢包 / 断线专用)。

实操完整流程(NAS 快速排查步骤)

  1. 看网卡名:ip addr
  2. 查驱动名 + 版本:ethtool -i eth0
  3. 查驱动模块详情:modinfo r8169
  4. 看开机有无驱动报错:dmesg | grep eth0

常见网卡驱动对应型号

表格

驱动名
网卡芯片
r8169
Realtek RTL8111/RTL8125 千兆 / 2.5G
e1000e
Intel I219/I217 桌面千兆
igb
Intel I350/I210 服务器千兆
i40e/ice
Intel X710/E810 万兆
ax88792

USB 外置网卡

Marvell(马威尔)网卡 Linux 驱动完整手册

一、Marvell 网卡主流驱动模块对应芯片(区分 PCI 独立网卡 / ARM 内置 SoC / 交换机)

1. PCIe Yukon 系列台式 / 服务器千兆网卡(最常见 x86 NAS 主板 Marvell 网卡)

驱动名:skge(Yukon-2 / 88E8053/8056/8058/8070 千兆 PCIe)

  • 老内核 2.6 早期叫sk98lin,新版内核统一合并为skge
  • 适用:PC 主板自带 Marvell 千兆、独立 Marvell PCIe 网卡

2. ARM 架构 NAS / 路由器内置 Marvell 以太网(你绿联 DXP 系列 ARM 设备常用)

  1. mv643xx_eth
    :老款 Orion/Kirkwood ARM SoC(88F6281/88F6282 老 NAS)
  2. mvneta
    :Armada 370/38x/XP 新一代 ARM 内置 MAC(新款 Marvell ARM NAS 主流)
  3. mvpp2
    :Armada 375/7040 多口千兆 / 2.5G 内置网卡

3. Marvell 交换机芯片(多网口 NAS 内置 88E6xxx 交换芯片)

驱动:mv88e6xxx + DSA 子系统,管理多网口 VLAN、链路聚合

4. Marvell 万兆网卡

  • mvli2
    :Marvell 88X3120/88X3310 万兆电口
  • axgbe
    :新款 Marvell 10G/25G 万兆光纤网卡

二、第一步:先查看本机 Marvell 网卡型号 + 当前驱动

1. 查看所有以太网控制器,筛选 Marvell 硬件

lspci | grep -i marvell# 同时打印绑定驱动lspci -k | grep -A5 -i marvell

输出示例(skge 驱动):

01:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller        Kernel driver in use: skge        Kernel modules: skge

2. ethtool 查看驱动版本、固件、总线信息(推荐)

# 先看网卡名 ip addrethtool -i eth0

输出关键字段:

driver: skgeversion: 1.14firmware-version: 1.0.1bus-info: 0000:01:00.0

3. 查看驱动模块详情(确认支持芯片)

modinfo skge# 替换skge为你查到的驱动名 mvneta / mvli2

4. 查看驱动是否加载成功

lsmod | grep -E "skge|mvneta|mvli2|mv643xx"

三、Debian/Ubuntu 安装 / 加载 Marvell 驱动

1. 内核自带开源驱动(绝大多数场景无需手动编译)

Linux 5.x/6.x 内核原生内置 skge、mvneta、mv88e6xxx,系统自动识别,缺少固件才会异常。 安装固件包:

apt updateapt install firmware-misc-nonfree -y

该包包含 Marvell 网卡 PHY 固件,解决网卡识别不到、协商速率异常。

2. 驱动手动加载 / 卸载

# 加载skge驱动modprobe skge# 卸载驱动rmmod skge

3. 开机自动加载驱动(驱动未自动绑定网卡时)

echo "skge" >> /etc/modulesupdate-initramfs -ureboot

四、Marvell 网卡常见故障排查

  1. 网卡识别不到、只有 lo 回环网卡
    • 缺失固件:安装firmware-misc-nonfree;
    • 内核未开启 Marvell 驱动模块,需重新编译内核开启CONFIG_SKGE/CONFIG_MVNETA。
  2. 只能跑 100M,无法协商千兆
    # 查看协商状态ethtool eth0
      排查网线、PHY 固件版本,升级固件包。
  3. 大量丢包、断流
     调整驱动中断聚合参数:
    ethtool -C eth0 rx-frames 32 tx-frames 32
  4. ARM mvneta 驱动满载降速 开启性能调频,关闭节能:
    cpupower frequency-set -g performance

五、快速区分 x86 PC 与 ARM NAS 驱动

表格

设备类型
Marvell 芯片
驱动名
x86 台式 / NAS PCIe 千兆
88E8056/8058
skge
ARM 老款 Kirkwood NAS
88F6282
mv643xx_eth
ARM 新款 Armada NAS
388/7040
mvneta / mvpp2
Marvell 万兆电口网卡
88X3310
mvli2
多口交换芯片
88E6320/6352
mv88e6xxx

六、实操完整排查流程

  1. 识别硬件:lspci | grep -i marvell
  2. 确认当前驱动:lspci -k | grep -A5 marvell
  3. 查看驱动版本 / 固件:ethtool -i eth0
  4. 补全固件:apt install firmware-misc-nonfree
  5. 重启重新加载驱动:update-initramfs -u && reboot

复制 atlantic 网卡驱动完整操作(你的 AQC113 万兆网卡)

一、先找到驱动文件路径

1. 查询驱动模块完整路径

modinfo atlantic

输出里 filename: 就是驱动 .ko 文件真实路径,示例:

filename:       /lib/modules/6.1.0-xx-amd64/kernel/drivers/net/ethernet/aquantia/atlantic/atlantic.ko

2. 快速提取路径(一键输出)

modinfo atlantic | grep filename | awk '{print (modinfo atlantic | awk '/filename/ {print (dirname 2}'))# 复制整个atlantic驱动文件夹到/root/drivercp -r (uname -r)/kernel/drivers/net/ethernet/aquantia/# 还原固件cp -r /root/driver/firmware/aquantia /lib/firmware/# 更新内核引导缓存update-initramfs -u# 加载驱动modprobe atlantic

五、补充常用操作

  1. 打包驱动方便传输
tar -zcvf atlantic_driver.tar.gz /root/driver
  1. 验证复制后的驱动是否完好
# 检查模块合法性modinfo /root/driver/atlantic/atlantic.ko
  1. 卸载原有驱动再加载新复制的
rmmod atlanticmodprobe atlantic

最新文章

随机文章