Skip to content

wic: Add --rootfs option to --source param

João Henrique Ferreira de Freitas openembedded-core 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest7 patches 1 replyIn review
  2. v37 patches 3 repliesSuperseded
  3. v27 patches 2 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v15 patches11 repliesSuperseded

Changes in v4 from the cover letter

- fix fstab parser/create when --rootfs-dir connector is used and there was not passed a --rootfs-dir param on wic command line
- fix wic command line param when used without --rootfs-dir and only --rootfs-dir connectors are passed

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7wic: Add RootfsPluginscripts/lib/mic/plugins/source/rootfs.py+58 -00 replies
2/7wic: Hook up RootfsPlugin pluginscripts/lib/mic/kickstart/custom_commands/partition.py+12 -160 replies
3/7wic: Add rootfs_dir argument to do_prepare_partition() methodscripts/lib/mic/pluginbase.py scripts/lib/mic/plugins/source/bootimg-efi.py scripts/lib/mic/plugins/source/bootimg-pcbios.py+3 -30 replies
4/7wic: Use partition label to be part of rootfs filenamescripts/lib/mic/kickstart/custom_commands/partition.py+2 -20 replies
5/7wic: Add option --rootfs-dir to --sourcescripts/lib/mic/kickstart/custom_commands/partition.py+6 -00 replies
6/7wic: Report all ROOTFS_DIR artifactsscripts/lib/mic/imager/direct.py scripts/lib/mic/kickstart/custom_commands/partition.py scripts/lib/mic/plugins/source/rootfs.py+28 -40 replies
7/7wic: Extend --rootfs-dir to connect rootfs-dirsscripts/lib/mic/imager/direct.py scripts/lib/mic/plugins/imager/direct_plugin.py scripts/lib/mic/plugins/source/rootfs.py +1 more+80 -150 replies

Reviews trailers per patch

None of the 7 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchTom Zanussi
SeriesA-b
1/7
2/7
3/7
4/7
5/7
6/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/7] wic: Add --rootfs option to --source param

Hi,

These patchs allows the user create the following directdisk-multi-rootfs.wks file:

  part /boot --source bootimg-pcbios --ondisk sda --fstype=msdos \
    --label boot --active --align 1024
  part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024

  part /standby --source rootfs --rootfs-dir=<special rootfs directory> \
    --ondisk sda --fstype=ext3 --label secondary --align 1024

  bootloader  --timeout=0  --append="rootwait rootfstype=ext3 video=vesafb vga=0x318 console=tty0"

The special thing is the /standby partition. Which using rootfs with a extra '--rootfs' argument instruct the RootfsPlugin what should be the rootfs directory to be used to create the partition.

Besides that, the user can specify a more generic connection
between wic command-line --rootfs-dir and what is describing in .wks file. Like this:

wic create ... --rootfs-dir rootfs1=/some/rootfs/dir --rootfs-dir rootfs2=/some/other/rootfs/dir

  part / --source rootfs --rootfs-dir="rootfs1" --ondisk sda --fstype=ext3 --label primary --align 1024

  part /standby --source rootfs --rootfs-dir="rootfs2" \
    --ondisk sda --fstype=ext3 --label secondary --align 1024

So no hard-coded path is used in .wks. The connection string could be any string that makes a link between the '--rootfs-dir'

It is a very simple features that let users to customize your partition setup. I thought in the case where we have two rootfs (like active and standby, e.g used to software update). Or the odd cases when a special partition need to be create to hold whatever files.

The workflow of wic use remains the same. All the config needs to be done in .wks file.

To test I used <special rootfs directory> as a rootfs created by 'bitbkae core-image-minimal-dev' (e.g: /srv/build/yocto/master/tmp/work/genericx86-poky-linux/core-image-minimal-dev/1.0-r0/rootfs).

Use cases and command line:

wic create directdisk-multi-rootfs.wks \
    -e core-image-minimal
    --rootfs-dir /srv/build/yocto/master/tmp/work/genericx86-poky-linux/core-image-minimal/1.0-r0/rootfs \
    --rootfs-dir rootfs2=/srv/build/yocto/master/tmp/work/genericx86-poky-linux/core-image-minimal-dev/1.0-r0/rootfs \
    --rootfs-dir rootfs3=/tmp/fakerootfs

directdisk-multi-rootfs.wks:

  part /boot --source bootimg-pcbios --ondisk sda --fstype=msdos --label boot --active --align 1024
  part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024

  part /standby --source rootfs --rootfs-dir=rootfs2 --ondisk sda --fstype=ext3 --label secondary --align 1024

  part /root --source rootfs --rootfs-dir=rootfs3 --ondisk sda --fstype=ext3 --label root_sec --align 1024

  bootloader  --timeout=0  --append="rootwait rootfstype=ext3 video=vesafb vga=0x318 console=tty0"
wic create directdisk-multi-rootfs-indirect.wks \
    -e core-image-minimal \
    --rootfs-dir rootfs1=/srv/build/yocto/master/tmp/work/genericx86-poky-linux/core-image-minimal/1.0-r0/rootfs \
    --rootfs-dir rootfs2=/srv/build/yocto/master/tmp/work/genericx86-poky-linux/core-image-minimal-dev/1.0-r0/rootfs \
    --rootfs-dir rootfs3=/tmp/fakerootfs

directdisk-multi-rootfs-indirect.wks:

  part /boot --source bootimg-pcbios --ondisk sda --fstype=msdos --label boot --active --align 1024
  part / --source rootfs --rootfs=rootfs1 --ondisk sda --fstype=ext3 --label primary --align 1024

  part /standby --source rootfs --rootfs-dir=rootfs2 --ondisk sda --fstype=ext3 --label secondary --align 1024

  part /root --source rootfs --rootfs-dir=rootfs3 --ondisk sda --fstype=ext3 --label root_sec --align 1024

  bootloader  --timeout=0  --append="rootwait rootfstype=ext3 video=vesafb vga=0x318 console=tty0"

changes since previous version:
v2:
- in .wks syntax change --rootfs to --rootfs-dir
- reporting all extra partitions in the output
- use a connection string between --rootfs-dir from wic command-line and .wks
v3:
- fix when wic -e command-line param is used and no --rootfs-dir was passed
v4:
- fix fstab parser/create when --rootfs-dir connector is used and there was not passed a --rootfs-dir param on wic command line
- fix wic command line param when used without --rootfs-dir and only --rootfs-dir connectors are passed

João Henrique Ferreira de Freitas (7):
wic: Add RootfsPlugin
wic: Hook up RootfsPlugin plugin
wic: Add rootfs_dir argument to do_prepare_partition() method
wic: Use partition label to be part of rootfs filename
wic: Add option --rootfs-dir to --source
wic: Report all ROOTFS_DIR artifacts
wic: Extend --rootfs-dir to connect rootfs-dirs

 scripts/lib/mic/imager/direct.py                   | 36 +++++++----
 .../lib/mic/kickstart/custom_commands/partition.py | 51 ++++++++++------
 scripts/lib/mic/pluginbase.py                      |  2 +-
 scripts/lib/mic/plugins/imager/direct_plugin.py    | 17 +++++-
 scripts/lib/mic/plugins/source/bootimg-efi.py      |  2 +-
 scripts/lib/mic/plugins/source/bootimg-pcbios.py   |  2 +-
 scripts/lib/mic/plugins/source/rootfs.py           | 71 ++++++++++++++++++++++
 scripts/wic                                        | 40 +++++++++++-
 8 files changed, 185 insertions(+), 36 deletions(-)
 create mode 100644 scripts/lib/mic/plugins/source/rootfs.py
Signature · 1 line
1.8.3.2