【问题标题】:Where is my location toolchain?我的定位工具链在哪里?
【发布时间】:2014-03-19 16:47:43
【问题描述】:

我最近在 BeagleBoard-xM 上安装了一个针对 ARM 架构的工具链: opkg install task-native-sdk.

现在,我想运行make,以构建一个模块。因此,我必须编辑 Makefile。 Makefile说明参考:

  1. 确保 $PATH 变量包含您将用于交叉编译模块的工具链的位置。

我可以看到usr 下有一个arm-angstrom-linux-gnueabi 文件夹。这就是我要找的吗?在这种情况下,我应该编辑:CROSS_COMPILE := /usr/arm-angstrom-linux-gnueabi

  1. 将 KSRC 环境变量设置为 Beagleboard 内核源的位置。

如果我是正确的,内核源代码位于:usr/src/linux-2.6.32.61。那是我应该编辑的吗?

【问题讨论】:

  • I recently installed a toochain on BeagleBoard-xM你的工具链是交叉编译工具链还是Native ARM工具链?
  • 是原生 ARM 工具链。在这种情况下,我应该在字段“CROSS_COMPILE:”上编辑什么?我认为最好在Linux主机上用交叉编译工具链构建模块,然后将编译好的模块.ko复制到目标机器。
  • 如果它的原生 arm 工具链为什么要交叉编译它,只需在驱动程序文件夹中运行 make。如果是交叉编译器,请在 x86 上交叉编译,然后复制 .ko
  • 感谢您的回复。一件事我想不通:我将在 x86 机器上进行交叉编译。在 KVER 上我将编辑 BB-xM 的内核版本 (2.6.32),但我必须在 KSRC 上编辑什么?是否必须将 BB 内核源复制到 x86 机器并编辑 BB 源的路径?
  • 那个内核源代码是编译出来的吗?

标签: build makefile kernel-module toolchain


【解决方案1】:

你可以的

$~ which arm-angstrom-linux-gnueabi

检查工具链的位置。既然你这样做了opkg install,它通常会安装在 usr/bin 中。

如果你可以做which arm-angstrom-linux-gnueabi 并且它显示了工具链的位置,这意味着它已经存在于你的PATH 变量中,你不必在 Makefile 中再次设置。 CROSS_COMPILE 变量必须是 CROSS_COMPILE := arm-angstrom-linux-gnueabi-

KSRC 必须是 beagleboard 内核源的源路径,而不是 x86 pc 的内核源。您可以在您的 PC 上为 beagleboard 构建内核并在板上刷新该内核。那么 KSRC 可能是您构建它的内核的位置。

【讨论】:

  • 我从 kernel.org 下载了内核源代码,并将它们放在 BeagleBoard-xM 上的 usr/src 下之后,我构建了内核。那不是我BB-xM的源码路径吗?
  • 我有一个问题。你在哪里做这个Now, I want to run make in my home directory, in order to build a module.board/x86?
  • 我在 BB-xM 中运行 make 来构建它。抱歉没有说清楚。
  • 对不起,我对 BB-xM 不太确定,但通常规则是在构建模块时,KSRC 应该是包含内核源代码的路径(运行相同的内核,这是因为配置而需要的)。如果您已经构建内核,将其刷到板上,并将源代码放入 usr/src,那么您的 KSRC 可以是 usr/src
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多