BeagleBoardAndOpenEmbeddedGit on elinux

Hi,

as original author of BeagleBoardAndOpenEmbeddedGit I was frequently
using that page.
I was under the impression that this page was doing good things and
given it's popularity see http://elinux.org/Special:PopularPages and
number of edit http://elinux.org/index.php?title=BeagleBoardAndOpenEmbeddedGit&action=history
I believe it deserved good care.

I am not to happy about koen replacing that page pointing to the
generic http://www.angstrom-distribution.org/building-angstrom pages
and believe the page should be restored to it's previous state.

Greetings

Hi,

as original author of BeagleBoardAndOpenEmbeddedGit I was frequently
using that page.
I was under the impression that this page was doing good things and
given it's popularity see http://elinux.org/Special:PopularPages and
number of edit http://elinux.org/index.php?title=BeagleBoardAndOpenEmbeddedGit&action=history
I believe it deserved good care.

I am not to happy about koen replacing that page pointing to the
generic http://www.angstrom-distribution.org/building-angstrom pages
and believe the page should be restored to it's previous state.

I just took a look at the page before Koen replaced and noticed the
page was not in great shape, the Fedora and Ubuntu specific parts were
blended and potentially confusing. The OE setup is not what is
described on the Angstrom page, this can make it difficult for the
Angstrom people to help people.

I do agree the distro specific information is good to have and that
the Angstrom page is a bit generic for the average BeagleBoard user.

The Elinux page should also have a link to naricissus for people that
want images without building anything.

Philip

Thanks for that link - I was following the instructions on the
previous
version of the page, and then next day - it was gone ! I thought that
I had misplaced the link. Of course, since the instructions ultimately
resulted in a failed setup on a fresh Ubuntu 9.10 install, perhaps it
was for the best. However the new replacement page is sparse at best.

Steven J. Ackerman, Consultant
ACS, Sarasota, FL
http://www.acscontrol.com

And yet in the very first paragraph it links to an elaborate (and more confusing page) where you can find host distro tweaks if the spare version somehow fails to work.

Koen

I agree with Kees Jongenburger that the his original page should have
been left
intact. Be it my left brain or right brain approach to understanding
technical
writings I don't know. I first followed or tried to follow:

http://www.angstrom-distribution.org/building-angstrom

This did not work for me. I went to Kees page (now re indexed):

http://elinux.org/index.php?title=BeagleBoardAndOpenEmbeddedGit&direction=prev&oldid=14506

and read his technique and was able to gather a better understanding
of the OE setup process. I also visited this page:

http://wiki.openembedded.net/index.php/Getting_started

and with the information of all three I was better able to grasp the
process. When I was having problems making OE setup properly someone
on
this channel said, pick one and stay with it. I did and I have a
working
OE environment. This first link above is vague to me and is written
assuming the user already understands the process. Kees link could
use a going over to catch up to date. And perhaps some better
separation
of methods between development systems. It is clearly stated in the
intro
that it is not a for all howto.
  The last was very clear for me and the one I ultimately followed.

jmtcw:
Don Lewis

There is more than one way to carve this turkey. :stuck_out_tongue:

Another vote here for keeping the original page. It is more clear written.

–dan

Another vote here for keeping the original page. It is more clear written.
--dan

I agree with Kees Jongenburger that the his original page should have
been left
intact. Be it my left brain or right brain approach to understanding
technical
writings I don't know. I first followed or tried to follow:

http://www.angstrom-distribution.org/building-angstrom

This did not work for me. I went to Kees page (now re indexed):

http://elinux.org/index.php?title=BeagleBoardAndOpenEmbeddedGit&direction=prev&oldid=14506

and read his technique and was able to gather a better understanding
of the OE setup process. I also visited this page:

http://wiki.openembedded.net/index.php/Getting_started

and with the information of all three I was better able to grasp the
process. When I was having problems making OE setup properly someone
on
this channel said, pick one and stay with it. I did and I have a
working
OE environment. This first link above is vague to me and is written
assuming the user already understands the process. Kees link could
use a going over to catch up to date. And perhaps some better
separation
of methods between development systems. It is clearly stated in the
intro
that it is not a for all howto.
The last was very clear for me and the one I ultimately followed.

