【问题标题】:Step by step to embedded Linux逐步走向嵌入式 Linux
【发布时间】:2015-06-26 06:25:21
【问题描述】:

我正在尝试了解嵌入式 linux。为此,我试图了解 buildroot。现在我几乎没有疑问了。

1) 如何在目标中加载创建的环境?

2) 下载环境后,我们如何在其上创建和运行应用程序。

有这方面的完整教程吗?

提前致谢。

拉胡尔

【问题讨论】:

  • 你的问题有点太宽泛了。尝试查看 (THIS)(yoctoproject.org),而不是 buildroot。是否“有据可查”并促使您构建完整的 linux 嵌入式系统:U-boot、内核和 rootFS
  • @LPs,buildroot 也有一个非常好的文档,并且支持很多开箱即用的板。它也更容易开始并加快速度......
  • LP,感谢您的回复...
  • @Anders 我知道,但我认为 Yocto 可以为 OP 提供一个完整的即用型解决方案,以开始了解他提出的问题有多大。
  • 好吧,@LPs,如果有问题的板由 buildroot 支持,buildroot 也会提供一个现成的解决方案。老实说,快速设置解决方案也可能稍微容易一些。

标签: linux embedded buildroot


【解决方案1】:

buildroot 是一系列 make 文件和脚本,旨在简化为您的特定系统创建内核、根文件系统和工具链的过程。

这使得支持一个特定项目的多个板变得更加容易。它确实需要您为您的电路板正确配置目标。这是真正只有您(或了解您的应用程序和目标板的人)才能真正做到的事情。

关于运行您的应用程序:如果您编写应用程序以使用 buildroot 创建的文件系统/环境运行,那么您应该能够通过常规启动脚本或手动启动它(如果您有 ssh / 控制台访问繁忙的框) .

此答案显示了如何创建启动脚本。 https://unix.stackexchange.com/questions/59018/create-and-control-start-up-scripts-in-busybox

这实际上取决于您所针对的特定板,以及如何将图像放到板上。像树莓派这样的东西,您可以简单地将图像加载到 SD 卡上,然后开发板将从那里加载它。其他人(比如我的 nexus 手机)需要软件刷新过程。您的电路板制造商应提供有关如何执行此操作的说明。

【讨论】:

  • 至少对于 buildroot 支持的少数板卡来说,boards/<BOARDNAME> 下有一个 readme.txt 文件,它提供了有关如何构建和部署生成的文件系统、内核和 u 的说明-启动图像。
  • 感谢您的回复,
  • 感谢您的回复,我目前正在使用 R-pi2 玩。我按照 buildroot 为 R-Pi2 配置的方式构建。然后做出小的变化......只是为了理解。现在我正在尝试在 SD 卡上写入。一旦我能够做到这一点。我需要了解如何将编译后的应用程序远程发送到目标(因为我将在无头模式下使用 R-Pi2)。并命令它运行。再次感谢大家的帮助。
  • @RahulJoshi,如果您想将应用程序等远程发送到 RPI2,我建议您确保在 buildroot 配置中启用 dropbear 或 openssh。这会让你 ssh 进入 RPi2。
  • 感谢 Anders,目前我正在尝试使用 buildroot 编译的工具链编译 hello,c。
【解决方案2】:

york@york-Inspiron-1525:~/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabihf/bin$ gcc test.c -o test york@york-Inspiron-1525:~/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabihf/bin$ ./test 这是我的第一个编。 非常感谢帮助过我的人。 york@york-Inspiron-1525:~/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabihf/bin$

我可以编译一个测试程序。

非常感谢所有帮助我的人。

我还没有理解的是,为 arm (r-pi2) 生成的测试 bin 是如何在我的 i386 ubuntu 上运行的?

现在我的下一个任务是烧录环境并远程访问目标硬件。

【讨论】:

  • 好吧,当您使用gcc 时,您实际上得到了主机编译器。交叉编译器的名称类似于arm-buildroot-linux-uclibcgnueabi-gcc。使用 buildroot,您通常有一个名为 arm-linux-gcc 的符号链接。 ) 名字取自记忆,所以它们可能有相似的名字,而不是我写的)。
猜你喜欢
  • 2019-11-03
  • 2014-08-13
  • 2014-05-19
  • 2011-02-09
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多