Skip to contentSkip to conversation

Problems building live image

DISCUSSION Gary Thomas 4 participants 12 messages Mar 14, 2016 – Mar 17, 2016

lore
Share & tools
lore
#0 lore raw

I'd like to to some testing that qemu just doesn't seem up to so I attempted to build a live ISO per the documentation. I added these lines to local.conf:
IMAGE_FSTYPES_genericx86 += "live" NOISO_genericx86 = "0"

When I try to build core-image-base I get this error:
ERROR: INITRD_IMAGE_LIVE core-image-minimal-initramfs cannot use image live, hddimg or iso.
ERROR: Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.
ERROR: Failed to parse recipe: /local/poky-cutting-edge/meta/recipes-core/images/core-image-minimal-initramfs.bb

I'm using a recent Poky checkout (d53413d3a8444c38a83ea37867c8af7754d8e702)

Am I just doing something wrong here? I was following this section of the mega-manual:

26.56. image-live.bbclass¶

The image-live class supports building "live" images.

Normally, you do not use this class directly. Instead, you add "live" to IMAGE_FSTYPES. For example, if you were building an ISO image, you would add "live" to IMAGE_FSTYPES, set the NOISO variable to "0" and the build system would use the image-live class to build the ISO image.

I don't have any available hardware for this testing, so I thought I'd use VirtualBox. Is this a reasonable approach? I want to use a live ISO so I get a writable file system. I tried just using the .hddimage but that doesn't boot with VirtualBox :-(

To be clear, along with the additions above in local.conf, I tried:

  $ MACHINE=genericx86 bitbake core-image-base

Thanks for any ideas

Signature · 4 lines
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
#1 lore raw

just use IMAGE_FSTYPES = "vmdk" if you plan to use virtualbox and need a raw image.

Quoted 50 lines · Gary Thomas

I'd like to to some testing that qemu just doesn't seem up to so I attempted to build a live ISO per the documentation. I added these lines to local.conf:
IMAGE_FSTYPES_genericx86 += "live" NOISO_genericx86 = "0"

When I try to build core-image-base I get this error:
ERROR: INITRD_IMAGE_LIVE core-image-minimal-initramfs cannot use image
live, hddimg or iso.
ERROR: Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.
ERROR: Failed to parse recipe:
/local/poky-cutting-edge/meta/recipes-core/images/core-image-minimal-initramfs.bb

I'm using a recent Poky checkout (d53413d3a8444c38a83ea37867c8af7754d8e702)

Am I just doing something wrong here? I was following this section of the mega-manual:

26.56. image-live.bbclass¶

The image-live class supports building "live" images.

Normally, you do not use this class directly. Instead, you add "live" to
IMAGE_FSTYPES.
For example, if you were building an ISO image, you would add "live" to
IMAGE_FSTYPES,
set the NOISO variable to "0" and the build system would use the
image-live class to
build the ISO image.

I don't have any available hardware for this testing, so I thought I'd use VirtualBox. Is this a reasonable approach? I want to use a live ISO so I get a writable file system. I tried just using the .hddimage but that doesn't boot with VirtualBox :-(

To be clear, along with the additions above in local.conf, I tried:

  $ MACHINE=genericx86 bitbake core-image-base

Thanks for any ideas

--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
--
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

#6 lore raw
In reply to Gary Thomas
Quoted 34 lines · Gary Thomas

I'd like to to some testing that qemu just doesn't seem up to so I attempted to build a live ISO per the documentation. I added these lines to local.conf:
IMAGE_FSTYPES_genericx86 += "live" NOISO_genericx86 = "0"

When I try to build core-image-base I get this error:
ERROR: INITRD_IMAGE_LIVE core-image-minimal-initramfs cannot use
image live, hddimg or iso.
ERROR: Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.
ERROR: Failed to parse recipe:
/local/poky-cutting-edge/meta/recipes-core/images/core-image-minimal-initramfs.bb

I'm using a recent Poky checkout (d53413d3a8444c38a83ea37867c8af7754d8e702)

Am I just doing something wrong here? I was following this section of the mega-manual:

26.56. image-live.bbclass¶

The image-live class supports building "live" images.

