从零设计PCIe千兆网卡:硬件选型、PCB布局与信号完整性实战
2026/8/1 17:34:42 网站建设 项目流程

1. 项目概述:一张PCIe转千兆以太网卡的诞生

最近在折腾一个老旧的工控机项目,主板上集成的网卡挂了,手头又没有现成的PCIe网卡。翻箱倒柜找到几颗RTL8111H千兆以太网PHY芯片和一颗PCIe转接芯片,一个念头就冒了出来:为什么不自己画一张PCIe转千兆以太网卡呢?说干就干,这个“PCIe TO Gigabit ETH Board (C)”项目就这么开始了。本质上,它就是一张基于PCIe接口的独立千兆以太网扩展卡,核心目标是将主板上的PCIe x1通道,通过一个桥接芯片,转换成一个标准的RJ45千兆网络接口。

这玩意儿听起来好像就是市面上几十块钱就能买到的成品,但自己动手从零设计的意义完全不同。首先,你能完全掌控板卡的尺寸、布局和接口定义,可以把它塞进一些非标尺寸的机箱里。其次,对于嵌入式开发或者特定工业场景,你可能需要定制化的网络功能,比如特定的MAC地址烧录、网络唤醒(WOL)配置,甚至是配合FPGA做网络数据包的直接处理,自己设计的板卡就提供了这样的底层硬件平台。最后,也是最重要的,整个过程是对高速数字电路设计、信号完整性、电源完整性以及PCIe协议、以太网PHY配置的一次绝佳实战演练。无论你是硬件工程师想练手,还是嵌入式软件开发者想深入理解网卡驱动与硬件的交互,这个项目都能让你收获满满。

2. 核心芯片选型与方案设计思路

一张网卡的核心,无非是“接口转换”和“网络收发”两大部分。对于PCIe转千兆以太网,市面上成熟的方案非常多,我们的设计思路就是在满足功能、保证稳定性的前提下,选择最经典、资料最丰富、最容易成功的组合。

2.1 桥接芯片:PCIe的“翻译官”

PCIe接口不能直接驱动以太网PHY,中间需要一个“翻译官”,这就是PCIe转接芯片,或者更专业地说,是PCIe to Gigabit Ethernet Controller。这类芯片内部集成了PCIe端点控制器、一个或多个以太网MAC(媒体访问控制)层,以及连接外部PHY的接口(通常是RGMII或SGMII)。

经过一番筛选,我最终选择了Realtek RTL8111H。没错,虽然RTL8111H常被用作独立的以太网控制器(即集成了MAC和PHY的芯片),但在很多自设计板卡中,我们也可以利用其成熟的PCIe接口和MAC层,将其配置为需要外接PHY的模式(当然,它本身也集成了PHY,但我们这里为了学习,先按外接PHY的思路来规划)。更纯粹和经典的桥接方案其实是像Intel I350Broadcom BCM5719这类芯片,但它们多为企业级产品,资料相对封闭,采购和调试门槛高。而Realtek的方案消费级资料多,Linux内核驱动支持完善,是DIY项目的首选。实际上,RTL8111系列芯片本身就是一个完整的PCIe千兆网卡解决方案,我们设计板卡,很大程度上是在为这颗芯片提供正确、稳定的工作环境。

注意:在正式设计中,如果你追求极简和低成本,完全可以直接使用RTL8111H(它内部已含PHY)的典型应用电路,设计出的就是最常见的独立网卡。但为了深入理解MAC与PHY的分离设计,本项目的思路会偏向于使用需要外接PHY的控制器(如RTL8111H的某些特殊配置模式,或选用其他如RTL8168等明确支持外接PHY的芯片),这增加了复杂性,也带来了更大的学习价值。

2.2 网络PHY芯片:信号的“调制解调器”

PHY芯片负责物理层的工作,简单说就是把MAC层出来的数字信号,转换成能在网线上传输的模拟信号,反之亦然。既然桥接芯片(或控制器)可能外接PHY,我们需要一颗千兆以太网PHY。这里我选择了Realtek RTL8211F。这是一个非常经典的单口千兆PHY,支持RGMII接口,与RTL8111H的MAC层接口兼容性好。选择它的理由很充分:数据手册公开易得,应用电路参考设计丰富,在消费级和工业级产品中经过海量验证,稳定性毋庸置疑。

