In looking at the poky tiny initramfs image, it sets:

IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"


Which would then make the two variable the same and make the check kick in. But I cannot find where it manual says that you have to make them the same value and cannot generate an initramfs image along with all other image types.



On 8/2/2023 1:14 PM, Ryan Eatmon via lists.openembedded.org wrote:

I added some debugging to print out the various variables on interest and got this output:

DEBUG: image_fstypes= tar.xz wic.xz wic.bmap tar.xz.md5sum cpio cpio.xz
DEBUG: initramfs_fstypes=cpio.gz cpio cpio.xz
DEBUG: initramfs_maxsize=65536.000000
DEBUG: base_size=74366

So I'm not sure I agree with what you are saying.  Again, I might be missing something in how the == is supposed to work when comparing the two variables...


On 8/2/2023 12:17 PM, Christopher Larson wrote:
Image builds obey IMAGE_FSTYPES. Initramfs images set that to INITRAMFS_FSTYPES, so it's comparing the two as a check to see if this is an initramfs image. It isn't making sure it matches a hardcoded list, so intersection isn't necessary.

On Wed, Aug 2, 2023 at 9:41 AM Ryan Eatmon via lists.openembedded.org <http://lists.openembedded.org> <reatmon=ti....@lists.openembedded.org <mailto:ti....@lists.openembedded.org>> wrote:


    I am trying to add support for the INITRAMFS_MAXSIZE into the meta-ti
    layer for our tiny image.

    I have added the following to our tiny image file:

    INITRAMFS_FSTYPES += "cpio cpio.xz"
    INITRAMFS_MAXSIZE = "65536"

    But I'm not seeing any errors about the image being too big being
    printed.

    In looking at the code in question:

          # Check the initramfs size against INITRAMFS_MAXSIZE (if set)
          if image_fstypes == initramfs_fstypes != ''  and
    initramfs_maxsize:
              initramfs_maxsize_int = int(initramfs_maxsize)
              if base_size > initramfs_maxsize_int:
                  bb.error("The initramfs size %d(K) exceeds
    INITRAMFS_MAXSIZE: %d(K)" % \
                      (base_size, initramfs_maxsize_int))
                  bb.error("You can set INITRAMFS_MAXSIZE a larger value.
    Usually, it should")
                  bb.fatal("be less than 1/2 of ram size, or you may
    fail to
    boot it.\n")


    What is the purpose of the:

    if image_fstypes == initramfs_fstypes != ''


    It seems to looking for the ONLY images being built are the exact same     as the INITRAMFS_FSTYPES...  Shouldn't that be more of an intersection     check?  If any of the INITRAMFS_FSTYPES are in the IMAGE_FSTYPES, then
    check the size?

    Or am I missing something?



    --     Ryan Eatmon reat...@ti.com <mailto:reat...@ti.com>
    -----------------------------------------
    Texas Instruments, Inc.  -  LCPD  -  MGTS




--
Christopher Larson
chris_lar...@mentor.com, chris.lar...@siemens.com, kerg...@gmail.com
Principal Software Engineer, Embedded Linux Solutions, Siemens Digital Industries Software






--
Ryan Eatmon                reat...@ti.com
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#185427): 
https://lists.openembedded.org/g/openembedded-core/message/185427
Mute This Topic: https://lists.openembedded.org/mt/100509426/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to