Are people willing to maintain the page and keep it in sync with
original Angstrom instructions? The problem is the page bitrots and
acquires information that does not apply to the current versions of
sw, then people use the information and appear in irc asking
questions.

Philip

And what's wrong with enhancing the official angstrom page? All the concrete proposals people have put forward were incorporated into there within hours, so I don't see why people feel the need to go off and write bogus wiki pages that consist of badly copy/pasted material.
But what do I know about setting up OE and building angstrom?

regards,

Koen

Why are people so dead set against working with upstream? If you really want control, create a fork of http://gitorious.org/angstrom-manual add beagle stuff and send a merge request.

regards,

Koen

OK, so here is what I think is wrong with your instructions:
1) You build OE in the /OE folder, which a non root user cannot create, so
everything after this fails. OETREE should be set to ${HOME}/oe.
2) A trivial point, but why not have a different local.conf for each target
and then do something like
cp ${OETREE}/openembedded/contrib./angstrom/beagle-local.conf
${OETREE}/build/config/local.conf
3) You have no instructions on what packages should be installed. I recall
that each time I have moved to a new machine, it wasn't always clear which
packages were required and it became a hit or miss until OE stopped
complaining about missing packages.
4) I don't want to have to run a script each time I build Angstrom, so why
not have instructions to add these settings to .bashrc?

From: John (USP) [mailto:jsynesio@us-power.com]
Sent: Thursday, November 19, 2009 11:32 AM
To: beagleboard@googlegroups.com
Subject: RE: [beagleboard] Re: BeagleBoardAndOpenEmbeddedGit on elinux

> From: Koen Kooi [mailto:koen@beagleboard.org]
> Sent: Thursday, November 19, 2009 9:20 AM
> To: beagleboard@googlegroups.com
> Subject: Re: [beagleboard] Re: BeagleBoardAndOpenEmbeddedGit on elinux
>
> And what's wrong with enhancing the official angstrom page? All the
> concrete proposals people have put forward were incorporated into
> there within hours, so I don't see why people feel the need to go off
> and write bogus wiki pages that consist of badly copy/pasted material.
> But what do I know about setting up OE and building angstrom?
OK, so here is what I think is wrong with your instructions:
1) You build OE in the /OE folder, which a non root user cannot create, so
everything after this fails. OETREE should be set to ${HOME}/oe.
2) A trivial point, but why not have a different local.conf for each

target

and then do something like
cp ${OETREE}/openembedded/contrib./angstrom/beagle-local.conf
${OETREE}/build/config/local.conf
3) You have no instructions on what packages should be installed. I recall
that each time I have moved to a new machine, it wasn't always clear which
packages were required and it became a hit or miss until OE stopped
complaining about missing packages.
4) I don't want to have to run a script each time I build Angstrom, so why
not have instructions to add these settings to .bashrc?
--------------------------------------------
export OETREE="${HOME}/oe"

export
BBPATH=${OETREE}/build/:${OETREE}/build/conf/:${OETREE}/openembedded/
PKGDIR=${OETREE}/build/
DL_DIR=${OETREE}/downloads

if [ -z ${ORG_PATH} ] ; then
  ORG_PATH=${PATH}
  export ORG_PATH
fi

if [ -z ${ORG_LD_LIBRARY_PATH} ] ; then
  ORG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
  export ORG_LD_LIBRARY_PATH
fi

export
PATH=${OETREE}/opt/bitbake/bin:${HOME}/oe/angstrom-
dev/cross/armv7a/bin:${OR
G_PATH}

LD_LIBRARY_PATH=
export LD_LIBRARY_PATH
export LANG=C
export BB_ENV_EXTRAWHITE="MACHINE DISTRO OETREE ANGSTROM_MODE
ANGSTROMLIBC
LIBC"
--------------------------------------