RGMII(Reduced Gigabit Media Independent Interface)是连接MAC和PHY的标准接口之一。它采用双沿采样(DDR)技术,在125MHz时钟频率下,用每个时钟的上升沿和下降沿各传输一次数据,从而实现1Gbps的数据速率。理解RGMII的时序要求,是保证网卡稳定工作的关键。

2.3 整体方案架构与设计权衡

最终的方案框图在脑海中清晰起来:主板的PCIe x1插槽提供通道和供电,连接至我们的板卡。板卡上的核心是RTL8111H(作为PCIe端点兼MAC),它通过RGMII接口连接到RTL8211F PHY芯片。PHY芯片再通过网络变压器(Magnetics Module)耦合到RJ45接口上。此外,还需要为两颗芯片提供稳定、干净的电源,以及配置所需的无源元件(电阻、电容、晶振等)。

这里有几个关键的设计权衡点:

  1. 集成度 vs 学习深度:直接采用RTL8111H内置PHY的方案最简单,但为了彻底搞懂MAC-PHY分离架构、RGMII布线、阻抗匹配等知识,我选择了更复杂的“外置PHY”路径。这意味著更多的原理图设计、更复杂的PCB布局布线挑战,以及潜在的调试工作量。
  2. 时钟方案:PHY需要一颗25MHz的参考时钟。这个时钟可以由外部有源晶振提供,也可以由主芯片通过专用时钟引脚输出。为了保证时钟质量,降低抖动,我决定使用一颗独立的、高精度的25MHz有源晶振,同时为RTL8111H提供所需的100MHz或125MHz时钟(可能来自PCIe插槽的参考时钟,也可能需要另一颗晶振,需查具体芯片手册)。
  3. 电源树设计:PCIe插槽提供+3.3V和+3.3Vaux等电源。RTL8111H和RTL8211F通常需要多种电压,如3.3V的IO电压,1.0V或1.2V的核心电压,以及1.8V、2.5V等模拟电压。需要仔细阅读两片芯片的数据手册,设计一个由低压差线性稳压器(LDO)或开关电源(DC-DC)构成的电源网络,确保每路电源的电压、电流、纹波都满足要求。

3. 原理图设计核心要点与避坑指南

画原理图不是简单的连线游戏,每一个元器件的选择、每一个网络的连接,背后都有其电气特性和协议规范的要求。这一步是硬件设计的基础,基础不牢,地动山摇。

3.1 电源电路设计:稳定压倒一切

高速数字芯片对电源极其敏感。我的电源树设计如下:

  • 输入:来自PCIe金手指的+3.3V(主要功率来源)和+3.3Vaux(待机电源)。
  • 核心电压(1.0V/1.2V):这是芯片内部逻辑电路的工作电压,电流需求较大(可能达到几百mA),且对噪声敏感。我选用了一颗同步降压DC-DC转换器,例如TI的TPS54331。它的效率高,输出电流能力强,但开关噪声较大。因此,在布局时必须非常靠近芯片的电源引脚,输出滤波电路(π型滤波:电感+电容)要严格按照数据手册设计,后续PCB阶段还要在芯片电源引脚附近放置大量不同容值的去耦电容。
  • IO电压(3.3V/2.5V/1.8V):这些电压用于接口电平匹配。电流相对较小,但对纹波也有要求。我选用了低噪声LDO,如AMS1117系列或其升级型号。LDO噪声小,电路简单,但效率低,需要注意输入输出电压差带来的功耗和发热问题。例如,从3.3V降到1.8V,压差1.5V,如果IO电流100mA,那么LDO上就会消耗150mW的功率,需要评估散热。
  • PHY模拟电压:RTL8211F通常需要非常干净的2.5V或1.8V模拟电源用于内部PLL和模拟电路。这部分电源必须与数字电源隔离,通常采用磁珠(Ferrite Bead)或0Ω电阻进行单点连接,并在PHY芯片的模拟电源引脚附近布置高质量的滤波电容。

实操心得:务必为每一路电源网络都设计测试点(TP)。在调试阶段,用万用表和示波器测量这些测试点的电压和纹波,是排查电源问题最快的方法。纹波过大往往是系统不稳定的罪魁祸首。

3.2 PCIe接口电路:金手指与差分对的讲究

