From: Tom Zanussi <tom.zanussi@linux.intel.com>
To: "João Henrique Ferreira de Freitas" <joaohf@gmail.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 0/5] wic: Add --rootfs option to --source param
Date: Fri, 21 Mar 2014 10:54:28 -0500 [thread overview]
Message-ID: <1395417268.25867.74.camel@empanada> (raw)
In-Reply-To: <1394918271-14153-1-git-send-email-joaohf@gmail.com>
On Sat, 2014-03-15 at 18:17 -0300, João Henrique Ferreira de Freitas
wrote:
> 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=<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.
>
> 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).
>
Hi João,
This is a nice generalization of the --source plugin for the rootfs and
it does allow users to create .wks files that address a particular
image's needs with hard-coded paths to rootfs dirs, which I think is
something that the tool does need to be able to handle.
However, I think we also need to be able to create more
general-purpose .wks files that don't hard-code the directories but
instead take the directory names from the command-line.
Currently what we have for that purpose is:
wic create ... --rootfs-dir /some/rootfs/dir
And because we only support one rootfs partition at the moment, that
--rootfs-dir automatically gets assigned to the single --source rootfs:
part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024
Generalizing that to multiple directories could look something like
this:
wic create ... --rootfs-dir /some/rootfs/dir --rootfs-dir /some/other/rootfs/dir
That would assign the first to the / partition and the second to
the /standby partition if using this in the .wks file:
part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024
part /standby --source rootfs --rootfs=<special rootfs directory> \
--ondisk sda --fstype=ext3 --label secondary --align 1024
The problem is that we're relying on ordering between the .wks file and
the command-line, and what if we're also using the -e param? - that
assumes the --rootfs-dir is coming from the image file.
I'd rather just ignore -e altogether when thinking about this, since
it's really just a usability hack and I don't think it should drive the
overall interface.
In any case, I think the connection between a command-line param and the
line in the .wks file should be explicit, but I'm not sure about the
best way do do that, maybe something like:
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
In the above case, 'rootfs1' and 'rootfs2' provide the connection (and
could be named anything, they're just strings).
The default, as is currently the case, is if --source rootfs is used
alone and no --rootfs-dir is specified for that line in the .wks file,
in which case the rootfs dir is automatically supplied by the
--rootfs-dir /some/rootfs/dir (or from the rootfs in the -e image).
Your current hard-coded secondary use case would still work without any
explicit named params - /standby would use --rootfs-dir=/some/rootfs/dir
and / would use either the rootfs from either -e or -r:
wic create ... hard-coded-path.wks -e core-image-minimal
or
wic create ... hard-coded-path.wks -r /some/rootfs/dir
part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024
part /standby --source rootfs --rootfs-dir=/some/rootfs/dir \
--ondisk sda --fstype=ext3 --label secondary --align 1024
And we can still use a default rootfs dir with a named dir for the other
partition:
wic create ... -e core-image-minimal rootfs2=/some/other/rootfs/dir
or
wic create ... --rootfs-dir /some/rootfs/dir --rootfs-dir rootfs2=/some/other/rootfs/dir
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
So I guess that's what make sense to me, but I'd be happy to hear other
ideas.
In any case, at minimum I think that you should change the syntax from
--rootfs=<special rootfs directory> to --rootfs-dir=<special rootfs
directory>, in keeping with current syntax.
Another thing missing is displaying the extra partitions in the output
e.g. I created an image with the added /standby, and it worked but I
didn't see it mentioned in the output, which it should be:
[trz@empanada build]$ wic create directdisk-multi -e core-image-minimal
Checking basic build environment...
Done.
Creating image(s)...
Info: The new image(s) can be found here:
/var/tmp/wic/build/directdisk-multi-201403211050-sda.direct
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /home/trz/yocto/master-cur/build/tmp/work/crownbay-poky-linux/core-image-minimal/1.0-r0/rootfs
BOOTIMG_DIR: /home/trz/yocto/master-cur/build/tmp/sysroots/crownbay/usr/share
KERNEL_DIR: /home/trz/yocto/master-cur/build/tmp/sysroots/crownbay/usr/src/kernel
NATIVE_SYSROOT: /home/trz/yocto/master-cur/build/tmp/sysroots/x86_64-linux
The image(s) were created using OE kickstart file:
/home/trz/yocto/master-cur/scripts/lib/image/canned-wks/directdisk-multi.wks
Thanks,
Tom
> Thanks.
>
> João Henrique Ferreira de Freitas (5):
> 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 to --source
>
> .../lib/mic/kickstart/custom_commands/partition.py | 38 +++++++-------
> scripts/lib/mic/pluginbase.py | 2 +-
> 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 | 58 ++++++++++++++++++++++
> 5 files changed, 81 insertions(+), 21 deletions(-)
> create mode 100644 scripts/lib/mic/plugins/source/rootfs.py
>
> --
> 1.8.3.2
>
next prev parent reply other threads:[~2014-03-21 15:54 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-15 21:17 [PATCH 0/5] wic: Add --rootfs option to --source param João Henrique Ferreira de Freitas
2014-03-15 21:17 ` [PATCH 1/5] wic: Add RootfsPlugin João Henrique Ferreira de Freitas
2014-03-15 21:17 ` [PATCH 2/5] wic: Hook up RootfsPlugin plugin João Henrique Ferreira de Freitas
2014-03-15 21:17 ` [PATCH 3/5] wic: Add rootfs_dir argument to do_prepare_partition() method João Henrique Ferreira de Freitas
2014-03-15 21:17 ` [PATCH 4/5] wic: Use partition label to be part of rootfs filename João Henrique Ferreira de Freitas
2014-03-15 21:17 ` [PATCH 5/5] wic: Add option --rootfs to --source João Henrique Ferreira de Freitas
2014-03-17 14:53 ` [PATCH 0/5] wic: Add --rootfs option to --source param Otavio Salvador
2014-03-17 15:47 ` João Henrique Freitas
2014-03-17 16:11 ` Otavio Salvador
2014-03-17 16:20 ` João Henrique Freitas
2014-03-31 1:52 ` João Henrique Ferreira de Freitas
2014-03-31 14:39 ` Tom Zanussi
2014-03-31 16:29 ` João Henrique Freitas
2014-03-21 15:54 ` Tom Zanussi [this message]
2014-03-23 2:25 ` João Henrique Ferreira de Freitas
2014-03-24 20:13 ` Tom Zanussi
2014-03-25 2:28 ` João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 0/7] " João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 1/7] wic: Add RootfsPlugin João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 2/7] wic: Hook up RootfsPlugin plugin João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 3/7] wic: Add rootfs_dir argument to do_prepare_partition() method João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 4/7] wic: Use partition label to be part of rootfs filename João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 5/7] wic: Add option --rootfs-dir to --source João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 6/7] wic: Report all ROOTFS_DIR artifacts João Henrique Ferreira de Freitas
2014-03-26 2:42 ` [PATCH v2 7/7] wic: Extend --rootfs-dir to connect rootfs-dirs João Henrique Ferreira de Freitas
2014-03-27 20:15 ` [PATCH v2 0/7] wic: Add --rootfs option to --source param Tom Zanussi
2014-03-27 22:12 ` João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 " João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 1/7] wic: Add RootfsPlugin João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 2/7] wic: Hook up RootfsPlugin plugin João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 3/7] wic: Add rootfs_dir argument to do_prepare_partition() method João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 4/7] wic: Use partition label to be part of rootfs filename João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 5/7] wic: Add option --rootfs-dir to --source João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 6/7] wic: Report all ROOTFS_DIR artifacts João Henrique Ferreira de Freitas
2014-03-27 22:07 ` [PATCH v3 7/7] wic: Extend --rootfs-dir to connect rootfs-dirs João Henrique Ferreira de Freitas
2014-03-28 21:38 ` [PATCH v3 0/7] wic: Add --rootfs option to --source param Tom Zanussi
2014-03-29 3:24 ` João Henrique Ferreira de Freitas
2014-03-29 19:04 ` Tom Zanussi
2014-03-29 3:12 ` [PATCH v4 " João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 1/7] wic: Add RootfsPlugin João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 2/7] wic: Hook up RootfsPlugin plugin João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 3/7] wic: Add rootfs_dir argument to do_prepare_partition() method João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 4/7] wic: Use partition label to be part of rootfs filename João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 5/7] wic: Add option --rootfs-dir to --source João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 6/7] wic: Report all ROOTFS_DIR artifacts João Henrique Ferreira de Freitas
2014-03-29 3:12 ` [PATCH v4 7/7] wic: Extend --rootfs-dir to connect rootfs-dirs João Henrique Ferreira de Freitas
2014-03-29 19:09 ` [PATCH v4 0/7] wic: Add --rootfs option to --source param Tom Zanussi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1395417268.25867.74.camel@empanada \
--to=tom.zanussi@linux.intel.com \
--cc=joaohf@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.