I've probably forgotten a few items, but this is a good place to start. I
think if you addressed these issues, then you wouldn't have far fewer
complaints.

This should read you would have far fewer complaints.

>
> regards,
>
> Koen
>
> --
>
> You received this message because you are subscribed to the Google

Groups

Hi,

Are people willing to maintain the page and keep it in sync with
original Angstrom instructions?

My feeling was that elinux was the right place. Initially it was about using OpenEmbedded and using Angstrom was used as example hence the title. Also when the guide was started OpenEmbedded was not using git as main versioning system. I have used this guide at regular intervals and when I found problems fixed the document. I think that the guide changed “well” over time. not perfect of course but accessible and (at least for me) maintainable. I know Koen does a lot of good work and I don’t want BeagleBoardAndOpenEmbeddedGit to be causing more damage than good but I find this action radder unpleasant.

I know have 9.10 installed and wanted start on the beagle again, I certainly would have update the document again.

Why are people so dead set against working with upstream? If you
really want control, create a fork of http://gitorious.org/angstrom-manual
add beagle stuff and send a merge request.

I don’t think this is really feasible as it serves different goals.

There are some other wiki pages about building OpenEmbedded or even Angstrom like
http://omappedia.org/wiki/OMAP_Angstrom
http://www.uv-ac.de/openembedded/
http://wiki.openembedded.org/index.php/Getting_Started
(that last one really targets the user using the “head” version and looks even less maintained than the BeagleBoardAndOpenEmbeddedGit one)

What I could try to do is to try to create a updated http://wiki.openembedded.org/index.php/Getting_Started
page but I fear this will result in getting slapped even harder.

I just don’t know what to do I don’t want resurrect the elinux page without Koen’s approval.

Greetings

From: Koen Kooi [mailto:koen@beagleboard.org]
Sent: Thursday, November 19, 2009 9:20 AM
To: beagleboard@googlegroups.com
Subject: Re: [beagleboard] Re: BeagleBoardAndOpenEmbeddedGit on elinux

And what's wrong with enhancing the official angstrom page? All the
concrete proposals people have put forward were incorporated into
there within hours, so I don't see why people feel the need to go off
and write bogus wiki pages that consist of badly copy/pasted material.
But what do I know about setting up OE and building angstrom?

OK, so here is what I think is wrong with your instructions:
1) You build OE in the /OE folder, which a non root user cannot create, so
everything after this fails. OETREE should be set to ${HOME}/oe.

The instructions say that you can alter OETREE to you liking in step 1:

"NOTA BENE: These instructions will use the OETREE environment variable, you can change that to the path you want to install OE to."

and in step 2:

"NOTA BENE:This scripts sets OETREE, so change that if your OETREE is not /OE"

2) A trivial point, but why not have a different local.conf for each target
and then do something like
cp ${OETREE}/openembedded/contrib./angstrom/beagle-local.conf
${OETREE}/build/config/local.conf

The local.conf is the same for each and every target, you can specify MACHINE on the command line (e.g. MACHINE=beagleboard bitbake foo ; MACHINE=dm355-leopard bitbake foo).

3) You have no instructions on what packages should be installed. I recall
that each time I have moved to a new machine, it wasn't always clear which
packages were required and it became a hit or miss until OE stopped
complaining about missing packages.

You contradict yourself now, how can you install packages if you aren't root? If you're installing them into your userdir you show be more than qualified to that OETREE can be changed. In the first paragraph it says:

"If you run into trouble following the below tutorial, have a look at the GettingStarted wiki page"

Which I just checked and found that links to http://wiki.openembedded.org/index.php/Required_software have been removed and the link to http://wiki.openembedded.org/index.php/OEandYourDistro has been hidden. The curse of wikis :frowning:

Direct link to http://wiki.openembedded.org/index.php/OEandYourDistro added the the angstrom page now.

4) I don't want to have to run a script each time I build Angstrom, so why
not have instructions to add these settings to .bashrc?

Sadly not everyone is using bash (hello ubuntu!). And not every non-bash shell reads .bashrc. The OE gettingstarted wiki (which the angstrom page links to a dozen or so times) does have instructions for that though.

