【问题标题】:In what circumstances 'Openwrt ' is preferred over 'Buildroot' frame work?在什么情况下“Openwrt”优于“Buildroot”框架?
【发布时间】:2018-08-16 14:15:50
【问题描述】:

我对 Buildroot 和 OpenWrt 感到困惑。我的意思是在哪种情况下人们会选择 OpenWrt 而不是 Buildroot。

据我了解,Buildroot 和 OpenWrt 之间只有 2 个区别

  1. OpenWrt 提供包管理器(opkg),它不适用于 buildroot。

  2. OpenWrt 为大多数网络相关设备(路由器、交换机等)提供了大量的软件包支持。

如果我的项目不需要任何包管理器,但我需要网络支持,那么我可以选择 Build root 而不是 OpenWrt,对吗? Buildroot本身就不能构建网络相关的包吗?

我的意思是,如果包管理器不是问题,我们可以继续使用 buildroot 本身,对吗?不需要选择 OpenWrt 吗?

如果我错了,任何人都可以解决 buildroot 失败而 Openwrt 获胜的情况吗?

我的意思是有可能用 Buildroot 本身来实现 OpenWrt 正在做的事情(为网络相关硬件构建固件映像)。我观察到 Buildroot 和 OpenWrt 的 init 进程(早期用户空间)行为是不同的。

  • 在 Buildroot 中,初始化脚本将被读取etc/inittabinit.d 下的脚本将被执行。
  • 在 Openwrt 中,procd 是初始化脚本 (rc.common),它将运行 init.d 下列出的脚本以及rc.d 下的脚本。

如果我尝试使用 Buildroot 为 OpenWrt 支持的固件生成映像,这会不会有任何影响?

【问题讨论】:

    标签: embedded-linux openwrt buildroot


    【解决方案1】:

    OpenWRT 基于 Buildroot,就像 Ubuntu 基于 Debian。虽然这两个项目共享代码,但 OpenWRT 专注于路由器等,而 buildroot 只是嵌入式 linux 的通用工具链。你应该问自己的是,“这两个项目中的哪一个包含我完成任务所需的内容?”

    OpenWRT不用opkg也可以编译,其实很多包都可以撕掉就可以了。这对于资源较少的设备很有用。

    此外,OpenWRT 可以使用常规的初始化脚本;如果你不想,你不必使用 procd 。它提供的抽象确实使配置现有包变得更加容易,但是,如果您正在寻找移植新包,则需要 procd 的高级知识才能从头开始创建它们。

    【讨论】:

      猜你喜欢
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 2011-11-17
      • 2013-11-28
      • 2017-03-05
      • 2016-10-05
      相关资源
      最近更新 更多