Linux网卡驱动r8168源码编译与DKMS实战指南
简介这份资源面向在 CentOS 7内核 3.10环境下需要为 Realtek 网卡安装 r8168 驱动的运维与 Linux 学习者重点解决系统自带 r8169 驱动兼容性不佳、网卡无法正常识别或联网的问题。压缩包共 40 个文件约 1.37MB以 png、svg 等截图与图标素材为主辅以 js、css 页面脚本样式并包含 r8168-8.048.03.tar.gz 驱动源码包及一份 r8169 降级 r8168 的图文教程页面便于对照操作。资源围绕驱动解压、内核模块编译环境配置、gcc12 编译、模块加载与网卡状态验证等环节展开同时整理了编译报错、模块加载失败等常见问题的排查思路适合需要快速定位驱动版本匹配与编译环境依赖的读者参考。目前已有 272 人学习下载可作为 CentOS 7 网卡驱动安装与排错的实用资料。1. r8168-8.048.03.tar.gz 到底是什么一次网卡驱动源码包的拆解如果你在服务器机房或者工控现场做过系统部署大概率见过这个文件名r8168-8.048.03.tar.gz。它不是一个软件安装包也不是某个发行版自带的固件而是一份 Realtek RTL8168/8111 系列千兆以太网控制器的开源驱动源码压缩包。很多工程师第一次遇到它是因为装完系统后发现lspci能看到网卡但ip link里死活没有对应的网络接口或者接口存在却频繁丢包、速率协商不到 1000Mbps。这时候发行版自带的r8169驱动往往就是那个“背锅侠”——它虽然通用但对某些批次芯片的兼容性和省电特性处理得不够细而厂商提供的r8168驱动正是为了解决这些玄学问题而存在的。这个包的核心价值在于它绕开了内核自带驱动的通用逻辑直接针对 RTL8168 系列芯片的 PHY、MAC 和电源管理单元做定制化配置。适合谁用一是负责批量部署物理机的运维工程师二是做嵌入式 x86 工控机开发的底层软件人员三是任何被“网卡灯亮但网络不通”折磨过的系统集成者。接下来的内容我会把这个包从解压到编译、从参数调优到故障排查的完整路径拆开让你拿到一个 tar.gz 就能独立走通。2. 从源码包到可用驱动编译、安装与内核适配2.1 解压后先看什么目录结构与版本自检拿到r8168-8.048.03.tar.gz之后不要急着make。先解压并扫一眼顶层文件确认这个包是不是完整、有没有针对你当前内核的补丁文件。# 解压到当前目录生成 r8168-8.048.03 文件夹 tar -zxvf r8168-8.048.03.tar.gz # 进入源码目录 cd r8168-8.048.03 # 查看关键文件Makefile、README、src 目录 ls -l典型的输出里你会看到Makefile、README、src/目录以及一个dkms.conf如果打包者启用了 DKMS 支持。src/下面才是真正的驱动源码比如r8168_n.c、r8168.h、r8168_firmware.c等。这里有个血泪经验有些第三方重新打包的版本会删掉src里的固件数组文件导致编译通过但加载后网卡不工作。所以解压后第一件事是确认src/r8168_firmware.c是否存在且非空。# 检查固件文件大小正常应该有几十 KB wc -c src/r8168_firmware.c # 查看 Makefile 里定义的内核路径变量 grep -n KERNELDIR\|KVER Makefile | head -20逻辑说明wc -c用来快速判断固件文件是否被截断或替换成空文件。grep则是为了确认 Makefile 默认引用的内核源码路径是不是/lib/modules/$(uname -r)/build。如果不是你编译时就会遇到“找不到内核头文件”的报错。参数上-n显示行号head -20只看前 20 行避免刷屏。2.2 编译前的依赖检查与 Makefile 关键参数编译这个驱动不需要整个内核源码树但必须有当前运行内核的头文件包和构建工具。在主流发行版上缺东西的报错往往很隐晦所以提前装好最稳妥。# 以某常见发行版为例安装内核头文件和编译工具 # 注意内核版本必须与 uname -r 一致 sudo apt update sudo apt install -y build-essential linux-headers-$(uname -r) dkms如果你用的是另一套包管理体系的系统把apt换成对应的命令即可核心是拿到linux-headers-$(uname -r)。装完后进入源码目录直接make。# 清理可能残留的编译产物避免旧对象文件干扰 make clean # 开始编译输出会显示每个源文件的编译过程 make编译成功后当前目录下会生成r8168.ko。这个.ko文件就是最终要加载的内核模块。这里有个参数细节Makefile 里通常有CONFIG_ASPM和ENABLE_USE_FIRMWARE之类的开关。如果你在虚拟化环境或者某些定制主板上遇到网卡频繁掉线可以尝试在make时传入CONFIG_ASPMn来关闭 ASPM 电源管理。# 关闭 ASPM 重新编译适用于链路不稳定场景 make clean make CONFIG_ASPMn逻辑说明CONFIG_ASPMn会告诉驱动在初始化时不去使能 PCIe 的主动状态电源管理。很多工控机的 BIOS 对 ASPM 支持不完整开启后会导致网卡在低负载时进入 L1 状态却无法正常唤醒表现为“ping 着 ping 着就断了”。关闭它虽然会增加一点功耗但换来了链路稳定性。2.3 替换内核自带 r8169加载顺序与黑名单配置编译出r8168.ko只是第一步真正的坑在于系统默认已经加载了r8169它占着网卡设备不放。你必须先卸载r8169再加载r8168并且确保重启后顺序依然正确。# 查看当前网卡驱动占用情况 lsmod | grep -E r8168|r8169 # 如果 r8169 正在使用先卸载它 sudo modprobe -r r8169 # 加载新编译的 r8168 模块 sudo insmod ./r8168.ko # 再次确认驱动已切换 lsmod | grep r8168逻辑说明lsmod列出已加载模块grep过滤出两个竞争驱动。modprobe -r是安全卸载如果模块正在被网络接口使用会报“Module is in use”这时需要先ip link set 接口 down。insmod直接插入当前目录的.ko文件适合测试。但重启后会失效所以必须做持久化。# 将 r8169 加入黑名单防止开机自动加载 echo blacklist r8169 | sudo tee /etc/modprobe.d/blacklist-r8169.conf # 将 r8168 加入开机加载列表 echo r8168 | sudo tee -a /etc/modules # 把编译好的模块复制到内核模块目录并更新依赖 sudo cp r8168.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek/ sudo depmod -a参数说明blacklist文件里的r8169会让内核在启动时不自动加载它。/etc/modules里追加r8168则确保开机加载。depmod -a重建模块依赖关系让modprobe r8168能找到刚复制过去的文件。注意复制路径里的realtek目录如果不存在需要先mkdir -p创建。3. 驱动参数怎么调吞吐、中断与省电的平衡3.1 用 ethtool 看协商状态先确认物理层没翻车驱动加载成功、接口出现之后别急着测带宽。先用ethtool确认链路协商结果因为很多“驱动装了没用”的案例根源是网线质量差或者对端交换机端口强制了百兆。# 假设接口名为 enp3s0请根据 ip link 实际输出替换 sudo ethtool enp3s0 # 查看驱动详细信息包括固件版本和总线信息 sudo ethtool -i enp3s0ethtool enp3s0的输出里重点看三行Speed、Duplex、Link detected。正常千兆环境应该是Speed: 1000Mb/s、Duplex: Full、Link detected: yes。如果 Speed 显示100Mb/s先换网线、换交换机端口别怀疑驱动。ethtool -i则用来确认当前生效的驱动名是不是r8168以及固件版本号。如果这里显示的还是r8169说明黑名单没生效或者模块加载顺序不对。3.2 中断合并与队列长度降低高负载丢包的两个关键值在文件服务器或者高并发网关场景下默认的中断合并参数可能导致小包延迟抖动或者反过来中断太频繁把 CPU 吃满。r8168驱动暴露了几个可调参数通过ethtool -C和ethtool -G来改。# 查看当前中断合并设置 sudo ethtool -c enp3s0 # 关闭自适应中断合并手动指定收包和发包中断间隔微秒 sudo ethtool -C enp3s0 adaptive-rx off adaptive-tx off rx-usecs 64 tx-usecs 64 # 查看当前环形缓冲区大小 sudo ethtool -g enp3s0 # 将收包和发包环形队列调到最大减少高吞吐下的丢包 sudo ethtool -G enp3s0 rx 1024 tx 1024逻辑说明adaptive-rx off和adaptive-tx off关闭了驱动自动调整中断频率的功能改为固定值。rx-usecs 64表示收到包后最多等 64 微秒再产生中断这样可以把多个小包合并成一次中断处理降低 CPU 占用。ethtool -G调整的是网卡硬件环形缓冲区rx 1024意味着驱动可以一次性从网卡取走 1024 个描述符在高流量突发时不容易丢包。但要注意这些设置重启后会丢失需要写进开机脚本或者networkd的配置文件里。3.3 关闭无用卸载特性什么情况下反而要关掉 TSO/GSOTSOTCP Segmentation Offload和 GSOGeneric Segmentation Offload通常能提升大包发送效率但在某些虚拟化桥接或者抓包分析场景下它们会让tcpdump抓到超过 MTU 的“巨包”干扰判断。# 查看当前卸载特性状态 sudo ethtool -k enp3s0 # 关闭 tcp-segmentation-offload 和 generic-segmentation-offload sudo ethtool -K enp3s0 tso off gso off # 如果做网桥或软交换通常还需要关闭 gro sudo ethtool -K enp3s0 gro off参数说明-k是查看-K是修改。tso off让协议栈自己分段而不是交给网卡。gro off关闭收包方向的通用接收卸载避免网卡把多个小包合并后交给协议栈导致基于包数的监控统计失真。这些开关没有绝对的对错取决于你的业务是追求吞吐还是追求可观测性。4. 避坑与排查r8168 驱动最常见的五个翻车现场4.1 编译报错 “implicit declaration of function”现象make过程中出现大量警告最后报错error: implicit declaration of function ‘...’通常涉及pci_alloc_consistent或init_timer之类的内核 API。原因这个驱动包的代码写于较早的内核版本而你的系统内核可能已经升级到 5.x 甚至 6.x部分内核函数签名变了或者被移除了。r8168-8.048.03虽然版本号不低但面对滚动更新的发行版仍然可能水土不服。解决先看报错的具体函数名去内核头文件里搜一下新原型。常见做法是打补丁比如把init_timer改成timer_setup。如果不想改代码最省事的办法是换一个更新的驱动包版本或者降级内核到驱动包发布时的主流版本。我一般会先查dmesg | tail看编译失败的最后一条再决定是改代码还是换环境。4.2 加载模块后接口消失或变成 eth0 以外的名字现象insmod r8168.ko之后ip link里看不到任何新接口或者接口名从预期的enp3s0变成了eth0、rename3之类。原因接口消失通常是因为固件加载失败或者 MAC 地址无效。接口名变化则是 systemd 的Predictable Network Interface Names规则在起作用它根据 PCI 槽位生成名字而驱动切换可能导致设备路径识别变化。解决先dmesg | grep r8168看内核日志如果有firmware load failed就检查src/r8168_firmware.c是否完整。接口名问题可以通过修改/etc/default/grub里的net.ifnames0来禁用可预测命名但更推荐的做法是写一个 udev 规则根据 MAC 地址固定接口名。4.3 网卡灯亮但 ping 不通ethtool 显示 Link detected: no现象ip link能看到接口ethtool里Link detected却是no网口指示灯可能亮着但就是不协商。原因这多半是物理层问题但有一个驱动相关的隐藏坑某些 RTL8168 芯片的 PHY 需要驱动在初始化时写一个特定的寄存器序列如果驱动版本不对PHY 就处于“假活”状态。另外交换机端口如果配置了节能以太网也可能和网卡的 ASPM 冲突。解决先换一根已知良好的网线直连另一台设备测试。如果确认物理链路没问题尝试在编译时关闭 ASPMmake CONFIG_ASPMn或者加载模块时传参modprobe r8168 aspm0。同时检查交换机端口是否强制了速率和双工建议两端都设为自协商。4.4 大流量下丢包严重ifconfig 看到 RX errors 飙升现象用iperf3打流时接收端ifconfig或ip -s link显示RX errors或RX dropped持续增长吞吐量上不去。原因环形缓冲区太小或者中断合并参数不合理导致网卡 FIFO 溢出。默认的rx环形队列可能只有 256在千兆线速下遇到突发流量就会丢包。解决按 3.2 节的方法把rx和tx调到 1024同时关闭自适应中断合并把rx-usecs设成 64 或 128。如果 CPU 核数多还可以考虑开启多队列但r8168对多队列的支持有限通常单队列调优就够。调完后用ethtool -S enp3s0看详细的统计计数器确认rx_fifo_errors不再增长。4.5 系统休眠唤醒后网卡不工作现象笔记本或工控机从 S3 休眠唤醒后网络接口消失或者存在但无法获取 IP。原因驱动在挂起/恢复流程中没有正确重新初始化 PHY 和 MAC 寄存器。这是r8168系列驱动的一个老问题尤其在配合某些 BIOS 的电源管理策略时。解决先确认内核命令行里有没有acpi_enforce_resourceslax之类的参数干扰。更直接的办法是写一个 systemd 服务在唤醒后重新加载模块。# 创建 /etc/systemd/system/reload-r8168.service [Unit] DescriptionReload r8168 after resume Aftersuspend.target [Service] Typeoneshot ExecStart/sbin/modprobe -r r8168 ExecStart/sbin/modprobe r8168 [Install] WantedBysuspend.target逻辑说明这个服务在suspend.target之后触发先卸载再加载模块强制驱动重新走一遍初始化流程。Typeoneshot表示执行完就退出。启用它需要systemctl enable reload-r8168.service。注意如果接口上有正在运行的网络服务重载会导致短暂断网建议在维护窗口测试。5. 进阶技巧用 DKMS 让驱动跟着内核自动更新手动编译安装的驱动有一个致命伤每次内核升级/lib/modules/$(uname -r)/下的r8168.ko就失效了因为新内核的build链接指向了新的头文件目录而旧模块的 vermagic 不匹配。你不得不重新编译一遍。对于管理几十台机器的运维来说这简直是噩梦。DKMSDynamic Kernel Module Support就是解决这个问题的后悔药。5.1 把源码包改造成 DKMS 模块DKMS 要求源码目录里有一个dkms.conf文件描述模块名、版本和编译指令。r8168-8.048.03.tar.gz解压后可能已经带了dkms.conf但路径和变量未必适配你的系统。如果没有就自己写一个。# 在源码目录下创建 dkms.conf cat dkms.conf EOF PACKAGE_NAMEr8168 PACKAGE_VERSION8.048.03 BUILT_MODULE_NAME[0]r8168 BUILT_MODULE_LOCATION[0]. DEST_MODULE_LOCATION[0]/kernel/drivers/net/ethernet/realtek MAKE[0]make CONFIG_ASPMn CLEANmake clean AUTOINSTALLyes EOF参数说明PACKAGE_NAME和PACKAGE_VERSION是 DKMS 的唯一标识后续dkms status会显示它们。BUILT_MODULE_LOCATION[0].表示编译出的.ko文件在当前目录。DEST_MODULE_LOCATION[0]是安装到内核模块树的目标路径。MAKE[0]里我直接带了CONFIG_ASPMn这样每次自动编译都会关闭 ASPM省得后面再改。AUTOINSTALLyes让 DKMS 在检测到新内核时自动为它编译这个模块。5.2 注册、编译与验证 DKMS 状态写好dkms.conf之后把整个源码目录复制到/usr/src/下目录名要符合包名-版本的格式。# 复制源码到 DKMS 标准路径 sudo cp -r /path/to/r8168-8.048.03 /usr/src/r8168-8.048.03 # 注册模块到 DKMS sudo dkms add -m r8168 -v 8.048.03 # 编译并安装 sudo dkms build -m r8168 -v 8.048.03 sudo dkms install -m r8168 -v 8.048.03 # 查看状态确认已安装到当前内核 dkms status逻辑说明dkms add只是把模块信息登记到 DKMS 数据库build才会真正调用MAKE[0]去编译install把编译产物复制到内核模块目录并运行depmod。dkms status的输出里如果看到r8168/8.048.03, 内核版本, x86_64: installed就说明成功了。之后每次内核升级DKMS 会自动为新内核编译一份你只需要重启即可。5.3 内核升级后的验证与回滚DKMS 虽然省心但也不是万无一失。如果新内核的 API 变化太大导致编译失败DKMS 会记录错误但不会阻止内核升级。所以升级内核后重启前最好先手动触发一次编译测试。# 模拟为新内核编译不安装 sudo dkms build -m r8168 -v 8.048.03 -k $(ls /lib/modules | tail -1) # 如果编译失败查看日志定位问题 cat /var/lib/dkms/r8168/8.048.03/build/make.log参数说明-k指定目标内核版本$(ls /lib/modules | tail -1)取最新安装的内核目录名。如果编译失败make.log里会有详细的报错行。这时候你有两个选择一是去驱动源码里修代码二是暂时用旧内核启动等驱动包更新。我一般会在生产环境保留一个旧内核条目作为紧急回滚的后悔药。5.4 一个容易被忽略的细节固件文件与模块签名最后提一个很少人注意但会卡住很多人的点某些发行版开启了内核模块签名强制Secure Boot你编译的r8168.ko没有签名加载时会被拒绝dmesg里报module verification failed: signature and/or required key missing。解决办法要么是关闭 Secure Boot要么是给自己的模块签名并注册公钥。对于内部可控的物理机我通常直接在 BIOS 里关掉 Secure Boot省去签名的一堆麻烦。另外如果你把r8168_firmware.c编译进了模块就不需要额外的固件文件但如果驱动是运行时从/lib/firmware/加载固件记得把对应的二进制文件也复制过去否则会出现“驱动加载成功但网卡不工作”的诡异现象。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