regards,

Koen

Op 19 nov 2009, om 20:41 heeft Kees Jongenburger het volgende geschreven:

I just don't know what to do I don't want resurrect the elinux page without Koen's approval.

Again, what's so wrong with enhancing http://www.angstrom-distribution.org/building-angstrom ?

From: Koen Kooi [mailto:koen@beagleboard.org]
Sent: Thursday, November 19, 2009 11:53 AM
To: beagleboard@googlegroups.com
Subject: Re: [beagleboard] Re: BeagleBoardAndOpenEmbeddedGit on elinux

>
>> From: Koen Kooi [mailto:koen@beagleboard.org]
>> Sent: Thursday, November 19, 2009 9:20 AM
>> To: beagleboard@googlegroups.com
>> Subject: Re: [beagleboard] Re: BeagleBoardAndOpenEmbeddedGit on
>> elinux
>>
>> And what's wrong with enhancing the official angstrom page? All the
>> concrete proposals people have put forward were incorporated into
>> there within hours, so I don't see why people feel the need to go off
>> and write bogus wiki pages that consist of badly copy/pasted
>> material.
>> But what do I know about setting up OE and building angstrom?
> OK, so here is what I think is wrong with your instructions:
> 1) You build OE in the /OE folder, which a non root user cannot
> create, so
> everything after this fails. OETREE should be set to ${HOME}/oe.

The instructions say that you can alter OETREE to you liking in step 1:

"NOTA BENE: These instructions will use the OETREE environment
variable, you can change that to the path you want to install OE to."

Koen, my comments are not meant to be a criticism, so there is no need to
become defensive. My comments were only meant to highlight problems that
newbies have when trying to follow your instructions. Newbies want a step by
step instruction that they can follow blindly and get up and running in a
short time. Just make the change and stop being such a bone head!

and in step 2:

"NOTA BENE:This scripts sets OETREE, so change that if your OETREE is
not /OE"

> 2) A trivial point, but why not have a different local.conf for each
> target
> and then do something like
> cp ${OETREE}/openembedded/contrib./angstrom/beagle-local.conf
> ${OETREE}/build/config/local.conf

The local.conf is the same for each and every target, you can specify
MACHINE on the command line (e.g. MACHINE=beagleboard bitbake foo ;
MACHINE=dm355-leopard bitbake foo).

The problem with you being so smart is that you have forgotten what it was
like when you first started out and asked for help. The purpose here is to
eliminate configuration errors. When a newbie doesn't setup the MACHINE, or
enters it incorrectly, how will they know what is wrong when they start a
build and get some cryptic error. Make this fool proof and ensure that each
step is easy to verify.

> 3) You have no instructions on what packages should be installed. I
> recall
> that each time I have moved to a new machine, it wasn't always clear
> which
> packages were required and it became a hit or miss until OE stopped
> complaining about missing packages.

You contradict yourself now, how can you install packages if you
aren't root? If you're installing them into your userdir you show be
more than qualified to that OETREE can be changed. In the first
paragraph it says:

Ah, this is just silly and you clearly missed my point completely. OK, so
let's say I use /OE. First, you instruction should have said something like
sudo mkdir /OE. Then I have to change permissions so that I can access files
in /OE, which you failed to document. Just make OETREE=${HOME}/oe

"If you run into trouble following the below tutorial, have a look at
the GettingStarted wiki page"

That becomes even more complicated, because the other pages you reference
use different configurations.

Which I just checked and found that links to
http://wiki.openembedded.org/index.php/Required_software
  have been removed and the link to
http://wiki.openembedded.org/index.php/OEandYourDistro
  has been hidden. The curse of wikis :frowning:

Again, one page with all the steps defined is what you need. This is like
pulling teeth.

Direct link to http://wiki.openembedded.org/index.php/OEandYourDistro
added the the angstrom page now.

> 4) I don't want to have to run a script each time I build Angstrom,
> so why
> not have instructions to add these settings to .bashrc?

