一直认为Buildroot是用来构建嵌入式Linux系统的,OpenWrt是一个路由器系统,,二者用途明确,应该没什么交集
最近看了下二者官方的描述,,内容如下:
Buildroot
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.OpenWrt
The OpenWrt Project is a Linux operating system targeting embedded devices.Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developers, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
从官方的描述来看,OpenWrt官方对自己的描述中并没有提到路由器,,而是说自己是一个“Linux targeting embedded devices”,,这样看起来的话似乎跟Buildroot是非常类似的东西,,都是用来构建嵌入式设备上的Linux系统的
除了第一句说明自己的用途,,后面大段的内容都是在说自己的一个优势:即提供了一个包管理,,因此不用在构建Linux系统时选中所有包和应用,,而是可以分别构建系统和包,,在后面通过安装额外的包扩展系统的功能
这么看来,,似乎OpenWrt确实比Buildroot更有优势
那是不是用OpenWrt构建嵌入式Linux系统比Buildroot更好呢??
OpenWrt构建相对Buildroot有什么缺点呢??
比如是不是给芯片移植OpenWrt比移植Buildroot更困难?
离线
有同样疑问的小白飘过,我觉得OpenWrt是基于buildroot的, buildroot那个包管理器dpkg,OpenWrt也有
离线
buildroot 偏向于给你提供定制rootfs的选项,怎么选由用户来定。而且buildroot是选好了之后对源码进行交叉编译;而openwrt我的理解类似于Debian,官方给你选好了很多软件包和服务,组成了一个有特色的操作系统。当然由于带了包管理,你还是可以事后安装你想要的软件包。不像buildroot是自己编源码,在openwrt这些软件包事先都是已经编译好的,放到了源服务器上。
离线
buildroot 偏向于给你提供定制rootfs的选项,怎么选由用户来定。而且buildroot是选好了之后对源码进行交叉编译;而openwrt我的理解类似于Debian,官方给你选好了很多软件包和服务,组成了一个有特色的操作系统。当然由于带了包管理,你还是可以事后安装你想要的软件包。不像buildroot是自己编源码,在openwrt这些软件包事先都是已经编译好的,放到了源服务器上。
嗯,这么说好像是那么回事
离线
buildroot 偏向于给你提供定制rootfs的选项,怎么选由用户来定。而且buildroot是选好了之后对源码进行交叉编译;而openwrt我的理解类似于Debian,官方给你选好了很多软件包和服务,组成了一个有特色的操作系统。当然由于带了包管理,你还是可以事后安装你想要的软件包。不像buildroot是自己编源码,在openwrt这些软件包事先都是已经编译好的,放到了源服务器上。
我感觉使用上差不多,主要都是三步:
1、git clone 下载源码
2、make xxx_defconfig(OpenWrt不需要此步)、make menuconfig 选择芯片型号、开发板型号、需要的功能和软件
3、make 编译生成linux镜像文件,,执行这一步的时候都会先根据选择的芯片编译生成交叉编译器,,然后再用交叉编译器编译系统镜像
感觉真的很相似,,
要说差异的话,似乎OpenWrt的官方源码https://github.com/openwrt/openwrt中支持的芯片型号几乎都是路由器芯片,,非路由器芯片很少
不过这似乎也不是啥大问题,,因为我们下载源码的时候一般都是去芯片/开发板供应商那里去下载,,而不是去openwrt或buildroot的github去下载
离线
达克罗德 说:buildroot 偏向于给你提供定制rootfs的选项,怎么选由用户来定。而且buildroot是选好了之后对源码进行交叉编译;而openwrt我的理解类似于Debian,官方给你选好了很多软件包和服务,组成了一个有特色的操作系统。当然由于带了包管理,你还是可以事后安装你想要的软件包。不像buildroot是自己编源码,在openwrt这些软件包事先都是已经编译好的,放到了源服务器上。
我感觉使用上差不多,主要都是三步:
1、git clone 下载源码
2、make xxx_defconfig(OpenWrt不需要此步)、make menuconfig 选择芯片型号、开发板型号、需要的功能和软件
3、make 编译生成linux镜像文件,,执行这一步的时候都会先根据选择的芯片编译生成交叉编译器,,然后再用交叉编译器编译系统镜像感觉真的很相似,,
要说差异的话,似乎OpenWrt的官方源码https://github.com/openwrt/openwrt中支持的芯片型号几乎都是路由器芯片,,非路由器芯片很少
不过这似乎也不是啥大问题,,因为我们下载源码的时候一般都是去芯片/开发板供应商那里去下载,,而不是去openwrt或buildroot的github去下载
什么源码去芯片供应商下?比如v3s移植openwrt ,''make menuconfig 选择芯片型号、开发板型号、需要的功能和软件''openwrt源码自带的吗?
离线
XIVN1987 说:达克罗德 说:buildroot 偏向于给你提供定制rootfs的选项,怎么选由用户来定。而且buildroot是选好了之后对源码进行交叉编译;而openwrt我的理解类似于Debian,官方给你选好了很多软件包和服务,组成了一个有特色的操作系统。当然由于带了包管理,你还是可以事后安装你想要的软件包。不像buildroot是自己编源码,在openwrt这些软件包事先都是已经编译好的,放到了源服务器上。
我感觉使用上差不多,主要都是三步:
1、git clone 下载源码
2、make xxx_defconfig(OpenWrt不需要此步)、make menuconfig 选择芯片型号、开发板型号、需要的功能和软件
3、make 编译生成linux镜像文件,,执行这一步的时候都会先根据选择的芯片编译生成交叉编译器,,然后再用交叉编译器编译系统镜像感觉真的很相似,,
要说差异的话,似乎OpenWrt的官方源码https://github.com/openwrt/openwrt中支持的芯片型号几乎都是路由器芯片,,非路由器芯片很少
不过这似乎也不是啥大问题,,因为我们下载源码的时候一般都是去芯片/开发板供应商那里去下载,,而不是去openwrt或buildroot的github去下载
什么源码去芯片供应商下?比如v3s移植openwrt ,''make menuconfig 选择芯片型号、开发板型号、需要的功能和软件''openwrt源码自带的吗?
感觉只要用同一版本工具链编译的,同一架构,比如都是A7,我感觉服务器上面的包可以通用,凭本事想象的,路过的大佬请赐教
离线
什么源码去芯片供应商下?比如v3s移植openwrt ,''make menuconfig 选择芯片型号、开发板型号、需要的功能和软件''openwrt源码自带的吗?
有人移植就有,,没人移植就没有
比如NUC980的buildroot在芯片官方github上有 https://github.com/OpenNuvoton/NUC970_Buildroot
又如开发板RockPi S有人移植openwrt:https://github.com/jayanta525/rk3308-rock-pi-s
v3s的openwrt移植我搜了下,,确实没找到,,估计没有大神感兴趣吧
离线
看这里。。。
通过 v3s openwrt 上网发个帖
http://whycan.com/t_5379.html
(出处:哇酷开发者社区)
拍打323 说:什么源码去芯片供应商下?比如v3s移植openwrt ,''make menuconfig 选择芯片型号、开发板型号、需要的功能和软件''openwrt源码自带的吗?
有人移植就有,,没人移植就没有
比如NUC980的buildroot在芯片官方github上有 https://github.com/OpenNuvoton/NUC970_Buildroot
又如开发板RockPi S有人移植openwrt:https://github.com/jayanta525/rk3308-rock-pi-s
v3s的openwrt移植我搜了下,,确实没找到,,估计没有大神感兴趣吧
离线
看这里。。。
通过 v3s openwrt 上网发个帖
http://whycan.com/t_5379.html
(出处:哇酷开发者社区)
看来我搜的不够仔细,,
感谢指点
离线
一点看法,仅供参考:buildroot 本质是工具链 + rootfs 构建 + app build,但本身不提供复杂的启动及配置机制;openwrt 在 buildroot 基础上提供了系统升级、版本升级、系统管理及配置机制等等。
如果你需要复杂的软件系统,glibc 及更全面的库支持,buildroot 更合适;
如果你需要小巧的嵌入式版本,带升级功能和管理机制,那么 openwrt 更合适。
离线
一点看法,仅供参考:buildroot 本质是工具链 + rootfs 构建 + app build,但本身不提供复杂的启动及配置机制;openwrt 在 buildroot 基础上提供了系统升级、版本升级、系统管理及配置机制等等。
如果你需要复杂的软件系统,glibc 及更全面的库支持,buildroot 更合适;如果你需要小巧的嵌入式版本,带升级功能和管理机制,那么 openwrt 更合适。
感觉大佬说的很有道理,,感谢指点
最近编辑记录 XIVN1987 (2021-02-20 20:12:46)
离线
听大家这么一说,想问下,像nxp的yocto这种是什么,感觉像是buildroot
最近编辑记录 微凉VeiLiang (2021-02-20 20:43:42)
离线
听大家这么一说,想问下,像nxp的yocto这种是什么,感觉像是buildroot
可以理解成超大号buildroot
离线
听大家这么一说,想问下,像nxp的yocto这种是什么,感觉像是buildroot
Buildroot构建引导器、内核和根文件系统,Yocto可以构建一个完整的Linux发行版。
离线