我对 Buildroot 和 OpenWrt 感到困惑。我的意思是在哪种情况下会选择 OpenWrt 而不是 Buildroot。
根据我的理解,Buildroot 和 OpenWrt 之间只有 2 个区别
如果我的项目不需要任何包管理器,但我想要网络支持,那么我可以选择 Build root over OpenWrt,对吗?是否无法在 Buildroot 本身中构建与网络相关的包?
我的意思是如果包管理器不是问题,我们可以继续使用 buildroot 本身,对吗?有没有必要选择OpenWrt?
如果我错了,谁能解决 buildroot 失败而 Openwrt 获胜的情况?
我的意思是有可能用 Buildroot 本身来实现 OpenWrt 正在做的事情(为网络相关硬件构建固件镜像)。我观察到 Buildroot 和 OpenWrt 的 init 进程(早期用户空间)行为是不同的。
etc/inittab
并执行 init.d
下的脚本。 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/