Sadly not everyone is using bash (hello ubuntu!). And not every non-
bash shell reads .bashrc. The OE gettingstarted wiki (which the
angstrom page links to a dozen or so times) does have instructions for
that though.

OK, good point, but then add alternatives for other distros.

I share your frustration when newbies ask the same questions over and over
again, but this is why it is important that you make the instructions
complete and fool proof.

Just trying to help.
Regards
John

john has a valid point. as much as possible, explanations and
examples should be given that deliberately avoid any superuser-related
issues, unless absolutely necessary. if there are two ways to explain
something, use as an example the way that's more likely to work for
the newbie who's probably just blindly typing what he sees in front of
him.

rday

I'd like to weigh in on this subject too.

I've gone through the procedures in order to do my first "bitbake base-image" on a clean install of Ubuntu 9.10

What I'd like to see is information all in one place, a cookbook of how to build your Angstrom image.

The information needs to be accessible to someone who has a fair degree of technical skill, and intelligence, but can't assume a lot of knowledge about Angstrom or OpenEmbedded, otherwise they probably wouldn't need to be reading the instructions in the first place.

In my opinion, it would be better if the scripts dealt with the OETREE directory living somewhere else rather than in the root directory, for the reasons presented earlier (namely that you need root access to write to it)

Yes, it's clear to most people here that you need root access to install the relevant packages as well, however this can be accomplished using sudo quite easily.

On the subject of packages, it would be good to have this listed on the same page in a requirements section. It's also not entirely clear what packages need to be installed via the error message that bitbake gives - it mentions the name of the missing binary, but not the package it is contained in (eg svn vs subversion and texi2html)

Creating the $OETREE directory at the root means that (by default) it's owned by root, so you need to then use a root shell, or judicious use of sudo to follow the latter instructions to get the files in there for the build. Once you've done this however, bitbake refuses to be run as root, and wants to be run as a regular user. You then need to change ownership of everything and re-run it as a regular user.

It would be cleaner to assume a build beginning in ~/OE rather than in /OE.

Finally, the bitbake process, even for the base-image, is a very long process. It also is prone to exit with strange errors - such that I've had to re-run it three times so far and it's now looking like it will be able to complete.

Note that this is all on a clean installation of Ubuntu 9.10 - I installed a server system, with Open SSH Server as the only additional selected package during installation. After booting it up, I did an apt-get update, apt-get upgrade, reboot, apt-get build-essential and apt-get linux-headers-`uname -r`

I feel that this is a good, albeit, basic starting point to begin with, so it would be great to have a list of additional packages required on top of this rather minimal system.

I don't want this to sound like I'm criticising the efforts of people who have produced the documentation we already have, I just want to provide the point of view of someone who is quite technically capable, but new to this area, so I am able to look at it with a fresh set of eyeballs and (hopefully) no preconceived notations.

My thanks go out to everyone who has put in the effort to get us to where we are already, there's a monumental amount of work involved in a project like this, and it's wonderful that it's all available to have a community built around it...

Cheers,
Kai

Which is at http://www.angstrom-distribution.org/building-angstrom , but people keep creating external wikipages without even bothering to contact or notify angstrom people about that.

As for people wanting all info in a single page: we had that before and it turned into a comple and utter mess, since each and every step had comment about distro X (Nowadays that would mean 1 comment for each ubuntu, 1 for each fedora, arch linux, gentoo, etc), which isn't bad per se, but the comments started to grow anecdotes, stories about NetworkManager, curl fanboys replacing wget commands, etc. Then people found that page too confusing and started doing GettingStartedDebian, GettingStartedUbuntu, etc.
Wikis just don't work for this kind of thing, the knowledgable people don't want to babysit every change and quickly get burned out and not so knowledgable people start to make well intentioned, but wrong changes.

So the angstrom page might be missing some info for newbies, the info that is in there is *correct* and being checked by knowledgable people. That's more than I can say for all the wiki pages out there.

So, OETREE now points to ${HOME}/OE. Any more concrete changes to the instructions people want to see?

