[oe] howto? Build something but not deploy in root image

Paul Sokolovsky pmiscml at gmail.com
Thu Jul 5 16:03:37 UTC 2007


Hello Tom,

Thursday, July 5, 2007, 8:01:05 AM, you wrote:

> I know, this has come up before.  Reading through some of the old 
> messages I see this discussed, but, I do not see any solution(s) mentioned?

  Well, until recently, OE had issues with building truly minimal and
well-polished images. This yet needs to be described in howto-like
manner, that's on my todo.

> I have several parts to this project that must be built during the 
> bitbake process (bootstrap-image), but are not part of the target 
> filesystem image.  The total system parts are:

> * bootloader - ARM - resides in Flash.
> * kernel - ARM - resides in Flash.
> * target rootfs image - ARM - resides on MMC card.
> * Flash Utility - native (x86) - runs on host computer.

> The concept for the system is that the bootloader starts the RAM and 
> other hardware up.  It then copies the kernel image into RAM and 
> launches it.  The kernel is configured to look for its root filesystem
> on the MMC card.  Essentially, I boot the kernel from Flash, but the 
> kernel boots from the MMC card.

> The only thing that I need in the root filesystem (tmp/rootfs/) is the
> packages I named from the local conf files.

  This is one feature which is possible now. You name exact and
complete list of packages you want to install into image, and nothing
else gets installed, not even dependencies. This is of course highly
special-purpose feature, and you don't want to use it on realistic
rootfs with dozens of packages, it is indtended for initrds/initramfs,
which consist of few packages and where each KB counts.

>  The kernel does need to be
> there, it soaks up space uselessly.

  Kernel is indeed special case, and there was some kind of adhoc
support for doing what you want all the time in OE. Couple of months
ago Richard Purdie implemented more scalable support for this though,
so search archives for his RFC.

> As to the bootloader, it comes in two sections (files), these are 
> programmed by the Flash Utility into the target system.  The bootloader
> is not needed in the root filesystem.

  Besides two special cases above, when you really need to subvert
OE's dependency handling, for all other cases you just need to get it
right. The only reason why bootloader is installed into image is that
something RDEPENDS on it (or it listed as top-level package to install
;-) ). So, fix your dependencies, and it will be ok.

> The problem is not getting these things built, but preventing them from
> being installed in the tmp/rootfs/ filesystem or tarball.  They should
> only go into tmp/deploy/image/, which  I currently have them going 
> into...  However, the bitbake system assumes that anything that is 
> packaged, must be deployed into the root filesystem!?

> How do you build a bootloader that resides in Flash and doesn't get 
> stuck into the filesystem image?  The same would hold true for the 
> native (linux PC) app which flashes the target memory.

> Regards,

> TomW




-- 
Best regards,
 Paul                            mailto:pmiscml at gmail.com





More information about the Openembedded-devel mailing list