* Gatesgarth-24.0.4 image-live fails
@ 2021-05-24 12:19 Ferry Toth
2021-05-24 12:39 ` Ferry Toth
0 siblings, 1 reply; 6+ messages in thread
From: Ferry Toth @ 2021-05-24 12:19 UTC (permalink / raw)
To: yocto
Accidentally I refreshed poky and rebuilt. The image-live (do_bootimg)
fails when building hddimg with the following:
ERROR: edison-image-1.0-r0 do_bootimg: Error executing a python function
in exec_python_func() autogenerated: The stack trace of python calls
that resulted in this exception/failure was: File: 'exec_python_func()
autogenerated', lineno: 2, function: <module> 0001: ***
0002:do_bootimg(d) 0003: File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/meta/classes/image-live.bbclass',
lineno: 258, function: do_bootimg 0254: if d.getVar("PCBIOS") ==
"1": 0255: bb.build.exec_func('build_syslinux_cfg', d)
0256: if d.getVar("EFI") == "1": 0257:
bb.build.exec_func('build_efi_cfg', d) *** 0258:
bb.build.exec_func('build_hddimg', d) 0259:
bb.build.exec_func('build_iso', d) 0260:
bb.build.exec_func('create_symlinks', d) 0261:}
0262:do_bootimg[subimages] = "hddimg iso" File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
lineno: 256, function: exec_func 0252: with
bb.utils.fileslocked(lockfiles): 0253: if ispython:
0254: exec_func_python(func, d, runfile, cwd=adir)
0255: else: *** 0256: exec_func_shell(func, d,
runfile, cwd=adir) 0257: 0258: try: 0259:
curcwd = os.getcwd() 0260: except: File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
lineno: 503, function: exec_func_shell 0499: with open(fifopath,
'r+b', buffering=0) as fifo: 0500: try:
0501: bb.debug(2, "Executing shell function %s" % func)
0502: with open(os.devnull, 'r+') as stdin, logfile: ***
0503: bb.process.run(cmd, shell=False, stdin=stdin,
log=logfile, extrafiles=[(fifo,readfifo)]) 0504: except
bb.process.ExecutionError as exe: 0505: # Find the
backtrace that the shell trap generated 0506:
backtrace_marker_regex = re.compile(r"WARNING: Backtrace \(BB generated
script\)") 0507: stdout_lines = (exe.stdout or
"").split("\n") File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/process.py',
lineno: 184, function: run 0180: if not stderr is None:
0181: stderr = stderr.decode("utf-8") 0182:
0183: if pipe.returncode != 0: *** 0184: raise
ExecutionError(cmd, pipe.returncode, stdout, stderr) 0185:
return stdout, stderr Exception: bb.process.ExecutionError: Execution of
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/temp/run.build_hddimg.256530'
failed with exit code 1: mkdosfs: unable to create
/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/deploy-edison-image-image-complete/edison-image-edison-20210524113748.hddimg
mkfs.fat 4.1 (2017-01-24) WARNING: exit code 1 from a shell command.
The reason is that the directory deploy-edison-image-image-complete
doesn't exist at the time mkdosfs want to write. However after
completing the remainder of image live the directory does exists.
Consequently, running bitbake a second time image-live succeeds.
I've tried various thing including expressly creating the directory
before mkdosfs, but nothing worked. It seems I don't understand how it
is supposed to work in the first place.
However, I managed to trace back the issue to this commit 91e4a1c1
"image-live.bbclass: optional depends when ROOTFS empty".
Reverting this resolves the issue.
Any idea what could be wrong?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Gatesgarth-24.0.4 image-live fails
2021-05-24 12:19 Gatesgarth-24.0.4 image-live fails Ferry Toth
@ 2021-05-24 12:39 ` Ferry Toth
2021-05-25 12:19 ` Ferry Toth
0 siblings, 1 reply; 6+ messages in thread
From: Ferry Toth @ 2021-05-24 12:39 UTC (permalink / raw)
To: yocto
Wow, that got messed up, let me retry.
Op 24-05-2021 om 14:19 schreef Ferry Toth:
> Accidentally I refreshed poky and rebuilt. The image-live (do_bootimg)
> fails when building hddimg with the following:
>
ERROR: edison-image-1.0-r0 do_bootimg: Error executing a python function
in exec_python_func() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:do_bootimg(d)
0003:
File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/meta/classes/image-live.bbclass',
lineno: 258, function: do_bootimg
0254: if d.getVar("PCBIOS") == "1":
0255: bb.build.exec_func('build_syslinux_cfg', d)
0256: if d.getVar("EFI") == "1":
0257: bb.build.exec_func('build_efi_cfg', d)
*** 0258: bb.build.exec_func('build_hddimg', d)
0259: bb.build.exec_func('build_iso', d)
0260: bb.build.exec_func('create_symlinks', d)
0261:}
0262:do_bootimg[subimages] = "hddimg iso"
File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
lineno: 256, function: exec_func
0252: with bb.utils.fileslocked(lockfiles):
0253: if ispython:
0254: exec_func_python(func, d, runfile, cwd=adir)
0255: else:
*** 0256: exec_func_shell(func, d, runfile, cwd=adir)
0257:
0258: try:
0259: curcwd = os.getcwd()
0260: except:
File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
lineno: 503, function: exec_func_shell
0499: with open(fifopath, 'r+b', buffering=0) as fifo:
0500: try:
0501: bb.debug(2, "Executing shell function %s" % func)
0502: with open(os.devnull, 'r+') as stdin, logfile:
*** 0503: bb.process.run(cmd, shell=False, stdin=stdin,
log=logfile, extrafiles=[(fifo,readfifo)])
0504: except bb.process.ExecutionError as exe:
0505: # Find the backtrace that the shell trap generated
0506: backtrace_marker_regex = re.compile(r"WARNING:
Backtrace \(BB generated script\)")
0507: stdout_lines = (exe.stdout or "").split("\n")
File:
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/process.py',
lineno: 184, function: run
0180: if not stderr is None:
0181: stderr = stderr.decode("utf-8")
0182:
0183: if pipe.returncode != 0:
*** 0184: raise ExecutionError(cmd, pipe.returncode, stdout,
stderr)
0185: return stdout, stderr
Exception: bb.process.ExecutionError: Execution of
'/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/temp/run.build_hddimg.256530'
failed with exit code 1:
mkdosfs: unable to create
/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/deploy-edison-image-image-complete/edison-image-edison-20210524113748.hddimg
mkfs.fat 4.1 (2017-01-24)
WARNING: exit code 1 from a shell command.
> The reason is that the directory deploy-edison-image-image-complete
> doesn't exist at the time mkdosfs want to write. However after
> completing the remainder of image live the directory does exists.
> Consequently, running bitbake a second time image-live succeeds.
>
> I've tried various thing including expressly creating the directory
> before mkdosfs, but nothing worked. It seems I don't understand how it
> is supposed to work in the first place.
>
> However, I managed to trace back the issue to this commit 91e4a1c1
> "image-live.bbclass: optional depends when ROOTFS empty".
>
> Reverting this resolves the issue.
>
> Any idea what could be wrong?
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Gatesgarth-24.0.4 image-live fails
2021-05-24 12:39 ` Ferry Toth
@ 2021-05-25 12:19 ` Ferry Toth
2021-05-25 13:09 ` Guillaume Champagne
0 siblings, 1 reply; 6+ messages in thread
From: Ferry Toth @ 2021-05-25 12:19 UTC (permalink / raw)
To: yocto; +Cc: Richard Purdie, Guillaume Champagne
Adding Richard and Guillaume.
Op 24-05-2021 om 14:39 schreef Ferry Toth:
> Wow, that got messed up, let me retry.
>
> Op 24-05-2021 om 14:19 schreef Ferry Toth:
>> Accidentally I refreshed poky and rebuilt. The image-live
>> (do_bootimg) fails when building hddimg with the following:
>>
> ERROR: edison-image-1.0-r0 do_bootimg: Error executing a python
> function in exec_python_func() autogenerated:
>
> The stack trace of python calls that resulted in this
> exception/failure was:
> File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
> 0001:
> *** 0002:do_bootimg(d)
> 0003:
> File:
> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/meta/classes/image-live.bbclass',
> lineno: 258, function: do_bootimg
> 0254: if d.getVar("PCBIOS") == "1":
> 0255: bb.build.exec_func('build_syslinux_cfg', d)
> 0256: if d.getVar("EFI") == "1":
> 0257: bb.build.exec_func('build_efi_cfg', d)
> *** 0258: bb.build.exec_func('build_hddimg', d)
> 0259: bb.build.exec_func('build_iso', d)
> 0260: bb.build.exec_func('create_symlinks', d)
> 0261:}
> 0262:do_bootimg[subimages] = "hddimg iso"
> File:
> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
> lineno: 256, function: exec_func
> 0252: with bb.utils.fileslocked(lockfiles):
> 0253: if ispython:
> 0254: exec_func_python(func, d, runfile, cwd=adir)
> 0255: else:
> *** 0256: exec_func_shell(func, d, runfile, cwd=adir)
> 0257:
> 0258: try:
> 0259: curcwd = os.getcwd()
> 0260: except:
> File:
> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
> lineno: 503, function: exec_func_shell
> 0499: with open(fifopath, 'r+b', buffering=0) as fifo:
> 0500: try:
> 0501: bb.debug(2, "Executing shell function %s" % func)
> 0502: with open(os.devnull, 'r+') as stdin, logfile:
> *** 0503: bb.process.run(cmd, shell=False,
> stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
> 0504: except bb.process.ExecutionError as exe:
> 0505: # Find the backtrace that the shell trap generated
> 0506: backtrace_marker_regex = re.compile(r"WARNING:
> Backtrace \(BB generated script\)")
> 0507: stdout_lines = (exe.stdout or "").split("\n")
> File:
> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/process.py',
> lineno: 184, function: run
> 0180: if not stderr is None:
> 0181: stderr = stderr.decode("utf-8")
> 0182:
> 0183: if pipe.returncode != 0:
> *** 0184: raise ExecutionError(cmd, pipe.returncode, stdout,
> stderr)
> 0185: return stdout, stderr
> Exception: bb.process.ExecutionError: Execution of
> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/temp/run.build_hddimg.256530'
> failed with exit code 1:
> mkdosfs: unable to create
> /home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/deploy-edison-image-image-complete/edison-image-edison-20210524113748.hddimg
> mkfs.fat 4.1 (2017-01-24)
> WARNING: exit code 1 from a shell command.
>
>> The reason is that the directory deploy-edison-image-image-complete
>> doesn't exist at the time mkdosfs want to write. However after
>> completing the remainder of image live the directory does exists.
>> Consequently, running bitbake a second time image-live succeeds.
>>
>> I've tried various thing including expressly creating the directory
>> before mkdosfs, but nothing worked. It seems I don't understand how
>> it is supposed to work in the first place.
>>
>> However, I managed to trace back the issue to this commit 91e4a1c1
>> "image-live.bbclass: optional depends when ROOTFS empty".
>>
>> Reverting this resolves the issue.
>>
>> Any idea what could be wrong?
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Gatesgarth-24.0.4 image-live fails
2021-05-25 12:19 ` Ferry Toth
@ 2021-05-25 13:09 ` Guillaume Champagne
2021-05-25 16:25 ` Ferry Toth
0 siblings, 1 reply; 6+ messages in thread
From: Guillaume Champagne @ 2021-05-25 13:09 UTC (permalink / raw)
To: Ferry Toth; +Cc: yocto, Richard Purdie
Le mar. 25 mai 2021 à 08:19, Ferry Toth <fntoth@gmail.com> a écrit :
>
> Adding Richard and Guillaume.
Hi,
it seems seems edison-image.bb sets ROOTFS as empty:
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-distro/recipes-core/images/edison-image.bb#n17
so do_bootimg won't depend on ${PN}:do_image:${LIVE_ROOTFS_TYPE}. That
dependency would, I think, create the folder you mentioned.
Maybe the patch wrongly assumes that if ROOTFS is empty, we shouldn't
add a dependency on "do_image.${LIVE_ROOTFS_TYPE}" at all since It
looks like edison-image.bb still depends on
${PN}:do_image.${LIVE_ROOTFS_TYPE} even though ROOTFS is empty. I
haven't looked too much into why edison-image works this way.
>
> Op 24-05-2021 om 14:39 schreef Ferry Toth:
> > Wow, that got messed up, let me retry.
> >
> > Op 24-05-2021 om 14:19 schreef Ferry Toth:
> >> Accidentally I refreshed poky and rebuilt. The image-live
> >> (do_bootimg) fails when building hddimg with the following:
> >>
> > ERROR: edison-image-1.0-r0 do_bootimg: Error executing a python
> > function in exec_python_func() autogenerated:
> >
> > The stack trace of python calls that resulted in this
> > exception/failure was:
> > File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
> > 0001:
> > *** 0002:do_bootimg(d)
> > 0003:
> > File:
> > '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/meta/classes/image-live.bbclass',
> > lineno: 258, function: do_bootimg
> > 0254: if d.getVar("PCBIOS") == "1":
> > 0255: bb.build.exec_func('build_syslinux_cfg', d)
> > 0256: if d.getVar("EFI") == "1":
> > 0257: bb.build.exec_func('build_efi_cfg', d)
> > *** 0258: bb.build.exec_func('build_hddimg', d)
> > 0259: bb.build.exec_func('build_iso', d)
> > 0260: bb.build.exec_func('create_symlinks', d)
> > 0261:}
> > 0262:do_bootimg[subimages] = "hddimg iso"
> > File:
> > '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
> > lineno: 256, function: exec_func
> > 0252: with bb.utils.fileslocked(lockfiles):
> > 0253: if ispython:
> > 0254: exec_func_python(func, d, runfile, cwd=adir)
> > 0255: else:
> > *** 0256: exec_func_shell(func, d, runfile, cwd=adir)
> > 0257:
> > 0258: try:
> > 0259: curcwd = os.getcwd()
> > 0260: except:
> > File:
> > '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
> > lineno: 503, function: exec_func_shell
> > 0499: with open(fifopath, 'r+b', buffering=0) as fifo:
> > 0500: try:
> > 0501: bb.debug(2, "Executing shell function %s" % func)
> > 0502: with open(os.devnull, 'r+') as stdin, logfile:
> > *** 0503: bb.process.run(cmd, shell=False,
> > stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
> > 0504: except bb.process.ExecutionError as exe:
> > 0505: # Find the backtrace that the shell trap generated
> > 0506: backtrace_marker_regex = re.compile(r"WARNING:
> > Backtrace \(BB generated script\)")
> > 0507: stdout_lines = (exe.stdout or "").split("\n")
> > File:
> > '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/process.py',
> > lineno: 184, function: run
> > 0180: if not stderr is None:
> > 0181: stderr = stderr.decode("utf-8")
> > 0182:
> > 0183: if pipe.returncode != 0:
> > *** 0184: raise ExecutionError(cmd, pipe.returncode, stdout,
> > stderr)
> > 0185: return stdout, stderr
> > Exception: bb.process.ExecutionError: Execution of
> > '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/temp/run.build_hddimg.256530'
> > failed with exit code 1:
> > mkdosfs: unable to create
> > /home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/deploy-edison-image-image-complete/edison-image-edison-20210524113748.hddimg
> > mkfs.fat 4.1 (2017-01-24)
> > WARNING: exit code 1 from a shell command.
> >
> >> The reason is that the directory deploy-edison-image-image-complete
> >> doesn't exist at the time mkdosfs want to write. However after
> >> completing the remainder of image live the directory does exists.
> >> Consequently, running bitbake a second time image-live succeeds.
> >>
> >> I've tried various thing including expressly creating the directory
> >> before mkdosfs, but nothing worked. It seems I don't understand how
> >> it is supposed to work in the first place.
> >>
> >> However, I managed to trace back the issue to this commit 91e4a1c1
> >> "image-live.bbclass: optional depends when ROOTFS empty".
> >>
> >> Reverting this resolves the issue.
> >>
> >> Any idea what could be wrong?
> >>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Gatesgarth-24.0.4 image-live fails
2021-05-25 13:09 ` Guillaume Champagne
@ 2021-05-25 16:25 ` Ferry Toth
[not found] ` <CAHSN6OeuxLdXds5w07sBG9-DKL+KxWOjrCpXGeztyvuK2qVDdQ@mail.gmail.com>
0 siblings, 1 reply; 6+ messages in thread
From: Ferry Toth @ 2021-05-25 16:25 UTC (permalink / raw)
To: Guillaume Champagne; +Cc: yocto, Richard Purdie
Hi
Op 25-05-2021 om 15:09 schreef Guillaume Champagne:
> Le mar. 25 mai 2021 à 08:19, Ferry Toth <fntoth@gmail.com> a écrit :
>> Adding Richard and Guillaume.
> Hi,
>
> it seems seems edison-image.bb sets ROOTFS as empty:
> http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-distro/recipes-core/images/edison-image.bb#n17
>
> so do_bootimg won't depend on ${PN}:do_image:${LIVE_ROOTFS_TYPE}. That
> dependency would, I think, create the folder you mentioned.
>
> Maybe the patch wrongly assumes that if ROOTFS is empty, we shouldn't
> add a dependency on "do_image.${LIVE_ROOTFS_TYPE}" at all since It
> looks like edison-image.bb still depends on
> ${PN}:do_image.${LIVE_ROOTFS_TYPE} even though ROOTFS is empty. I
> haven't looked too much into why edison-image works this way.
It may well be a bug in meta-intel-edison. Although you are looking at
the very, very old code.
So what we have now is:
https://github.com/edison-fw/meta-intel-edison/blob/master/meta-intel-edison-distro/recipes-core/images/edison-image-minimal.bb
this generates a dir edison-image-1.0/hddimg/ containing: bzImage
initrd ldlinux.sys libcom32.c32 libutil.c32 syslinux.cfg vesamenu.c32
and this should generate in dir deploy-edison-image-image-complete/ a
file called edison-image-edison.hddimg
which it does without the patch. So would would I set rootfs to to make
it work?
BTW It also generates a directory iso and associated iso image. Never
understood why, we also set NOISO = "1"
>> Op 24-05-2021 om 14:39 schreef Ferry Toth:
>>> Wow, that got messed up, let me retry.
>>>
>>> Op 24-05-2021 om 14:19 schreef Ferry Toth:
>>>> Accidentally I refreshed poky and rebuilt. The image-live
>>>> (do_bootimg) fails when building hddimg with the following:
>>>>
>>> ERROR: edison-image-1.0-r0 do_bootimg: Error executing a python
>>> function in exec_python_func() autogenerated:
>>>
>>> The stack trace of python calls that resulted in this
>>> exception/failure was:
>>> File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
>>> 0001:
>>> *** 0002:do_bootimg(d)
>>> 0003:
>>> File:
>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/meta/classes/image-live.bbclass',
>>> lineno: 258, function: do_bootimg
>>> 0254: if d.getVar("PCBIOS") == "1":
>>> 0255: bb.build.exec_func('build_syslinux_cfg', d)
>>> 0256: if d.getVar("EFI") == "1":
>>> 0257: bb.build.exec_func('build_efi_cfg', d)
>>> *** 0258: bb.build.exec_func('build_hddimg', d)
>>> 0259: bb.build.exec_func('build_iso', d)
>>> 0260: bb.build.exec_func('create_symlinks', d)
>>> 0261:}
>>> 0262:do_bootimg[subimages] = "hddimg iso"
>>> File:
>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
>>> lineno: 256, function: exec_func
>>> 0252: with bb.utils.fileslocked(lockfiles):
>>> 0253: if ispython:
>>> 0254: exec_func_python(func, d, runfile, cwd=adir)
>>> 0255: else:
>>> *** 0256: exec_func_shell(func, d, runfile, cwd=adir)
>>> 0257:
>>> 0258: try:
>>> 0259: curcwd = os.getcwd()
>>> 0260: except:
>>> File:
>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
>>> lineno: 503, function: exec_func_shell
>>> 0499: with open(fifopath, 'r+b', buffering=0) as fifo:
>>> 0500: try:
>>> 0501: bb.debug(2, "Executing shell function %s" % func)
>>> 0502: with open(os.devnull, 'r+') as stdin, logfile:
>>> *** 0503: bb.process.run(cmd, shell=False,
>>> stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
>>> 0504: except bb.process.ExecutionError as exe:
>>> 0505: # Find the backtrace that the shell trap generated
>>> 0506: backtrace_marker_regex = re.compile(r"WARNING:
>>> Backtrace \(BB generated script\)")
>>> 0507: stdout_lines = (exe.stdout or "").split("\n")
>>> File:
>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/process.py',
>>> lineno: 184, function: run
>>> 0180: if not stderr is None:
>>> 0181: stderr = stderr.decode("utf-8")
>>> 0182:
>>> 0183: if pipe.returncode != 0:
>>> *** 0184: raise ExecutionError(cmd, pipe.returncode, stdout,
>>> stderr)
>>> 0185: return stdout, stderr
>>> Exception: bb.process.ExecutionError: Execution of
>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/temp/run.build_hddimg.256530'
>>> failed with exit code 1:
>>> mkdosfs: unable to create
>>> /home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/deploy-edison-image-image-complete/edison-image-edison-20210524113748.hddimg
>>> mkfs.fat 4.1 (2017-01-24)
>>> WARNING: exit code 1 from a shell command.
>>>
>>>> The reason is that the directory deploy-edison-image-image-complete
>>>> doesn't exist at the time mkdosfs want to write. However after
>>>> completing the remainder of image live the directory does exists.
>>>> Consequently, running bitbake a second time image-live succeeds.
>>>>
>>>> I've tried various thing including expressly creating the directory
>>>> before mkdosfs, but nothing worked. It seems I don't understand how
>>>> it is supposed to work in the first place.
>>>>
>>>> However, I managed to trace back the issue to this commit 91e4a1c1
>>>> "image-live.bbclass: optional depends when ROOTFS empty".
>>>>
>>>> Reverting this resolves the issue.
>>>>
>>>> Any idea what could be wrong?
>>>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Gatesgarth-24.0.4 image-live fails
[not found] ` <CAHSN6OeuxLdXds5w07sBG9-DKL+KxWOjrCpXGeztyvuK2qVDdQ@mail.gmail.com>
@ 2021-05-26 10:25 ` Ferry Toth
0 siblings, 0 replies; 6+ messages in thread
From: Ferry Toth @ 2021-05-26 10:25 UTC (permalink / raw)
To: Guillaume Champagne; +Cc: yocto, Richard Purdie
Op 25-05-2021 om 22:13 schreef Guillaume Champagne:
> Le mar. 25 mai 2021 à 12:25, Ferry Toth <fntoth@gmail.com> a écrit :
>> Hi
>>
>> Op 25-05-2021 om 15:09 schreef Guillaume Champagne:
>>> Le mar. 25 mai 2021 à 08:19, Ferry Toth <fntoth@gmail.com> a écrit :
>>>> Adding Richard and Guillaume.
>>> Hi,
>>>
>>> it seems seems edison-image.bb sets ROOTFS as empty:
>>> http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-distro/recipes-core/images/edison-image.bb#n17
>>>
>>> so do_bootimg won't depend on ${PN}:do_image:${LIVE_ROOTFS_TYPE}. That
>>> dependency would, I think, create the folder you mentioned.
>>>
>>> Maybe the patch wrongly assumes that if ROOTFS is empty, we shouldn't
>>> add a dependency on "do_image.${LIVE_ROOTFS_TYPE}" at all since It
>>> looks like edison-image.bb still depends on
>>> ${PN}:do_image.${LIVE_ROOTFS_TYPE} even though ROOTFS is empty. I
>>> haven't looked too much into why edison-image works this way.
>> It may well be a bug in meta-intel-edison. Although you are looking at
>> the very, very old code.
>>
>> So what we have now is:
>> https://github.com/edison-fw/meta-intel-edison/blob/master/meta-intel-edison-distro/recipes-core/images/edison-image-minimal.bb
>>
>> this generates a dir edison-image-1.0/hddimg/ containing: bzImage
>> initrd ldlinux.sys libcom32.c32 libutil.c32 syslinux.cfg vesamenu.c32
>>
>> and this should generate in dir deploy-edison-image-image-complete/ a
>> file called edison-image-edison.hddimg
>>
>> which it does without the patch. So would would I set rootfs to to make
>> it work?
> That's my bad. The initial patch is not right. I could reproduce your
> issue on my side. I think ROOTFS should be able to remain empty if
> your image does all its work in its initd/initramfs.
>
> I think IMGDEPLOYDIR isn't created in time because the patch removes
> the "depends" on "do_image -> do_rootfs" , which would create
> IMGDEPLOYDIR via do_rootfs[cleandirs] before do_bootimg runs:
> https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/image.bbclass?h=gatesgarth#n252
>
> One way I could think of to fix:
>
> diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass
> index e9eba1fc4b..eb92573488 100644
> --- a/meta/classes/image-live.bbclass
> +++ b/meta/classes/image-live.bbclass
> @@ -260,5 +260,6 @@ python do_bootimg() {
> }
> do_bootimg[subimages] = "hddimg iso"
> do_bootimg[imgsuffix] = "."
> +do_bootimg[dirs] = "${IMGDEPLOYDIR} ${TOPDIR}"
>
>
> _AND_ to add to my image recipe:
> BUILD_REPRODUCIBLE_BINARIES = "0" # otherwise image.bbclass looks for
> a the image's rootfs
> deltask rootfs
>
> I am not sure this is the right solution. There might be a way to
> avoid adding a "deltask" in my recipe. And image.bbclass could
> probably avoid its BUILD_REPRODUCIBLE_BINARIES check on the rootfs if
> ROOTFS is empty.
> Maybe someone else has a better solution?
Thanks. For some reason I don't see your message appearing on ML.
>> BTW It also generates a directory iso and associated iso image. Never
>> understood why, we also set NOISO = "1"
> NOISO is valid in Yocto releases before 2.6 (thud):
> https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#migration-2.6-miscellaneous-changes
> Setting IMAGE_FSTYPES = "hddimg" should be the new equivalent of what
> edison-image-minimal.bb does with NOISO="1" and NOHDD="0"
>
> I think setting INITRD_IMAGE_LIVE to core-image-minimal-initramfs
> could also replace the custom post process command "install_initrd".
I'll look into that.
>>>> Op 24-05-2021 om 14:39 schreef Ferry Toth:
>>>>> Wow, that got messed up, let me retry.
>>>>>
>>>>> Op 24-05-2021 om 14:19 schreef Ferry Toth:
>>>>>> Accidentally I refreshed poky and rebuilt. The image-live
>>>>>> (do_bootimg) fails when building hddimg with the following:
>>>>>>
>>>>> ERROR: edison-image-1.0-r0 do_bootimg: Error executing a python
>>>>> function in exec_python_func() autogenerated:
>>>>>
>>>>> The stack trace of python calls that resulted in this
>>>>> exception/failure was:
>>>>> File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
>>>>> 0001:
>>>>> *** 0002:do_bootimg(d)
>>>>> 0003:
>>>>> File:
>>>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/meta/classes/image-live.bbclass',
>>>>> lineno: 258, function: do_bootimg
>>>>> 0254: if d.getVar("PCBIOS") == "1":
>>>>> 0255: bb.build.exec_func('build_syslinux_cfg', d)
>>>>> 0256: if d.getVar("EFI") == "1":
>>>>> 0257: bb.build.exec_func('build_efi_cfg', d)
>>>>> *** 0258: bb.build.exec_func('build_hddimg', d)
>>>>> 0259: bb.build.exec_func('build_iso', d)
>>>>> 0260: bb.build.exec_func('create_symlinks', d)
>>>>> 0261:}
>>>>> 0262:do_bootimg[subimages] = "hddimg iso"
>>>>> File:
>>>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
>>>>> lineno: 256, function: exec_func
>>>>> 0252: with bb.utils.fileslocked(lockfiles):
>>>>> 0253: if ispython:
>>>>> 0254: exec_func_python(func, d, runfile, cwd=adir)
>>>>> 0255: else:
>>>>> *** 0256: exec_func_shell(func, d, runfile, cwd=adir)
>>>>> 0257:
>>>>> 0258: try:
>>>>> 0259: curcwd = os.getcwd()
>>>>> 0260: except:
>>>>> File:
>>>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/build.py',
>>>>> lineno: 503, function: exec_func_shell
>>>>> 0499: with open(fifopath, 'r+b', buffering=0) as fifo:
>>>>> 0500: try:
>>>>> 0501: bb.debug(2, "Executing shell function %s" % func)
>>>>> 0502: with open(os.devnull, 'r+') as stdin, logfile:
>>>>> *** 0503: bb.process.run(cmd, shell=False,
>>>>> stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
>>>>> 0504: except bb.process.ExecutionError as exe:
>>>>> 0505: # Find the backtrace that the shell trap generated
>>>>> 0506: backtrace_marker_regex = re.compile(r"WARNING:
>>>>> Backtrace \(BB generated script\)")
>>>>> 0507: stdout_lines = (exe.stdout or "").split("\n")
>>>>> File:
>>>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/poky/bitbake/lib/bb/process.py',
>>>>> lineno: 184, function: run
>>>>> 0180: if not stderr is None:
>>>>> 0181: stderr = stderr.decode("utf-8")
>>>>> 0182:
>>>>> 0183: if pipe.returncode != 0:
>>>>> *** 0184: raise ExecutionError(cmd, pipe.returncode, stdout,
>>>>> stderr)
>>>>> 0185: return stdout, stderr
>>>>> Exception: bb.process.ExecutionError: Execution of
>>>>> '/home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/temp/run.build_hddimg.256530'
>>>>> failed with exit code 1:
>>>>> mkdosfs: unable to create
>>>>> /home/ferry/tmp/edison-intel/my/edison-morty/out/linux64/build/tmp/work/edison-poky-linux/edison-image/1.0-r0/deploy-edison-image-image-complete/edison-image-edison-20210524113748.hddimg
>>>>> mkfs.fat 4.1 (2017-01-24)
>>>>> WARNING: exit code 1 from a shell command.
>>>>>
>>>>>> The reason is that the directory deploy-edison-image-image-complete
>>>>>> doesn't exist at the time mkdosfs want to write. However after
>>>>>> completing the remainder of image live the directory does exists.
>>>>>> Consequently, running bitbake a second time image-live succeeds.
>>>>>>
>>>>>> I've tried various thing including expressly creating the directory
>>>>>> before mkdosfs, but nothing worked. It seems I don't understand how
>>>>>> it is supposed to work in the first place.
>>>>>>
>>>>>> However, I managed to trace back the issue to this commit 91e4a1c1
>>>>>> "image-live.bbclass: optional depends when ROOTFS empty".
>>>>>>
>>>>>> Reverting this resolves the issue.
>>>>>>
>>>>>> Any idea what could be wrong?
>>>>>>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-05-26 10:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-24 12:19 Gatesgarth-24.0.4 image-live fails Ferry Toth
2021-05-24 12:39 ` Ferry Toth
2021-05-25 12:19 ` Ferry Toth
2021-05-25 13:09 ` Guillaume Champagne
2021-05-25 16:25 ` Ferry Toth
[not found] ` <CAHSN6OeuxLdXds5w07sBG9-DKL+KxWOjrCpXGeztyvuK2qVDdQ@mail.gmail.com>
2021-05-26 10:25 ` Ferry Toth
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.