PCIe x1接口包含一组发送差分对(TXp/TXn)和一组接收差分对(RXp/RXn),以及参考时钟、复位、供电等信号。原理图部分相对直接,主要是正确连接金手指的定义。但这里有三个隐藏的坑:

  1. 金手指封装:PCB封装必须绝对准确。PCIe金手指有严格的尺寸和间距要求,我直接使用了EDA软件(如KiCad、Altium Designer)自带的PCIe x1连接器库,并反复核对机械尺寸图,确保能与主板插槽完美契合。
  2. 耦合电容:PCIe协议规定,差分信号线上必须串联交流耦合电容,容值通常在75nF到200nF之间,我选择了业界通用的100nF、0402封装的电容。这个电容必须放置在靠近金手指(发送端)的位置。对于我们的板卡(作为端点设备),TX差分对和RX差分对上都需要放置这个电容。
  3. PERST#信号:这是PCIe的复位信号,低电平有效。它需要上拉到3.3Vaux电源。上拉电阻的阻值会影响复位时序,通常选择10kΩ即可,但最稳妥的方法是查阅主板和芯片手册,或者参考公版设计。

3.3 RGMII接口与PHY连接:时序匹配是关键

这是原理图设计的另一个核心。RGMII接口包含以下主要信号:

  • TXD[3:0], TX_CTL, TX_CLK:MAC发送给PHY的数据、控制信号和时钟。
  • RXD[3:0], RX_CTL, RX_CLK:PHY发送给MAC的数据、控制信号和时钟。
  • MDC/MDIO:管理接口,用于配置PHY芯片的内部寄存器(设置工作模式、自协商、读取状态等)。

连接看起来就是直接连线,但玄机在于:

  1. 时钟延迟匹配:标准的RGMII接口,数据信号(TXD/RXD, TX_CTL/RX_CTL)需要相对于时钟(TX_CLK/RX_CLK)有特定的建立和保持时间。为了简化设计,RGMII规范提供了一个“延迟模式”(RGMII ID),通过在时钟线上插入内部延迟来对齐时序。我们的RTL8211F和RTL8111H都支持这个模式。必须在原理图上体现这个配置:通常是通过将PHY芯片的某个特定配置引脚(如RXDLY_CFG, TXDLY_CFG)上拉或下拉到固定的电平(VDD或GND)来实现。我查阅了两颗芯片的数据手册,将相关引脚配置为启用内部延迟模式。
  2. MDIO上拉:MDIO是开漏双向信号线,必须在主机端(即RTL8111H侧)通过一个4.7kΩ或10kΩ的电阻上拉到3.3V IO电源,否则管理通信无法进行。
  3. 网络变压器接口:PHY芯片的模拟输出(TX+/TX-)和输入(RX+/RX-)直接连接到网络变压器(通常是一个集成了变压器和共模扼流圈的RJ45插座,俗称“带灯带变的网口”)。这里要注意变压器中心抽头的接法:通常需要接一个到模拟电源的滤波电路(电容+电阻),具体值参考变压器和PHY芯片的推荐电路。

4. PCB布局布线实战:从图纸到实物的跨越

如果说原理图是建筑的蓝图,那么PCB布局布线就是施工过程。对于高速数字电路,布局布线的质量直接决定了项目的成败。

4.1 层叠结构与阻抗控制

我决定使用四层板设计,这是兼顾成本和性能的最佳选择。层叠结构设计如下:

  • Top Layer(顶层):主要放置关键芯片(RTL8111H, RTL8211F)、晶振、去耦电容、以及大部分信号线,特别是RGMII和PCIe差分对。
  • Inner Layer 1(内层2):完整的GND平面。为顶层和底层的高速信号提供最短的返回路径,这是抑制电磁干扰(EMI)和保证信号完整性的生命线。
  • Inner Layer 2(内层3):完整的电源平面。分割为3.3V、1.0V、1.8V、2.5V等多个区域,为不同电压需求的芯片供电。
  • Bottom Layer(底层):放置相对不敏感的无源器件(如电阻、较大的电容)、电源芯片、以及一些低速信号线(如配置电阻、LED指示灯)。

阻抗控制是必须考虑的。PCIe差分对的特性阻抗要求是100Ω ±10%,RGMII单端信号线的特性阻抗通常是50Ω。在PCB加工时,需要向板厂提供层叠结构(板材型号、每层厚度、铜厚)和目标阻抗值,板厂会计算出对应的线宽线距。对于四层板,PCIe差分对通常走在顶层,参考内层的GND平面,通过调整差分对的线宽和间距来达到100Ω差分阻抗。

