All of lore.kernel.org
 help / color / mirror / Atom feed
* User Manual: HelloWorld example questions.
@ 2013-06-19 13:51 Bill Traynor
  2013-06-21 15:40 ` Bill Traynor
  0 siblings, 1 reply; 4+ messages in thread
From: Bill Traynor @ 2013-06-19 13:51 UTC (permalink / raw)
  To: bitbake-devel

NOTE:  The following questions are posed within the context of the
BitBake User Manual rewrite.

In working through the following two HelloWorld examples:

http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html
http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/

there are some concepts that I don't quite understand.

1.  The simplest HelloWorld possible would only require a recipe and
source, correct?  The concepts of Classes and Layers is beyond the
basics, is it not?  Or is the simplest of HelloWorld examples without
concepts such as Classes and Layers essentially pointless?

2.  Why isn't there a sample base.bbclass in the bitbake source tree?

3.  I think it would be very beneficial to understanding BitBake to
build out the HelloWorld example beyond the basics, incorporating and
explaining each concept along the way.  My thinking is that given the
true value of BitBake is in the building of complex systems, it would
be beneficial to walk through the concepts as simply as possible to
demonstrate the concepts that require leverage to accomplish this.
This would both demonstrate how BitBake works whiile avoiding overuse
of OE or YP project examples.  Is this idea reasonable, or beyond the
scope of the User manual?

That's all for now.  I appreciate the feedback.

Bill


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: User Manual: HelloWorld example questions.
  2013-06-19 13:51 User Manual: HelloWorld example questions Bill Traynor
@ 2013-06-21 15:40 ` Bill Traynor
  2013-06-21 17:03   ` Paul Eggleton
  0 siblings, 1 reply; 4+ messages in thread
From: Bill Traynor @ 2013-06-21 15:40 UTC (permalink / raw)
  To: bitbake-devel

On Wed, Jun 19, 2013 at 9:51 AM, Bill Traynor <btraynor@gmail.com> wrote:
> NOTE:  The following questions are posed within the context of the
> BitBake User Manual rewrite.
>
> In working through the following two HelloWorld examples:
>
> http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html
> http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/
>
> there are some concepts that I don't quite understand.
>
> 1.  The simplest HelloWorld possible would only require a recipe and
> source, correct?  The concepts of Classes and Layers is beyond the
> basics, is it not?  Or is the simplest of HelloWorld examples without
> concepts such as Classes and Layers essentially pointless?
>

To answer myself as I work through my hello world project from first
priciples, i.e. beginning with an empty directory and solving errors
one by one I realize that the concept of Layers is necessary given
that the first configuration file BitBake looks for is bblayers.conf,
which is where I set BBPATH.

> 2.  Why isn't there a sample base.bbclass in the bitbake source tree?

Oops, I meant a sample bblayers.conf, NOT base.bbclass which does
indeed exist.  Does it not make sense to have a bblayers.conf
containing at minimum:

BBPATH := "${TOPDIR}"

Perhaps even comment out the latter with a short explanation of what
un-commenting out implies?

>
> 3.  I think it would be very beneficial to understanding BitBake to
> build out the HelloWorld example beyond the basics, incorporating and
> explaining each concept along the way.  My thinking is that given the
> true value of BitBake is in the building of complex systems, it would
> be beneficial to walk through the concepts as simply as possible to
> demonstrate the concepts that require leverage to accomplish this.
> This would both demonstrate how BitBake works whiile avoiding overuse
> of OE or YP project examples.  Is this idea reasonable, or beyond the
> scope of the User manual?

I'm finding it very valuable to step through a simple example using
the -DDD debug parameter to understand what's going on when I issue
the BitBake command.

>
> That's all for now.  I appreciate the feedback.
>
> Bill


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: User Manual: HelloWorld example questions.
  2013-06-21 15:40 ` Bill Traynor
@ 2013-06-21 17:03   ` Paul Eggleton
  2013-06-21 17:22     ` Bill Traynor
  0 siblings, 1 reply; 4+ messages in thread
From: Paul Eggleton @ 2013-06-21 17:03 UTC (permalink / raw)
  To: Bill Traynor; +Cc: bitbake-devel

Hi Bill,

On Friday 21 June 2013 11:40:27 Bill Traynor wrote:
> On Wed, Jun 19, 2013 at 9:51 AM, Bill Traynor <btraynor@gmail.com> wrote:
> > NOTE:  The following questions are posed within the context of the
> > BitBake User Manual rewrite.
> > 
> > In working through the following two HelloWorld examples:
> > 
> > http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html
> > http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/
> > 
> > there are some concepts that I don't quite understand.
> > 
> > 1.  The simplest HelloWorld possible would only require a recipe and
> > source, correct?  The concepts of Classes and Layers is beyond the
> > basics, is it not?  Or is the simplest of HelloWorld examples without
> > concepts such as Classes and Layers essentially pointless?
> 
> To answer myself as I work through my hello world project from first
> priciples, i.e. beginning with an empty directory and solving errors
> one by one I realize that the concept of Layers is necessary given
> that the first configuration file BitBake looks for is bblayers.conf,
> which is where I set BBPATH.

BitBake does implement most of the support for layers, yes, so as a concept it 
should be covered in the BitBake documentation. You may be able to bring in 
non-OE-specific portions of the Yocto Project manuals to help get started here.
 
