[oe] How best replace /etc/init.d files with debugging versions right before jffs2 file is generated?

Anders Darander anders at chargestorm.se
Mon Oct 31 07:08:40 UTC 2011


* Ulf Samuelsson <ulf_samuelsson at telia.com> [111029 18:02]:
> 2011-10-29 17:00, Anders Darander skrev:
> > On 29 okt 2011, at 16:22, "Ulf Samuelsson"<ulf_samuelsson at telia.com>  wrote:

> >> 2011-10-29 15:52, Ulf Samuelsson skrev:
> >>> Having some problems booting a rootfs generated by openembedded,

> >>> "hwclock can't find /dev/misc/rtc"

> >>> and I would like to emit some debug  information by replacing some files
> >>> in the /etc/init.d directory before the rootfs is finalized.

> >>> If I try to "install" from another package, I will get a conflict.

> >>> I guess I could loop mount the file system and then copy.
> >>> Any other suggestions?

> >> Just discovered that loop mounting jffs2 isn't that easy.
> >> Need to find the blkmtd driver somewhere, recompile kernel?
> > Yes, loop mounting filesystems designed for raw flash requires quite some extra steps. It's generally doable, but...

> >> I can of course add some files to tmp/rootfs and regenerate the jffs2.

> >> Other ideas (allowing automation) appreciated.
> > Well, you could always use a bbappend to the recipe in question, and override/replace the files that way. Or, if it's just temporarily, just modify the scripts directly in the oe tree, or if the file is taken from a tarball, modify it in the build directory and force a re-install and packaging.

> > Cheers,
> > Anders
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> One would think that it was possible to do something with the rootfs, 
> just before the mkfs.jffs2 was started.

> Key seems to be redefining "IMAGE_CMD_jffs2"

> This is set in conf/bitbake.conf:
> IMAGE_CMD_jffs2 = "mkfs.jffs2 -x lzo --root=${IMAGE_ROOTFS} --faketime 
> --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${EXTRA_IMAGECMD}"

> It is possible to add something either in this file, or override in 
> "local.conf"


> PREPROCESS_JFFS2 = "tar -jxvf <myfile>.tar.bz2 -C ${IMAGE_ROOTFS}"

Well, maybe IMAGE_PREPROCESS_COMMAND from image.bbclass could be used to
do this? (I've not tested this myself, though).

You'll also have IMAGE_POSTPROCESS_COMMAND and MACHINE_POSTPROCESS_COMMAND being executed in that order. Although in your case, IMAGE_PREPROCESS_COMMAND should be the one to look at.

Cheers,
Anders

> IMAGE_CMD_jffs2 = "${PREPROCESS_JFFS2} ; mkfs.jffs2 -x lzo 
> --root=${IMAGE_ROOTFS} --faketime 
> --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${EXTRA_IMAGECMD}"

> If it is added to bitbake.conf, then PREPROCESS_JFFS2 needs to be set to 
> something harmless.
> PREPROCESS_JFFS2 ?= "touch ${IMAGE_ROOTFS}"


-- 
Anders Darander
ChargeStorm AB / eStorm AB




More information about the Openembedded-devel mailing list