You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用RT内核补丁提示can't find file to patch at input line 5如何解决

核心错误

你操作存在两个关键问题:

  1. 缺少与RT补丁版本严格匹配的原生(vanilla)Linux 5.4.193内核源码树。PREEMPT_RT是增量补丁,无法独立使用,必须基于对应版本的主线内核源码打补丁后才能编译。
  2. 执行补丁命令的目录错误。你在解压出来的patches文件夹内执行打补丁操作,该目录仅存放拆分后的补丁片段,不存在补丁要修改的内核原生文件(比如报错里提到的Documentation目录下的文件),patch命令自然找不到目标文件。
    你之前调整-p参数没有效果,本质是目录下根本不存在待补丁的目标文件,和路径截断参数无关。
正确操作流程
  • 回到rt_kernel_build工作根目录,获取版本号完全一致的Linux 5.4.193原生内核源码压缩包,注意版本号必须和你下载的patch-5.4.193-rt74.patch.xz完全匹配,小版本号不一致也会导致打补丁失败。
  • 解压原生内核源码:
xz -cd linux-5.4.193.tar.xz | tar xvf -

解压完成后根目录会生成linux-5.4.193文件夹,这就是待打补丁的完整内核源码树。

  • 进入内核源码根目录:
cd linux-5.4.193
  • 执行打补丁命令,直接使用单文件合并补丁即可,无需手动逐个应用patches文件夹内的拆分补丁:
xzcat ../patch-5.4.193-rt74.patch.xz | patch -p1

命令执行无报错即代表补丁应用成功。

后续注意事项
  • 打补丁前如果之前对内核源码做过其他修改,先在源码根目录执行make mrproper清理残留配置和临时文件,避免打补丁冲突。
  • 补丁应用完成后,按标准内核编译流程操作即可:安装编译依赖、配置内核选项(可直接复制当前系统的内核配置作为基础)、编译内核与模块、安装内核、更新grub引导项,重启后在grub菜单选择带rt标识的内核进入系统即可。
  • 若后续需要验证RT内核是否生效,可安装rt-tests工具集,运行cyclictest测试内核延迟。

内容的提问来源于stack exchange,提问作者Anton Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:57:18