编译内核时构建 /lib/modules/$(uname -r)/build

2024-01-16

我正在为嵌入式设备交叉编译 3.4.0 内核。然后我想安装需要的兼容无线驱动程序/lib/modules/3.4/build目录和子文件。谁能解释一下我如何构建该目录,以便当我这样做时INSTALL_MOD_PATH=newmodules make modules_install它会加载/lib/modules/$(uname -r)/build目录也是如此吗?如果有明确的解释,我将不胜感激。

我正在使用 Debian 发行版。我知道我可以通过以下方式安装内核头文件apt-get install linux-headers-$(uname -r),但我怀疑这是否是一个好主意,因为内核源代码可能不相同。


通常 /lib/modules/$(uname -r)/build 是指向执行构建的目录的软链接。所以做到这一点的方法就是简单地做一个

  make modules_install INSTALL_MOD_PATH=/some/root/

在内核的构建目录中,其中 /some/root 是您希望交叉编译片段结束的位置。这将在 /some/root/lib/modules/$(uname -r) 中创建一个指向内核构建路径的链接...验证这一点。

现在,当您构建 compat_wireless 驱动程序时,使用 KLIB_BUILD 变量将 Makefile 中的内核构建目录指定为 /some/root (读取 Makefile)

make modules KLIB_BUILD=/some/root/lib/modules/$(uname -r)/build 

这应该对你有用。

EDIT A

回答您的以下评论:

  1. 将“newmodules”保留在内核目录之外,将其放在内核目录中是一个坏主意。所以 mkdir newmodules 类似 /home/foo 或 /tmp 之类的地方。这是您的构建链接搞砸的原因之一

  2. 另外 .../build 是一个软链接 /to/kernel/build/location 它只会作为软链接复制。您还需要使用相同的相对位置将实际的内核源/内核构建目录复制到 microSD。例如,

假设您的内核源代码位于:

      /usr/src/linux-3.5.0/

您的内核构建目录是:

      /usr/src/linux-3.5.0-build/

您的新模块(在执行以下 1. 之后)位于:

      /tmp/newmodules/

因此,在 /tmp/newmodules/ 下,您会看到安装在树中的模块,如下所示:

      lib/modules/$(uname -r)/

当您在此目录中执行 ls -al 时,您将看到 build 是指向以下内容的软链接:

      build -> /usr/src/linux-3.5.0-build/

现在假设您的 microSD 安装在 /mnt/microSD 下

那么你需要执行以下操作

      mkdir  -p /mnt/microSD/usr/src 
      cp -a /usr/src/linux-3.5.0 /usr/src/linux-3.5.0-build /mnt/microSD/usr/src
      cp -a /tmp/newmodules/lib /mnt/microSD/lib

现在您已拥有将其引入嵌入式环境所需的所有内容。我认为您是在目标系统上进行 compat_wireless 构建而不是交叉编译它?

NOTE

如果您的内核版本与内核源代码相同,则只需复制内核源代码并忽略linux-3.5.0-build在上面的复制说明中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编译内核时构建 /lib/modules/$(uname -r)/build 的相关文章