4.2 关键区域布局策略

  1. 芯片与去耦电容:RTL8111H和RTL8211F是核心。我将它们放置在板子中央偏上的位置,两者尽量靠近以减少RGMII走线长度。去耦电容的摆放是重中之重:每个电源引脚附近(最好是背面,即芯片正下方)都必须放置一个0.1uF的陶瓷电容(0402封装),用于滤除高频噪声。同时,在芯片的电源入口处,还要并联一个10uF或更大的钽电容或陶瓷电容,用于应对低频电流突变。所有去耦电容的GND过孔必须尽可能靠近电容的接地端,并且直接打到内层的GND平面,形成最短的回路。
  2. 时钟电路:25MHz有源晶振被视为噪声源。我将其放置在靠近PHY芯片的时钟输入引脚处,并用一个完整的GND铜皮将其包围起来,与其他高速信号区域隔离。晶振的输出走线要尽量短、粗,并用地线进行包边屏蔽。
  3. 电源芯片布局:DC-DC开关电源(如TPS54331)是另一个噪声大户。其电感、输入输出电容必须严格按照数据手册的推荐布局,形成紧凑的功率环路。这个区域要远离敏感的模拟电路(如PHY的模拟部分)和时钟信号。

4.3 高速信号布线规则

  1. PCIe差分对
    • 走线尽可能短、直。避免使用90度直角拐弯,改用45度角或圆弧走线。
    • 差分对内的两条线(P和N)必须严格等长,长度误差控制在5mil(0.127mm)以内。这可以通过EDA软件的“差分对等长”功能来实现。
    • 保持差分对与其他信号线(尤其是时钟线)的间距至少为线宽的3倍(3W原则),以减少串扰。
    • 尽量避免换层。如果必须换层,要在换层过孔附近放置地孔,为返回电流提供通路。
  2. RGMII信号
    • 虽然速率是125MHz DDR(等效250MHz),但也是高速信号。所有数据线(TXD[3:0], RXD[3:0])和控制线(TX_CTL, RX_CTL)应作为一组,进行组内等长处理。通常要求组内任意两条线的长度差不超过几百mil(例如500mil)。
    • 时钟线(TX_CLK, RX_CLK)非常重要,它们应该单独走线,并与其他信号线保持更大间距,且最好用地线隔离。
    • RGMII走线也应参考完整的GND平面,避免跨分割。
  3. 电源走线:对于大电流路径(如3.3V输入到DC-DC,DC-DC输出到芯片核心),走线要宽,或者用铺铜的方式。过孔数量要足够,以减小阻抗和压降。

完成布线后,一定要进行设计规则检查(DRC)和连通性检查,确保没有短路、断路,以及所有阻抗控制规则都已满足。

5. 打板、焊接与硬件调试实录

PCB文件发出去打样,一周后,绿色的板子到手。看着自己设计的作品从虚拟变成实体,成就感满满,但真正的挑战才刚刚开始。

5.1 焊接流程与技巧

我采用的是热风枪+烙铁的混合焊接法:

  1. 焊接电源芯片和LDO:首先焊接TPS54331和几个LDO。给焊盘上适量的锡膏,用热风枪均匀加热,看到芯片自动归位(由于表面张力)后停止加热。冷却后立即用万用表测量各引脚对地电阻,防止短路。
  2. 焊接主芯片:RTL8111H和RTL8211F都是QFN封装,底部有散热焊盘。这是难点。先在芯片底部的散热焊盘和PCB对应焊盘上涂抹少量锡膏(宁少勿多)。然后将芯片对准放好,用热风枪从上方和侧面均匀加热。看到四周引脚焊锡熔化且芯片轻微下沉后,用镊子轻轻推一下芯片边缘,若能回弹,说明焊接成功。切记不要用力按压,否则会导致引脚短路或芯片损坏。
  3. 焊接无源器件:剩下的电阻电容晶振等,用烙铁逐个焊接即可。注意有极性的电容(钽电容、电解电容)方向不要搞错。
  4. 检查与清理:焊接完成后,在强光下用放大镜仔细检查每一个焊点,特别是QFN芯片的四周引脚,看是否有桥连、虚焊。然后用洗板水和无尘布清洁板子上的助焊剂残留。

5.2 上电前检查与电源测试