Normally, you do not use this class directly. Instead, you add
"live" to IMAGE_FSTYPES.
For example, if you were building an ISO image, you would add "live"
to IMAGE_FSTYPES,
set the NOISO variable to "0" and the build system would use the
image-live class to
build the ISO image.

I don't have any available hardware for this testing, so I thought I'd use VirtualBox. Is this a reasonable approach? I want to use a live ISO so I get a writable file system. I tried just using the .hddimage but that doesn't boot with VirtualBox :-(

Quoted 4 lines

To be clear, along with the additions above in local.conf, I tried:

  $ MACHINE=genericx86 bitbake core-image-base

Thanks for any ideas

You can boot the .hddimg on VirtualBox by first converting it to vdi, (or vmdk), using:

qemu-img convert -O vdi foo.hddimg foo.vdi

The vmdk doesn't seem to work for me on VMware, oddly. And adding vmdk to IMAGE_FSTYPES doesn't seem to work either as it is apparently built from hdddirect, (no clue why that's distinct from hddimg but it doesn't boot for me).

--rich

#7 lore raw
Quoted 33 lines · K Richard Pixley
Quoted 32 lines · Gary Thomas

I'd like to to some testing that qemu just doesn't seem up to so I attempted to build a live ISO per the documentation. I added these lines to local.conf:
IMAGE_FSTYPES_genericx86 += "live" NOISO_genericx86 = "0"

When I try to build core-image-base I get this error:
ERROR: INITRD_IMAGE_LIVE core-image-minimal-initramfs cannot use image live, hddimg or iso.
ERROR: Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.
ERROR: Failed to parse recipe: /local/poky-cutting-edge/meta/recipes-core/images/core-image-minimal-initramfs.bb

I'm using a recent Poky checkout (d53413d3a8444c38a83ea37867c8af7754d8e702)

Am I just doing something wrong here? I was following this section of the mega-manual:

26.56. image-live.bbclass¶

The image-live class supports building "live" images.

Normally, you do not use this class directly. Instead, you add "live" to IMAGE_FSTYPES. For example, if you were building an ISO image, you would add "live" to IMAGE_FSTYPES, set the NOISO variable to "0" and the build system would use the image-live class to build the ISO image.

I don't have any available hardware for this testing, so I thought I'd use VirtualBox. Is this a reasonable approach? I want to use a live ISO so I get a writable file system. I tried just using the .hddimage but that doesn't boot with VirtualBox :-(

To be clear, along with the additions above in local.conf, I tried:

  $ MACHINE=genericx86 bitbake core-image-base
Quoted 7 lines
Quoted 1 line

Thanks for any ideas

You can boot the .hddimg on VirtualBox by first converting it to vdi, (or vmdk), using:

qemu-img convert -O vdi foo.hddimg foo.vdi

The vmdk doesn't seem to work for me on VMware, oddly. And adding vmdk to IMAGE_FSTYPES doesn't seem to work either as it is apparently built from hdddirect, (no clue why that's distinct from hddimg but it doesn't boot for me).

Thanks. I got the .vmdk to boot but I had to manually select the root device during boot to root=/dev/hda2. After that, it worked as expected.

Signature · 4 lines
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
#8 lore raw
Quoted 40 lines · Gary Thomas
Quoted 36 lines · K Richard Pixley
Quoted 29 lines · Gary Thomas

I'd like to to some testing that qemu just doesn't seem up to so I attempted to build a live ISO per the documentation. I added these lines to local.conf:
IMAGE_FSTYPES_genericx86 += "live" NOISO_genericx86 = "0"

When I try to build core-image-base I get this error:
ERROR: INITRD_IMAGE_LIVE core-image-minimal-initramfs cannot use image live, hddimg or iso.
ERROR: Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.
ERROR: Failed to parse recipe: /local/poky-cutting-edge/meta/recipes-core/images/core-image-minimal-initramfs.bb

I'm using a recent Poky checkout (d53413d3a8444c38a83ea37867c8af7754d8e702)

Am I just doing something wrong here? I was following this section of the mega-manual:

26.56. image-live.bbclass¶

The image-live class supports building "live" images.

Normally, you do not use this class directly. Instead, you add "live" to IMAGE_FSTYPES. For example, if you were building an ISO image, you would add "live" to IMAGE_FSTYPES, set the NOISO variable to "0" and the build system would use the image-live class to build the ISO image.