随机推荐

  • 安卓:语音识别

    可能重复 但我没有找到下面问题的答案 这两天我一直在研究语音识别 但没有得到问题的答案 是否可以将语音识别作为服务来运行 我想实现这样的事情 尽管我的手机通过语音识别处于睡眠模式 但我需要拨打一个号码 当我在火车 公共汽车等地方时 语音识别
  • JavaScript Regex - 查找所有可能的匹配项,即使是在已捕获的匹配项中

    我正在尝试获得所有可能的匹配使用 JavaScript 的正则表达式从字符串中获取 看来我这样做的方法没有匹配已经匹配的字符串部分 变量 var string A1B1Y A1B2Y A1B3Y A1B4Z A1B5Y A1B6Y A1B7
  • 禁用索引 pandas 数据框

    如何删除或禁用 pandas Dataframe 中的索引 我正在从 python for dataanalysis 一书中学习 pandas 并且我已经知道我可以使用 dataframe drop 删除一列或一行 但我没有找到任何关于禁用
  • Mongodb - 当属性具有 Interface 返回类型时如何反序列化

    我试图避免在数据层和使用该层的客户端代码之间引入任何依赖关系 但在尝试使用 Mongo 执行此操作 使用 MongoRepository 时遇到了一些问题 MongoRepository 显示了您创建反映数据结构的类型并在需要时继承实体的示
  • Selenium:如何将浏览器设置为离线模式?

    我需要测试我的应用程序的一项功能 该功能设计为在离线模式下执行 在互联网连接恢复之前使用本地存储对数据进行排队 Selenium可以将浏览器设置为离线模式吗 您可以为 Firefox 创建新的浏览器配置文件 然后配置该配置文件以使用离线模式
  • IE9 是否支持 WebGL 和/或 WebSockets? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions IE9 是
  • 应用栏上的圆角底部

    我想制作一个圆底的应用栏 如下所示 我将如何实现这样的应用程序栏 我尝试阅读 CustomPainter 的文档 但我不认为这是正确的方法 在 Flutter 中 您可以使用 shape 属性在 AppBar 小部件中自定义形状 AppBa
  • 如何从 sqlalchemy jsonify 对象?

    我正在使用 Flask SQLAlchemy 和 javascript 我需要通过 AJAX 将查询结果以 json 格式传递给 javascript 但我不断收到此错误 raise TypeError repr o is not JSON
  • Maven 出现 Eclipse 错误“路径必须包含项目和资源名称”

    我最近开始将 Maven 与 Eclipse 一起使用 我已经设置了几个项目 并且我注意到 如果我尝试指定项目目录之外的构建目录 以覆盖目标 则在执行 更新项目 时会出现错误 更新 Maven 项目 遇到问题 期间发生内部错误 更新 MAv
  • SQLite更新查询Android

    该表包含 4 列 rowID word defintition group id 我想更改某一行的单词和定义 这是我的代码 word 是一个对象 其中存储了 word definition id 和 group id ContentValu
  • 在bat上运行带有删除文件的jar

    我想将文件拖放到 bat 文件上 删除它后 我想运行一个 jar 文件 并将删除的文件路径作为输入 如何才能使用相对路径运行 jar 文件 我的 bat 文件运行的目录是我的用户目录 而不是它所在的目录 goal cmd c java ja
  • 如何获取 Java 分析转储以在 Mac 上创建火焰图?

    我想从我的 Java 应用程序中收集堆栈跟踪来创建CPU 火焰图 http www brendangregg com FlameGraphs cpuflamegraphs html用于分析 这与这个问题非常相似 如何从每个示例中的分析器中获
  • 返回嵌套泛型表达式>

    错误消息是 找不到类型或命名空间名称 T public static Expression
  • 查找数组中具有下一个较低值的对象

    我需要使用权重值获取数组中下一个较低的对象 const data weight 1 size 2 5 weight 2 size 3 0 weight 4 size 3 5 weight 10 size 4 0 weight 20 size
  • c/c++函数的源代码

    我想看看不同 C C 函数 如 strcpy stcmp strstr 的实现 这将帮助我了解 c c 中良好的编码实践 你能告诉我在哪里可以找到它吗 Thanks 你可以查看一份副本glibc http www gnu org softw
  • 使用 Glide 在 RecyclerView 中加载图像时 UI 滞后且不稳定

    我有一个 RecyclerView 它使用 Glide 从 URL 加载图像 现在 使用分页从 Firebase 检索 URL 如下所示 问题是 当 MainActivity 包含以下代码和 recyclerview 首次初始化时 UI 中
  • 实体框架 - .Load() 出现问题

    我一直在关注这篇文章 http blogs msdn com b adonet archive 2011 01 31 using dbcontext in ef feature ctp5 part 6 loading lated entit
  • 想要使用 Python3 从互联网上读取文件的特定偏移量

    我想从 python 中的特定偏移量读取互联网上的文件 与普通文件处理程序 由 open 返回 一样 我们有一个eek api 从网络读取时有什么方法可以做到这一点 import urllib request g urllib reques
  • 有没有办法仅使用 HTML/CSS 来隐藏基于特定值的数据单元格?

    例如我有这样的代码 table caption Test caption tr th Values th td 100 td tr tr th Initial value th td class results td tr table 有没
  • 编译内核时构建 /lib/modules/$(uname -r)/build

    我正在为嵌入式设备交叉编译 3 4 0 内核 然后我想安装需要的兼容无线驱动程序 lib modules 3 4 build目录和子文件 谁能解释一下我如何构建该目录 以便当我这样做时INSTALL MOD PATH newmodules