> > 2.  Why isn't there a sample base.bbclass in the bitbake source tree?
> 
> Oops, I meant a sample bblayers.conf, NOT base.bbclass which does
> indeed exist.  Does it not make sense to have a bblayers.conf
> containing at minimum:
> 
> BBPATH := "${TOPDIR}"
> 
> Perhaps even comment out the latter with a short explanation of what
> un-commenting out implies?

I think maybe it ought to have both, since base.bbclass is directly referred 
to by bitbake and thus required. I do wonder if it ought to be made clearer 
that the bitbake.conf provided by bitbake (plus whatever other files we 
provide) is an example that's meant to be copied and built upon rather than 
used and edited in-place; perhaps adjusting the directory structure might help 
with this.

> > 3.  I think it would be very beneficial to understanding BitBake to
> > build out the HelloWorld example beyond the basics, incorporating and
> > explaining each concept along the way.  My thinking is that given the
> > true value of BitBake is in the building of complex systems, it would
> > be beneficial to walk through the concepts as simply as possible to
> > demonstrate the concepts that require leverage to accomplish this.
> > This would both demonstrate how BitBake works whiile avoiding overuse
> > of OE or YP project examples.  Is this idea reasonable, or beyond the
> > scope of the User manual?
> 
> I'm finding it very valuable to step through a simple example using
> the -DDD debug parameter to understand what's going on when I issue
> the BitBake command.

Stepping through the HelloWorld example sounds reasonable, however I would 
caution that the debug output does tend to change over time, so introducing it 
may increase the burden of maintaining the manual.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: User Manual: HelloWorld example questions.
  2013-06-21 17:03   ` Paul Eggleton
@ 2013-06-21 17:22     ` Bill Traynor
  0 siblings, 0 replies; 4+ messages in thread
From: Bill Traynor @ 2013-06-21 17:22 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: bitbake-devel

On Fri, Jun 21, 2013 at 1:03 PM, Paul Eggleton
<paul.eggleton@linux.intel.com> wrote:
> Hi Bill,
>
> On Friday 21 June 2013 11:40:27 Bill Traynor wrote:
>> On Wed, Jun 19, 2013 at 9:51 AM, Bill Traynor <btraynor@gmail.com> wrote:
>> > NOTE:  The following questions are posed within the context of the
>> > BitBake User Manual rewrite.
>> >
>> > In working through the following two HelloWorld examples:
>> >
>> > http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html
>> > http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/
>> >
>> > there are some concepts that I don't quite understand.
>> >
>> > 1.  The simplest HelloWorld possible would only require a recipe and
>> > source, correct?  The concepts of Classes and Layers is beyond the
>> > basics, is it not?  Or is the simplest of HelloWorld examples without
>> > concepts such as Classes and Layers essentially pointless?
>>
>> To answer myself as I work through my hello world project from first
>> priciples, i.e. beginning with an empty directory and solving errors
>> one by one I realize that the concept of Layers is necessary given
>> that the first configuration file BitBake looks for is bblayers.conf,
>> which is where I set BBPATH.
>
> BitBake does implement most of the support for layers, yes, so as a concept it
> should be covered in the BitBake documentation. You may be able to bring in
> non-OE-specific portions of the Yocto Project manuals to help get started here.
>
>> > 2.  Why isn't there a sample base.bbclass in the bitbake source tree?
>>
>> Oops, I meant a sample bblayers.conf, NOT base.bbclass which does
>> indeed exist.  Does it not make sense to have a bblayers.conf
>> containing at minimum:
>>
>> BBPATH := "${TOPDIR}"
>>
>> Perhaps even comment out the latter with a short explanation of what
>> un-commenting out implies?
>
> I think maybe it ought to have both, since base.bbclass is directly referred
> to by bitbake and thus required. I do wonder if it ought to be made clearer
> that the bitbake.conf provided by bitbake (plus whatever other files we
> provide) is an example that's meant to be copied and built upon rather than
> used and edited in-place; perhaps adjusting the directory structure might help
> with this.

Yes, this is exactly how I'm describing the sample files being used
for HelloWorld, i.e. copy them to the project directory and move
forward from there.

>
>> > 3.  I think it would be very beneficial to understanding BitBake to
>> > build out the HelloWorld example beyond the basics, incorporating and
>> > explaining each concept along the way.  My thinking is that given the
>> > true value of BitBake is in the building of complex systems, it would
>> > be beneficial to walk through the concepts as simply as possible to
>> > demonstrate the concepts that require leverage to accomplish this.
>> > This would both demonstrate how BitBake works whiile avoiding overuse
>> > of OE or YP project examples.  Is this idea reasonable, or beyond the
>> > scope of the User manual?
>>
>> I'm finding it very valuable to step through a simple example using
>> the -DDD debug parameter to understand what's going on when I issue
>> the BitBake command.
>
> Stepping through the HelloWorld example sounds reasonable, however I would
> caution that the debug output does tend to change over time, so introducing it
> may increase the burden of maintaining the manual.

That's a good point.  But it's a burden I'm willing to endure at this
point.  Perhaps once I understand the nooks and crannies of what
BitBake is doing I'll rewrite things to be more descriptive.

>
> Cheers,
> Paul
>
> --
>
> Paul Eggleton
> Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-06-21 17:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-19 13:51 User Manual: HelloWorld example questions Bill Traynor
2013-06-21 15:40 ` Bill Traynor
2013-06-21 17:03   ` Paul Eggleton
2013-06-21 17:22     ` Bill Traynor

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.