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

根据我的理解,Buildroot 和 OpenWrt 之间只有 2 个区别

  • OpenWrt 提供了 buildroot 不可用的包管理器(opkg)。
  • OpenWrt 为大多数网络相关设备(路由器、交换机等)提供了大量的包支持。

  • 如果我的项目不需要任何包管理器,但我想要网络支持,那么我可以选择 Build root over OpenWrt,对吗?是否无法在 Buildroot 本身中构建与网络相关的包?

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

    如果我错了,谁能解决 buildroot 失败而 Openwrt 获胜的情况?

    我的意思是有可能用 Buildroot 本身来实现 OpenWrt 正在做的事情(为网络相关硬件构建固件镜像)。我观察到 Buildroot 和 OpenWrt 的 init 进程(早期用户空间)行为是不同的。
  • 在 Buildroot init 脚本中将读取 etc/inittab 并执行 init.d 下的脚本。
  • 在 Openwrt 中 procd 是初始化脚本( rc.common ),它将运行 init.d 下列出的脚本以及 rc.d 下的脚本。

  • 如果我尝试使用 Buildroot 为 OpenWrt 支持的固件生成镜像,这会产生任何影响吗?

    最佳答案

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

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

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

    关于embedded-linux - 在什么情况下 'Openwrt ' 优于 'Buildroot' 框架?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49169518/

    10-11 17:16