在插入主板之前,必须进行裸板测试:

  1. 短路测试:用万用表蜂鸣档,测量所有电源网络(3.3V, 1.0V, 1.8V, 2.5V)与GND之间的电阻。正常情况下应该有几百欧姆甚至几千欧姆的阻值。如果电阻接近0欧姆,说明存在严重短路,必须排查。
  2. 上电测试:使用可调直流电源,限流100mA,电压调到3.3V,连接到板卡的PCIe金手指3.3V和GND引脚。观察电流读数。如果电流在几十mA范围内且稳定,说明没有明显短路。然后用手触摸各个芯片,感受是否有异常发热。如果某个芯片瞬间烫手,立即断电。
  3. 测量各电压:如果上电电流正常,用万用表测量各个LDO和DC-DC的输出电压是否与设计值一致(1.0V, 1.8V, 2.5V, 3.3V)。纹波可以用示波器交流耦合档位测量,最好控制在50mV以内。

5.3 上机功能测试与驱动加载

确认电源无误后,将板卡插入主板的PCIe x1插槽(确保主机已关机)。

  1. 开机识别:开机进入BIOS,或者直接启动到Linux系统。在Linux下,打开终端,输入命令lspci。如果你在列表中看到了“Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller”之类的设备,那么恭喜你,硬件已经被系统识别了!这是第一个里程碑。
  2. 驱动加载:现代Linux内核通常自带r8169驱动来支持Realtek系列网卡。系统一般会自动加载。你可以用lsmod | grep r8169查看驱动是否加载。用dmesg | grep -i ethdmesg | grep -i r8169查看内核日志,应该能看到网卡被识别并分配了网络接口名(如eth1, enp2s0)。
  3. 链路状态:用ethtool [接口名]命令查看链路信息。例如ethtool enp2s0。在输出中寻找“Link detected: yes”。如果显示“no”,说明物理链路没通。检查网线、网络变压器、PHY芯片配置。此时可以尝试用ethtool -s enp2s0 speed 1000 duplex full autoneg off强制设置速率和双工模式来测试。
  4. 网络配置与ping测试:给接口配置一个IP地址,例如sudo ip addr add 192.168.1.100/24 dev enp2s0,然后sudo ip link set enp2s0 up启用接口。最后,ping一下同一局域网内的其他设备(如路由器192.168.1.1)。如果能ping通,并且用iperf3测试能达到接近千兆的速率,那么整个硬件设计和基础功能就大功告成了!

6. 深度调试与性能优化经验

硬件能工作只是第一步,要稳定高效地工作,还需要进行深度调试和优化。这个过程会遇到各种各样的问题,也是学习收获最大的阶段。

6.1 常见问题排查速查表

问题现象可能原因排查思路与解决方法
lspci找不到设备1. PCIe金手指接触不良或焊接问题。
2. 主芯片(RTL8111H)未正常工作(电源、时钟、复位)。
3. PCIe差分对布线严重不合格,信号无法识别。
1. 用橡皮擦清洁金手指,检查焊接。
2. 测量芯片所有电源引脚电压是否正常;用示波器检查25MHz/100MHz时钟是否有波形且幅值、频率正确;检查PERST#复位信号在上电后的时序(应为低电平然后变高)。
3. 此为硬伤,需检查PCB设计。可尝试降低PCIe链路速度(在BIOS中设置Gen1)看能否识别。
驱动加载但链路不通(Link down)1. 网线或对端设备问题。
2. 网络变压器损坏或焊接不良。
3. PHY芯片(RTL8211F)未正确初始化。
4. RGMII接口时序问题,数据无法正确收发。
1. 更换网线,连接到确认正常的交换机口。
2. 检查变压器各引脚焊接,测量中心抽头电压。
3. 通过ethtool -p enp2s0让接口LED闪烁,看网口灯是否亮,初步判断PHY是否活动。用ethtool -d enp2s0dump PHY寄存器,检查关键寄存器(如控制寄存器、状态寄存器)的值是否正常。
4. 这是最难查的。需用示波器或逻辑分析仪抓取RGMII的时钟和数据线,看波形是否干净,时序是否符合规范。重点检查RGMII ID(内部延迟)模式是否已正确配置。
连接速率只有100M或10M1. 网线质量差,只支持低速率。
2. PHY自协商失败,降速工作。
3. RGMII某根数据线或时钟线信号质量差,导致误码率高,链路自动降速。
1. 使用Cat5e或以上标准网线。
2. 尝试用ethtool -s enp2s0 speed 1000 duplex full autoneg off强制千兆全双工。
3. 用示波器查看RGMII信号眼图,检查过冲、振铃、噪声是否在可接受范围。可能是阻抗不连续或串扰导致。
网络传输不稳定,丢包率高1. 电源纹波过大,导致芯片工作不稳定。
2. 信号完整性差(反射、串扰)。
3. 散热不良,芯片过热。
4. 驱动或系统设置问题。
1. 用示波器仔细测量各电源轨(尤其是1.0V核心电压)的纹波,重点检查DC-DC的输出滤波电容和布局。
2. 用网络分析软件(如ping -f进行洪水ping测试,或iperf3长时间测试)结合系统日志(dmesg)观察。同时用示波器监测电源和关键信号。
3. 触摸芯片温度,必要时增加散热片。
4. 尝试更新或回滚网卡驱动版本,调整中断合并参数等。