SAP ABAP DDIC DDL 中 DEFINE STRUCTURE 的 ext_annos 设计,C0 扩展契约下如何控制字段后缀、字段配额与字节容量

SAP ABAP DDIC DDL 中 DEFINE STRUCTURE 的 ext_annos 设计,C0 扩展契约下如何控制字段后缀、字段配额与字节容量

在 ABAP Dictionary 里创建一个 Structure,本身并不是什么新鲜事。传统项目里,我们很熟悉 SE11,也知道 Structure 可以被程序、Function Module、BAPI、数据库表 Include、接口参数乃至整个应用层的数据模型反复引用。 到了 ABAP Cloud、SAP S/4HANA Cloud 和 Clean Core 体…

2026/10/15 21:30:47 阅读更多 →
AI评测独立性:评测员入局后,如何守住可验证的中立边界

AI评测独立性:评测员入局后,如何守住可验证的中立边界

1. 评测员进场之后,独立性为什么反而成了新问题各家AI实验室这两年都在干同一件事:把评测员请进来。不是远程派单、外包打分那种松散合作,而是让评测团队常驻实验室,跟模型研发坐同一个工位、提同一个迭代节奏、甚至共享同一份模型…

2026/10/15 21:30:47 阅读更多 →
第一次接中转站,我会把第一小时安排明白

