【问题标题】:Cross compiling with existing rootfs and external toolchain (buildroot? qemu?)与现有的 rootfs 和外部工具链交叉编译(buildroot?qemu?)
【发布时间】:2015-01-01 23:36:07
【问题描述】:

我正在开发一个基于 Cortex A9 的 arm 嵌入式平台,与蜂鸣板 (http://www.solid-run.com/products/hummingboard/) 非常相似。

我正在移植我们以前在 beaglebone 上运行的一些软件。我们的软件是基于 python 的,但使用了一些 ctypes、一个内部 c 库以及几个 python 模块和一个 rabbitmq 服务器。在 beaglebone 上,设置起来很容易,因为有很多支持和基于 ubuntu 的发行版使得安装包变得简单。

我有一个 linaro 交叉编译器和一个平台制造商提供给我们的 uboot 和 rootfs 映像。手动交叉编译和构建我们所有必要的依赖项变得相当头疼,因为一切都没有什么怪癖。我没有可以在 arm 设备上运行的原生开发工具链。

我正在寻找一种更简单的方法来完成其中一些任务。 Buildroot 听起来正是我所需要的,但我不确定如何使它与现有的 rootfs 和工具链一起工作。不幸的是,我不知道 rootfs 的所有细节以及硬件是如何启动的,所以我认为我不能使用 buildroot 完全复制这些设置。

我正在研究的另一个选项是以某种方式将 rootfs 与 QEMU 一起使用并构建一个本地工具链以在其上运行,这将允许我手动构建依赖项而无需处理交叉编译的麻烦。

非常感谢任何帮助。谢谢。

【问题讨论】:

    标签: arm embedded cross-compiling qemu buildroot


    【解决方案1】:

    Buildroot 旨在生成整个 rootfs,而不是“补充”现有的 rootfs。所以如果你要使用 Buildroot,你应该摆脱现有的根文件系统,并使用 Buildroot 生成的新文件系统。

    另外,请注意,如果您对在 BeagleBone 上运行的 Debian 发行版感到满意,您也可以在 Hummingboard 上运行 Debian。

    【讨论】:

    • 不幸的是,我没有使用蜂巢板股票。该平台是相同架构的修改版本(相同的处理器、内存等,但不同的外围设备)。
    • 这有什么关系?
    • 好吧,我没有设计或创建这个平台,它有一些与蜂板参考设计不同的修改。我没有足够的信息或能力来重新创建已经在现有 rootfs 上完成的工作以进行硬件启动。 Hummingboard debian 发行版很可能不会在此平台上运行 vanilla。
    • 那么任何修改都将在硬件级别进行,对吧?您是否要求 U-Boot 源(补丁)和内核相同?这应该可以使用完整的 buildroot 构建让您的开发板运行起来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多