6.2 信号完整性初步分析与优化

在没有昂贵网络分析仪的情况下,我们可以用示波器进行一些基本的信号完整性检查:

  • 测量电源纹波:将示波器探头设置为10:1衰减,带宽限制打开(如20MHz),使用接地弹簧针(而不是长长的接地夹),直接点在芯片电源引脚附近的去耦电容上。观察波形,稳定的直流电源上叠加的交流噪声峰峰值应小于50mV(核心电压要求更严)。
  • 观察时钟信号:测量25MHz晶振输出和RGMII的125MHz时钟。波形应该是干净的正弦波或方波,上升/下降沿陡峭,没有明显的过冲、振铃或毛刺。过冲过大可能是阻抗不匹配导致,可以在信号线上串联一个小电阻(如22Ω)来阻尼。
  • 检查PCIe差分信号(可选):这需要高速示波器和差分探头。可以粗略看一下差分对上的信号幅度是否对称,有没有明显的失真。更专业的分析需要用到PCIe协议分析仪。

一个真实的踩坑案例:在第一批板卡测试时,发现网络传输大文件时偶尔会断流。用iperf3测试,吞吐量波动很大。用示波器检查1.0V核心电源,发现每当网络流量激增时,纹波会从正常的30mV飙升到150mV以上。问题根源是DC-DC输出滤波电容的容量不足,且布局时高频去耦电容(0.1uF)离芯片电源引脚太远。解决方案是:在芯片的电源入口处并联了两个大容量的低ESR陶瓷电容(22uF),并将几个0402封装的0.1uF电容直接放在芯片背面对应的电源引脚过孔上。改造后,纹波被控制在40mV以内,网络传输立刻变得稳定流畅。

6.3 驱动层与系统调优

硬件稳定后,还可以从软件层面进行微调,以适配特定应用场景。

  • 调整中断合并:高速网络会产生大量中断,消耗CPU资源。可以调整中断合并参数,让网卡积累一定数量的数据包或等待一段时间再产生一次中断。例如:sudo ethtool -C enp2s0 rx-usecs 100 rx-frames 32这表示最多等待100微秒或积累32个帧才产生一个接收中断。这对提升小包吞吐量很有帮助。
  • 启用巨帧(Jumbo Frame):如果是在局域网内进行大数据传输(如NAS),可以启用巨帧以减少协议开销。sudo ip link set enp2s0 mtu 9000。注意,网络中的所有设备(交换机、对端网卡)都需要支持并配置相同的MTU。
  • 优化TCP参数:对于高速网络,可以调整系统的TCP缓冲区大小。例如,在/etc/sysctl.conf中增加:
    net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 net.ipv4.tcp_rmem = 4096 87380 134217728 net.ipv4.tcp_wmem = 4096 65536 134217728
    然后执行sudo sysctl -p生效。

从一颗芯片的选型,到一张可以稳定工作的网卡,这个过程充满了挑战和乐趣。每一次示波器波形变得干净,每一次ping通的对端IP,都是对之前所有理论学习和工程实践的最佳反馈。这张自制的PCIe千兆网卡,其价值早已超出了它本身几十块钱的物料成本,它凝结的是对高速电路设计从懵懂到清晰的全过程理解。如果你也对此感兴趣,不妨拿起EDA软件,从绘制第一个原理图符号开始,踏上属于自己的硬件创造之旅。当你的设备在lspci列表中亮起的那一刻,你会明白这一切都是值得的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询