第一次接中转站,我会把第一小时安排明白

第一次接中转站,我会把第一小时安排明白 拿到一个新入口以后,先翻模型列表,还是先充值?对我来说,这两个动作都可以稍后再做。真正值得安排的是第一小时:先弄清楚自己要解决什么问题,再走完一条能…

2026/10/15 21:29:46 阅读更多 →

最新新闻

代码库变成书:AiReadCode从源码生成结构化阅读指南

代码库变成书:AiReadCode从源码生成结构化阅读指南

1. 为什么要做“代码库变成书”这件事先交代一个背景:有段时间我一直在啃 Spring AI Alibaba 的源码。这个项目体量不算夸张,但牵扯到模型接入、工具调用、Agent 编排、Spring 生态集成,读起来经常是“翻开一个类,跳转三个依赖&am…

2026/10/15 22:25:16 阅读更多 →
OpenCV undefined reference 报错排查:编译链接原理与解决方案

OpenCV undefined reference 报错排查:编译链接原理与解决方案

先说一个很典型的场景:某A同学照着网上的教程写了一个读取图片并显示的程序,编译时头文件、语法一点问题没有,g一执行,终端里刷出来一片undefined reference to cv::imread、undefined reference to cv::Mat。他第一反应是代码写错…

2026/10/15 22:25:16 阅读更多 →
基于S7-200 PLC与组态王的变频恒压供水系统设计详解

