编译安装r8125.ko网络模块

编译出来的 r8125.ko 被“安装”到内核模块目录及注册到内核的模块依赖系统里,才支持重启后自动加载模块。


1. 正确安装模块

假设你已经在 r8125-x.x.x/ 源码目录下跑过 make,会生成 src/r8125.ko
你需要执行:

1
sudo make install

它会把 r8125.ko 复制到 /lib/modules/$(uname -r)/kernel/drivers/net/ 之类的目录。


2. 更新依赖关系

执行:

1
sudo depmod -a

这样 /lib/modules/$(uname -r)/modules.depmodules.alias 会更新,系统才知道有 r8125 这个驱动。


3. 自动加载驱动

  • 方式 1:依赖设备 ID 自动加载(推荐)
    如果 r8125.ko 里有 PCI ID 匹配(一般源码里有 MODULE_DEVICE_TABLE),那插着网卡重启后,内核 PCI 子系统会自动触发加载。

  • 方式 2:手动指定开机加载
    如果方式 1 不生效,可以手动写入:

    1
    echo "r8125" | sudo tee /etc/modules-load.d/r8125.conf

    这样开机 systemd 会主动加载。


4. 卸载内核自带冲突驱动(常见问题)

Ubuntu/Debian 默认可能带了 r8169 驱动,会和 r8125 冲突。
你需要屏蔽它:

1
2
3
echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf

sudo update-initramfs -u

👉 总结:
遇到的情况大概率是**编译出来的模块没有执行 make install + depmod**,所以重启后内核找不到驱动。

解决步骤:

1
2
3
4
5
6
7
cd r8125-x.x.x
sudo make clean
sudo make
sudo make install
sudo depmod -a

echo "r8125" | sudo tee /etc/modules-load.d/r8125.conf

🔥 然后重启,就会自动加载了。