哪种发行版更适合您的嵌入式系统使用?

哪种发行版更适合嵌入式系统使用。 这个问题与今天有关。

有三种解决此问题的方法:

  1. 为单板计算机使用现成的发行版(Armbian,Openwrt等)
  2. 使用构建系统(Buildroot / Yocto等)构建和配置发行版。
  3. 使用捆绑程序引导加载程序(u-boot)+内核(内核)+ rootfs(busybox)。

如果其他人知道,请在评论中写。
更新
OpenWRT项目既是一个构建系统(不是buildroot),又是一个为目标板提供现成的组装映像的项目。


现成的发行版


我相信使用现成的发行版是最简便的方法。 您可以下载完成的图像或构建自己的图像。 组装Armbain映像并不总是很灵活,因为您不能选择任何版本的Linux内核,而只能使用提供的版本。

现成的发行版的主要优点也应该得到解答-它们的稳定性。
对于初学者,我建议使用这些发行版。


Armbian是一种流行的Linux发行版,可用于各种ARM设备:Orange Pi,Banana Pi,Odroid等……它基于Ubuntu和/或Debian。
www.armbian.com



OpenWrt是基于Linux内核的嵌入式操作系统,主要设计用于家用路由器。 关键组件包括Linux内核,util-linux,uClibc或musl以及BusyBox。 由于大多数家用路由器的内存量非常有限,因此优化了所有组件的大小。

我会自己添加一个,非常适合带有Wi-Fi的主板(例如Orange Pi Zero)。
openwrt.org

组装系统


组装系统的主要优点是您可以为嵌入式系统构建最小且灵活的Linux。

Buildroot



Buildroot是用于嵌入式系统的发行版构建系统。 它支持许多板,其工作结果是组装好的引导程序,内核和映像
文件系统。

它允许为您的系统构建buildroot:

  • 系统映像;
  • 该系统允许您选择内核版本-任何。
  • 您可以添加任何补丁并安装任何程序。
  • 实用程序的灵活配置(例如busyBox,bash等)

应该注意的是,所有其他来源都是从网络中提取的。

例如,将此类程序集与Armbian程序集区分开:

  • 该发行版不是基于(Debian或Ubuntu)构建的,而是基于定制的灵活Linux。
  • 最小装配尺寸。
  • 选择任何内核版本。

buildroot.org

3.使用捆绑包:

为此,我们需要:

  • 交叉编译器(例如Linaro);
  • 引导加载程序(例如U-boot);
  • 内核;
  • RootFs(例如Busybox)。

所以走吧
因此,我们将在本地计算机上收集我们需要的交叉编译器,例如linaro。 交叉编译器将帮助x86体系结构为目标ARM平台组装我们的发行版。
www.linaro.org

接下来,您需要构建一个引导程序。

Bootloader(U-Boot)-ARM最受欢迎的Bootloader是U-boot。 引导加载程序的主要任务是引导Linux内核。 您也可以使用例如barebox或其他。
www.denx.de/wiki/U-Boot


下一个 我们需要构建内核,在输出处我们需要获取目标平台的内核映像和设备树。
www.kernel.org

RootFs是内核在引导后将挂载的根文件系统。 我建议使用Busybox。


busybox.net

结论


我并不是说有不好的方法。 每种都有自己的优点和缺点。 这取决于您的任务以及需要获得什么结果。

Source: https://habr.com/ru/post/zh-CN465435/


All Articles