Intel I225/I226 igc驱动在Synology设备上的完整指南
项目概述
Intel I225/I226 igc驱动项目是专为Synology DiskStation Manager (DSM)系统设计的网络驱动程序,支持Kernel 4.4.180版本。该项目从Linux Kernel v5.12版本中反向移植而来,为Synology设备提供了对Intel 2.5G以太网控制器的完整支持。
项目架构
核心源代码结构
项目采用模块化设计,主要源代码文件包括:
- igc_main.c - 驱动主模块,负责设备初始化和核心功能
- igc_mac.c - MAC层控制实现
- igc_i225.c - I225/I226系列网卡专用功能
- igc_base.c - 基础功能模块
- igc_nvm.c - 非易失性存储器管理
- igc_phy.c - PHY层控制
- igc_diag.c - 诊断功能
- igc_ethtool.c - ethtool工具支持
- igc_ptp.c - 精确时间协议支持
- igc_dump.c - 调试信息输出
- igc_tsn.c - 时间敏感网络支持
预编译模块目录
在igc/releases目录下提供了多个平台的预编译驱动模块:
- igc-apollolake.tgz
- igc-broadwell.tgz
- igc-broadwellnk.tgz
- igc-denverton.tgz
- igc-geminilake.tgz
- igc-v1000.tgz
- igc-r1000.tgz
- igc-epyc7002.tgz
兼容设备列表
项目已更新了大部分I225/I226网卡的PCI ID,所有I225/I226网卡应该都能正常工作。
| 主板型号 | 网卡版本 | 设备ID | 端口数 | 固件版本 |
|---|---|---|---|---|
| UGREEN DX4600 | I225-V B3 | 8086:15F3 | 2 | 1057:8754 |
| ROG MAXIMUS XIII HERO | I225-V B3 | 8086:15F3 | 2 | 1057:8754 |
| CW N5105-N6005-6SATA | I226-V | 8086:125C | 4 | 2014:8877 |
构建方法
Docker容器构建(推荐)
使用Docker环境进行构建,确保编译环境的一致性:
# 创建输出目录
mkdir -p output
# 设置平台参数(根据您的设备选择)
# 可用平台:apollolake, broadwell, broadwellnk, denverton, geminilake, v1000
PLATFORM=geminilake
# 执行Docker构建
docker run -u 1000 --rm -t -v "${PWD}":/input -v "${PWD}/output":/output fbelavenuto/syno-compiler compile-module ${PLATFORM}
构建完成后,在output目录下会生成igc.ko驱动模块文件。
Synology开发环境构建
环境准备
参考Synology官方文档设置开发环境,假设工作目录为/synology-toolkit。
进入chroot环境
sudo chroot /synology-toolkit/build_env/ds.geminilake-7.1
克隆源代码
cd /usr/src/
git clone https://gitcode.com/gh_mirrors/sy/synology-igc
构建模块
cd /usr/src/synology-igc/
make -C /usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.1/build M=$PWD modules
驱动加载步骤
查找I225/I226 PCI设备
首先确认网卡设备信息:
lspci | grep -i intel
输出示例:
03:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)
加载驱动模块
# 加载驱动并启用调试日志
insmod igc.ko debug=16
# 设置驱动覆盖
echo igc > /sys/bus/pci/devices/0000:03:00.0/driver_override
# 探测设备
echo 0000:03:00.0 > /sys/bus/pci/drivers_probe
# 启用网络接口
ip link set up eth1 # 根据实际情况调整网卡名称
版本历史
1.3.1 (2022.11.26)
- 更新ethtool版本
1.3.0 (2022.11.23)
- 修复释放页面时页面引用计数不减少的问题
1.2.8 (2022.11.17)
- 修复IGC_RING_FLAG_RX_3K_BUFFER设备的页面泄漏问题
1.2.3 (2022.11.16)
- 支持设备ID为8086:125C的i226网卡,固件版本:2014:8877
- 移除phy->type检查
- 移除_I_PHY_ID检查
1.2.1 (2022.11.03)
- 修复调度时出现原子操作的BUG
- 添加新的设备ID I226_LMVP
- 修复PTM激活时挂起的问题
已知问题
目前项目没有已知的重大问题,所有I225/I226网卡都应该能正常工作。
后续开发计划
- 流量控制(tc)支持
- 启用内部i225 PPS功能
注意事项
- 在加载驱动前,请确保目标设备已正确识别
- 调试模式可以通过debug参数控制,建议在生产环境中关闭调试输出
- 如果遇到兼容性问题,请检查设备ID是否在支持列表中
- 建议在测试环境中验证驱动功能后再部署到生产环境
该项目为Synology设备用户提供了完整的Intel 2.5G网卡支持解决方案,通过灵活的构建选项和详细的部署指南,确保用户能够顺利地在各种Synology平台上使用高性能的网络设备。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



