在什么情况下' Openwrt'优先于Buildroot' Buildroot'框架工作?

时间:2018-03-08 09:23:06

标签: embedded-linux openwrt buildroot

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

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

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

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

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

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

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

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

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

    如果我尝试使用Buildroot为OpenWrt支持的固件生成图像,这会影响到任何方式吗?

1 个答案:

答案 0 :(得分:0)

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

OpenWRT可以不用opkg进行编译,实际上,很多软件包都可以被撕开,并且可以正常工作。这对于资源较少的设备很有用。

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