I don't have any available hardware for this testing, so I thought I'd use VirtualBox. Is this a reasonable approach? I want to use a live ISO so I get a writable file system. I tried just using the .hddimage but that doesn't boot with VirtualBox :-(

Quoted 4 lines

To be clear, along with the additions above in local.conf, I tried:

 $ MACHINE=genericx86 bitbake core-image-base

Thanks for any ideas

You can boot the .hddimg on VirtualBox by first converting it to vdi, (or vmdk), using:

Quoted 9 lines
Quoted 4 lines

qemu-img convert -O vdi foo.hddimg foo.vdi

The vmdk doesn't seem to work for me on VMware, oddly. And adding vmdk to IMAGE_FSTYPES doesn't seem to work either as it is apparently built from hdddirect, (no clue why that's distinct from hddimg but it doesn't boot for me).

Thanks. I got the .vmdk to boot but I had to manually select the root device during boot to root=/dev/hda2. After that, it worked as expected.

you can also set
SYSLINUX_ROOT = "root=/dev/hda2”
in some place in your configuration metadata

Quoted 10 lines

--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
--
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

#9 lore raw

While we're on it...

Can anyone explain what a "live" image is intended to be?

(I haven't gotten a live image to "work", but I'm not entirely sure I know what "work" means for a live image.)

Or how hdddirect is intended to be different from hddimg?

--rich

#10 lore raw
Quoted 3 lines · K Richard Pixley

While we're on it...

Can anyone explain what a "live" image is intended to be?

it can either boot from the disk or you can run the installer to install it to another media on your device.

Quoted 3 lines

(I haven't gotten a live image to "work", but I'm not entirely sure I know what "work" means for a live image.)

what issues do you see ? may that can help answer this

Quoted 2 lines

Or how hdddirect is intended to be different from hddimg?

hdddirect is raw disk image.

#11 lore raw
Quoted 6 lines · Khem Raj
Quoted 3 lines · K Richard Pixley

While we're on it...

Can anyone explain what a "live" image is intended to be?

it can either boot from the disk or you can run the installer to install it to another media on your device.

How is that different from an ISO? I mean, isn't that what an ISO image does?

Quoted 3 lines
Quoted 2 lines

(I haven't gotten a live image to "work", but I'm not entirely sure I know what "work" means for a live image.)

what issues do you see ? may that can help answer this

Mostly build time issues with "live" conflicting with "vmdk" and the like.

Quoted 2 lines
Quoted 1 line

Or how hdddirect is intended to be different from hddimg?

hdddirect is raw disk image.

I thought hddimg was a raw disk image. If hdddirect is a raw disk image, then what's hddimg?

--rich

#2 lore raw
In reply to Khem Raj

If I add that line, (

IMAGE_FSTYPES = "vmdk"

), to my local.conf, I get:

rich@burgess> time bitbake core-image-minimal
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable
the checker (see sanity.conf).
Following is the list of potential problems / advisories:

Error, IMAGE_FSTYPES vmdk and live can't be built together

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Building yocto-2.0 for genericx86-64. What am I doing wrong?

--rich

Quoted 54 lines · Khem Raj

just use IMAGE_FSTYPES = "vmdk" if you plan to use virtualbox and need a raw image.

Quoted 50 lines · Gary Thomas

I'd like to to some testing that qemu just doesn't seem up to so I attempted to build a live ISO per the documentation. I added these lines to local.conf:

   IMAGE_FSTYPES_genericx86 += "live"
   NOISO_genericx86 = "0"

When I try to build core-image-base I get this error:
ERROR: INITRD_IMAGE_LIVE core-image-minimal-initramfs cannot use image
live, hddimg or iso.
ERROR: Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.
ERROR: Failed to parse recipe:
/local/poky-cutting-edge/meta/recipes-core/images/core-image-minimal-initramfs.bb

I'm using a recent Poky checkout (d53413d3a8444c38a83ea37867c8af7754d8e702)

Am I just doing something wrong here? I was following this section of the mega-manual:

26.56. image-live.bbclass¶

The image-live class supports building "live" images.

