Re: GAR for embedded systems
Nate Riffe <[email protected]> Sun, 31 Oct 2004 11:11:49 -0500
| Newsgroups | gmane.linux.bbc.devel |
|---|---|
| Message-ID | <[email protected]> |
I cannot believe Grant Likely said this on the ENTARNET: > Great! GAR seems to be exactly what I need. In fact, my embedded > platform should turn out to be simpler than the LNX-BBC because I > don't need both an initrd and a secondary image mounted by it. > > I'm having some difficulty understanding just how the LNX-BBC build is > set up. I've been looking through the documentation but I have not > been able to get an understanding of what the dependancies are between > each of stages (build, main, singularity) and what is contained in > each of them. In meta/lnx-bbc, run "make showdeps". The output should be quite informative. GAR has a few very useful diagnostic targets like that. One thing to note when looking at the output of make showdeps is that packages are built exactly once for each image (as controlled by the DESTIMG variable) in which they are depended upon, even though some of the entries in that tree appear many, many times. > I believe that the singularity is the basic image. If I go into the > meta/singularity directory can I configure it to build just a rootfs > image using my own toolchain? I'd like to stick with my crosstool > generated toolchain. I think what I need to do is create my own > target directory under meta/ for my embedded target and then depend on > each of the packages that I want installed. Is this correct? There is package called meta/bbc-contents. This is where the contents of singularity are depended upon. In the Makefile file for meta/singularity, there is this line: singularity_DEPENDS = $(if $(LNX_FLAVOR),meta/$(LNX_FLAVOR)-contents,) The meta/lnx-bbc package sets LNX_FLAVOR to "bbc" in the environment. > Also, how to I specify which target (i386 or PPC) when building the LNX-BBC? [inkblot@goose:~/research/meta/lnx-bbc]$ make valueof-GARCH i686 [inkblot@goose:~/research/meta/lnx-bbc]$ make DESTIMG=singularity valueof-GARCH i386 [inkblot@goose:~/research/meta/lnx-bbc]$ make DESTIMG=build valueof-GARCH i686 [inkblot@goose:~/research/meta/lnx-bbc]$ make DESTIMG=lnximg valueof-GARCH i386 [inkblot@goose:~/research/meta/lnx-bbc]$ make DESTIMG=rootbin valueof-GARCH i386 [inkblot@goose:~/research/meta/lnx-bbc]$ singularity_GARCH=ppc make valueof-GARCH i686 [inkblot@goose:~/research/meta/lnx-bbc]$ singularity_GARCH=ppc make DESTIMG=singularity valueof-GARCH ppc [inkblot@goose:~/research/meta/lnx-bbc]$ singularity_GARCH=ppc make DESTIMG=build valueof-GARCH i686 [inkblot@goose:~/research/meta/lnx-bbc]$ singularity_GARCH=ppc make DESTIMG=lnximg valueof-GARCH ppc [inkblot@goose:~/research/meta/lnx-bbc]$ singularity_GARCH=ppc make DESTIMG=rootbin valueof-GARCH ppc It's in the description (meta/singularity/singularity.conf.mk) for the singularity image. The lnximg and rootbin images are boot-time images which delegate some of their configuration to the values for singularity. This is not very well documented because even though GAR is capable of running a complete cross-build of an entire suite of software, the LNX-BBC source tree cannot actually cross-compile due to the shortcomings of some of the third party source code that it builds. In particular XFree86, perl, and python are big troublemakers. Also, I would recommend taking this thread to the GAR mailing list, [email protected]. I and several other of the LNX-BBC developers are subscribed there. -Nate -- --< ((\))< >----< [email protected] >----< http://www.movealong.org/ >-- pub 1024D/05A058E0 2002-03-07 Nate Riffe (06-Mar-2002) <[email protected]> Key fingerprint = 0DAC F5CB D182 3165 D757 C466 CD42 12A8 05A0 58E0