如何创建和部署自定义的嵌入式linux映像

时间:2016-10-12 07:36:57

标签: linux image filesystems embedded

我有一个自定义的Linux文件系统,在根文件系统中有一些二进制文件和新文件夹。这个Linux文件系统是为小型计算机创建的。

目前,我将自定义文件系统的根文件夹压缩为tar.gz文件。有了这个tar.gz文件,我可以分享给我的朋友。然后必须将此文件解压缩到SD卡。使用此方法,他们还可以更新库或二进制文件以进行测试。 但是,这种机制(创建和部署)需要花费很多时间。

我的问题是: 1.如何改进创建和部署自定义linux映像? 2.如果我看到linux发行版,它们使用.iso或.img格式。使用.iso或.img而不是tar.gz或zip文件的原因是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

您有两个加快步骤:

  1. 创建可与朋友分享的图片
  2. 在电路板上部署图像进行测试
  3. 1。步骤

    • 尽可能自动化。你甚至可以设置一个Jenkins server,它应该能够自动化任何看起来像重复性工作的东西。 (编辑,压缩,上传或将图像发送给朋友)

    • 使用所有核心压缩图像。 AFAIK gzip仅使用一个核心。 pigz应该更快地压缩/解压缩

    2。步骤:从NFS运行rootfs。

    这是实时节省的,因为您不再需要将rootfs复制到SD卡了:

    如果您的引导加载程序支持它,请使用nfs / tftp boot。然后,您的主板直接从网络安装而不是SD卡启动。我不知道你使用哪个引导加载程序,但u-boot支持它,其他人可能也支持它。

答案 1 :(得分:0)

这取决于究竟需要更新的内容。如果这是整个文件系统总是在变化 - 那么只需分发压缩的img(例如xz)。如果这是系统的一小部分 - 只需使用包管理器,即将该部分提取到包中,接下来使用标准发行版工具创建这个新包并仅分发它。

因此,如果您的SD卡图像具有固定大小 - 您可以使用rsync / xdelta仅分发更改,但它们的效率取决于确切的更改百分比。