【问题标题】:Must I cross-compile modules if the kernel is cross-compiled?如果内核是交叉编译的,我必须交叉编译模块吗?
【发布时间】:2015-09-27 13:54:19
【问题描述】:

我有一个交叉编译的 Linux 内核,它在我的树莓派 2 上运行良好。但是,当我后来在树莓派本身上编译模块时,报错。

谷歌搜索后,这个问题的原因似乎是由于交叉编译导致位于linux/scripts/的一些工具不适用于arm架构而是X86。

如果内核是交叉编译的,我不确定是否需要在PC上编译模块。如果没有,我如何将这些工具转移到 Pi?

【问题讨论】:

    标签: linux arm raspberry-pi cross-compiling kernel-module


    【解决方案1】:

    。这将是不寻常的,如果您尝试这样做,您应该会遇到问题。

    编译您编译内核的模块(从那时起您已经拥有工具链,并且由于版本不同而出现问题的可能性要小得多)。

    如果您在 PC 上交叉编译内核,请对模块执行相同操作。如果您在 RPI 上本地编译内核,则对模块执行相同操作。

    【讨论】:

    • 如何在 PC 上编译内核,然后在 Pi 本身上编译模块?
    • @DouglasSu 如果您有能力在设备上构建模块,那么您肯定已经在设备上拥有了正确的内核源代码、.config 和工具链。因此,如果您可以将交叉编译的内核引导到用户空间,那么您就可以本地重建相同的内核,安装它,然后让所有内容都匹配。
    • @Notlikethat 我认为不可能在 PC 上编译内核,在 Pi 上安装和启动这个内核,然后用这个新内核制作新模块。 ./scripts/recordmcount 编译模块时报错。
    • 我已经厌倦了直接在 Pi 上构建内核和模块,这很好。然而,如您所知,构建内核要耗费更多时间。与编译内核相比,编译简单模块既快速又容易。所以我希望我可以在 PC 上编译内核并在 Pi 上编译模块。但是,它似乎不起作用。
    • 我建议您真正解决您在 PC 上构建模块的问题。或者,如果您真的愿意,可以在 RPi 上编译它们。但无论如何,我们需要的不仅仅是“它不工作”来帮助您解决问题。
    猜你喜欢
    • 2011-03-28
    • 2014-10-23
    • 2014-01-25
    • 2014-05-01
    • 2014-04-30
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    相关资源
    最近更新 更多