Normally, you do not use this class directly. Instead, you add "live" to
IMAGE_FSTYPES.
For example, if you were building an ISO image, you would add "live" to
IMAGE_FSTYPES,
set the NOISO variable to "0" and the build system would use the
image-live class to
build the ISO image.

I don't have any available hardware for this testing, so I thought I'd use VirtualBox. Is this a reasonable approach? I want to use a live ISO so I get a writable file system. I tried just using the .hddimage but that doesn't boot with VirtualBox :-(

To be clear, along with the additions above in local.conf, I tried:

   $ MACHINE=genericx86 bitbake core-image-base

Thanks for any ideas

--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
--
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

#3 lore raw

Richard,

Quoted 13 lines · K Richard Pixley

If I add that line, (

IMAGE_FSTYPES = "vmdk"

), to my local.conf, I get:

rich@burgess> time bitbake core-image-minimal
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the
checker (see sanity.conf).
Following is the list of potential problems / advisories:

Quoted 8 lines

Error, IMAGE_FSTYPES vmdk and live can't be built together

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Building yocto-2.0 for genericx86-64. What am I doing wrong?

Nothing really. The issue is conflicting SYSLINUX_LABELS for the boot

options. For the live image the labels are boot and install while there is only boot for the vmdk image. Prior to 2.0 Jethro you could specify both, live and vmdk, in IMAGE_FSTYPES. It built both but the live image was missing the install boot option (it had two boot options instead). This function in syslinux.bbclass now flags the issue:

# Some of the vars for vm and live image are conflicted, this function

# is used for fixing the problem.
def syslinux_set_vars(d, suffix):
   vars = ['SYSLINUX_ROOT', 'SYSLINUX_CFG', 'LABELS', 'INITRD']
   for var in vars:
       var_with_suffix = var + '_' + suffix
       if d.getVar(var, True):
           bb.warn('Found potential conflicted var %s, please use %s rather
than %s' % \
               (var, var_with_suffix, var))
       elif d.getVar(var_with_suffix, True):
           d.setVar(var, d.getVar(var_with_suffix, True))

Technically, in my opinion, you should be able to build both at the same
time. You may want to disable the sanity checker.

Cheers,
Rudi

#4 lore raw
Quoted 41 lines · Rudolf Streif

Richard,

On Mon, Mar 14, 2016 at 1:55 PM, K Richard Pixley <[email protected] <mailto:[email protected]>> wrote:

If I add that line, (

IMAGE_FSTYPES = "vmdk"

), to my local.conf, I get:

rich@burgess> time bitbake core-image-minimal
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk
disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:

Error, IMAGE_FSTYPES vmdk and live can't be built together

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Building yocto-2.0 for genericx86-64. What am I doing wrong?

Nothing really. The issue is conflicting SYSLINUX_LABELS for the boot options. For the live image the labels are boot and install while there is only boot for the vmdk image. Prior to 2.0 Jethro you could specify both, live and vmdk, in IMAGE_FSTYPES. It built both but the live image was missing the install boot option (it had two boot options instead). This function in syslinux.bbclass now flags the issue:

# Some of the vars for vm and live image are conflicted, this function

# is used for fixing the problem.
def syslinux_set_vars(d, suffix):
   vars = ['SYSLINUX_ROOT', 'SYSLINUX_CFG', 'LABELS', 'INITRD']
   for var in vars:
       var_with_suffix = var + '_'+ suffix
       if d.getVar(var, True):
           bb.warn('Found potential conflicted var %s, please use %s 
rather than %s'% \
               (var, var_with_suffix, var))
       elif d.getVar(var_with_suffix, True):
           d.setVar(var, d.getVar(var_with_suffix, True))
Quoted 2 lines

Technically, in my opinion, you should be able to build both at the
same time. You may want to disable the sanity checker.

Thank you.

What stops us from building different boot labels for different images? That seems like the obvious choice. Or perhaps, using "boot" for all syslinux images and adding "install" for "live" images.

--rich

#5 lore raw
Quoted 4 lines · K Richard Pixley

What stops us from building different boot labels for different images? That seems like the obvious choice. Or perhaps, using "boot" for all syslinux images and adding "install" for "live" images.

Fair question. Nothing really, I would think. The classes need to be adjusted to deal with different LABELS.
:rjs