我在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进程(早期用户空间)行为是不同的。
etc/inittab
,init.d
下的脚本将被执行。在Openwrt procd
中是init脚本(rc.common
),它将运行init.d下列出的脚本以及rc.d
下的脚本。
如果我尝试使用Buildroot为OpenWrt支持的固件生成图像,这会影响到任何方式吗?
答案 0 :(得分:0)
OpenWRT基于Buildroot,就像Ubuntu基于Debian一样。虽然这两个项目共享代码,但OpenWRT专注于路由器等,而buildroot只是嵌入式Linux的通用工具链。您应该问自己:“这两个项目中哪个包含完成任务所需的内容?”
OpenWRT可以不用opkg进行编译,实际上,很多软件包都可以被撕开,并且可以正常工作。这对于资源较少的设备很有用。
此外,还可以使OpenWRT使用常规的初始化脚本。如果您不想,则不必使用procd。它提供的抽象特性确实使配置现有程序包变得更加容易,但是,如果您要移植新程序包,则需要具备procd的高级知识才能从头开始创建它们。