1. 认识RTL8111/RTL8168网卡与驱动现状
RTL8111和RTL8168是Realtek推出的千兆以太网控制器芯片,广泛应用于嵌入式设备和消费级主板。这两款芯片虽然型号不同,但驱动架构高度相似,内核中通常使用r8169驱动模块统一支持。我在多个嵌入式项目中发现,很多开发者第一次接触这类网卡时,常会遇到驱动识别或固件加载问题。
为什么内核要用r8169驱动来兼容?这得从Realtek的驱动策略说起。早期内核为每款网卡单独维护驱动,后来Realtek将多个型号的驱动代码合并优化,形成了现在的r8169通用驱动。实测在Linux 4.4及以上内核中,该驱动对RTL8111H/RTL8168H等新款芯片的支持已经相当完善。
不过要注意硬件版本差异。去年我在一块工业主板上就遇到过特殊情况:同样是RTL8168芯片,但硬件版本是G而非H,此时需要手动加载rtl8168g.fw固件文件。建议先用lspci命令确认硬件详情:
bash复制lspci -nnk | grep -i realtek
典型输出会显示类似"Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller"的信息,并列出当前绑定的内核驱动。如果显示"Kernel driver in use: r8169"说明驱动已加载,但可能还需要固件支持。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 内核驱动配置与编译实战
2.1 内核配置要点
进入内核配置菜单时,建议先通过make menuconfig的搜索功能快速定位配置项。按"/"键输入"RTL8169"会直接跳转到相关配置位置。关键配置路径如下:
code复制Device Drivers →
Network device support →
Ethernet driver support →
[*] Realtek devices
<M> Realtek 8169 gigabit ethernet support
这里有个实用技巧:如果找不到Realtek设备选项,可能是当前架构配置不完整。我遇到过x86架构下显示完整选项,但切换到ARM架构时部分选项消失的情况。这时需要检查以下