regards,

Koen

Hi Koen,

Thank you for making that change putting the OE directory in your home directory - that was the main point I didn't agree with.

Just a couple of minor things that I believe could use some clarification;

There's a typo in the second line that starts with Nota Bene:

NOTA BENE:This scripts sets OETREE, so change that if your OETREE is not $HOME}/OE

There needs to be an opening curly brace before HOME.

The second is that when I followed the instructions, the version of bitbake that came down from the repository was 1.8.12 whereas instructions elsewhere mention needing a newer version than 1.8.13. For what it's worth, the version that installed on Ubuntu 9.10 when I did an apt-get install bitbake was also 1.8.12 whereas the current version is 1.8.18. I don't know if this makes a difference to the build process or not.

http://developer.berlios.de/projects/bitbake/

In Step 3, with the final step where you run bitbake - elsewhere it says that this should be run from the $OETREE/build directory, whereas if you follow your instructions in order, you are in the $OETREE/openembedded directory - once again, I don't know enough about the process to know if this makes a difference or not.

It would also be great to mention that this step can take a number of hours, even on a very fast system, as you're not only building an entire linux distro from source, but you're building the toolchain to build the system as well...

Finally, I'd love to see a Step 5 that explains where to find the files to copy to the root filesystem of the target machine. After poking around in the resulting files, I believe that it's $OETREE/angstrom-dev/rootfs but I'm not sure. Should I be using instead the .tar.bz2 files in the $OETREE/OE/angstrom-dev/deploy/glibc/images/$MACHINE directory and extract them to the root filesystem instead?

Once again, thanks for your efforts in documenting these procedures and helping others learn.

Cheers,
Kai

Thank you for making that change putting the OE directory in your home directory - that was the main point I didn't agree with.

Just a couple of minor things that I believe could use some clarification;

There's a typo in the second line that starts with Nota Bene:

NOTA BENE:This scripts sets OETREE, so change that if your OETREE is not $HOME}/OE

There needs to be an opening curly brace before HOME.

Fixed.

The second is that when I followed the instructions, the version of bitbake that came down from the repository was 1.8.12 whereas instructions elsewhere mention needing a newer version than 1.8.13.

The bitbake is included in OE for stable/2009 and matches *exactly*. Ignore instructions from "somewhere else". OE has a check for bitbake versions and will happily tell you when your bitbake doesn't match. It will even tell which version it does need.

For what it's worth, the version that installed on Ubuntu 9.10 when I did an apt-get install bitbake was also 1.8.12 whereas the current version is 1.8.18. I don't know if this makes a difference to the build process or not.

Installing bitbake is discouraged, the preferred way is to run it from a checkout (which the instructions will do for you). I can make no guarantees that >1.8.12 will work. Nor canI make guarantees that the version debian packages works, I don't know what kind of crazy patches they might be using.

In Step 3, with the final step where you run bitbake - elsewhere it says that this should be run from the $OETREE/build directory, whereas if you follow your instructions in order, you are in the $OETREE/openembedded directory - once again, I don't know enough about the process to know if this makes a difference or not.

You can execute bitbake from anywhere you want, it doesn't matter.

It would also be great to mention that this step can take a number of hours, even on a very fast system, as you're not only building an entire linux distro from source, but you're building the toolchain to build the system as well...

Finally, I'd love to see a Step 5 that explains where to find the files to copy to the root filesystem of the target machine.

But that part belongs in http://gitorious.org/angstrom-manual since it's highly machine specific. Ideally the manual would have the setup instructions in there as well.

After poking around in the resulting files, I believe that it's $OETREE/angstrom-dev/rootfs but I'm not sure.

No, rootfs is the intermediary step, it is not intended to be used. In the unstable OE branch it gets deleted :slight_smile:

Should I be using instead the .tar.bz2 files in the $OETREE/OE/angstrom-dev/deploy/glibc/images/$MACHINE directory and extract them to the root filesystem instead?

Yes, if you are using a blockdevice. If you're using NAND then ubifs would be better, etc.

regards,

Koen