基于S7-200 PLC与组态王的变频恒压供水系统设计详解

1. 系统整体方案设计1.1 变频恒压供水为什么能解决实际问题小区供水这件事,听起来好像就是“水泵抽水、水箱放水”那么简单,但真正做过的人都知道,麻烦全藏在细节里。传统的老式供水方式是水泵直接给管网打水,到了晚上用水低谷&am…

2026/10/15 22:25:16 阅读更多 →
从CNN分类到语义分割:Encoder-Decoder结构设计与实战

从CNN分类到语义分割:Encoder-Decoder结构设计与实战

1. 从分类到分割:为什么CNN要长出“解码器”很多人学CNN都是从图像分类入门的——输入一张图,输出一个标签,比如“猫”或者“狗”。这套逻辑跑通之后,很容易产生一种错觉:CNN不过如此。但当你真正拿到一个语义分割任务…

2026/10/15 22:25:16 阅读更多 →
阿里云AI算力硬件体系:三层架构与实战选型指南

阿里云AI算力硬件体系:三层架构与实战选型指南

1. 为什么“看懂阿里云AI算力硬件体系”这件事,比大多数人想的更难也更重要你有没有遇到过这样的情况:项目刚立项,技术方案里写着“需部署大模型推理服务”,负责人拍板:“上阿里云,资源好调、生态成熟。”结…

2026/10/15 22:25:16 阅读更多 →
无需Mac如何一键创建iOS发布证书与描述文件:码友上架证书管理实操分享

无需Mac如何一键创建iOS发布证书与描述文件:码友上架证书管理实操分享

做iOS上架,第一步往往就卡在证书上:传统流程需要一台Mac,在钥匙串里生成CSR、导出P12,再手动创建描述文件。团队协作时证书分散在个人电脑里,交接容易出错。本文分享用码友上架做证书管理的实操流程——没有Mac也能在线…

2026/10/15 22:24:09 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →