[oe] Ideas for scripts, to save work, when building several boards

Ulf Samuelsson ulf.samuelsson at atmel.com
Thu Aug 13 15:23:34 UTC 2009


Koen Kooi skrev:
> On 13-08-09 14:10, Ulf Samuelsson wrote:
>> Koen Kooi skrev:
>>> On 13-08-09 12:07, Ulf Samuelsson wrote:
>>>> Koen Kooi skrev:
>>>>> On 13-08-09 09:13, Ulf Samuelsson wrote:
>>>>>> Since I will need to test multiple boards,
>>>>>> I decided to write some scripts which I will
>>>>>> check in later today in origin/ulf/linux-2.6.30.2
>>>>>>
>>>>>> I generated a "MAKEALL" script which will
>>>>>> source a file "board_list.sh" with board build commands
>>>>>>
>>>>>> <SOF>
>>>>>> build_board    sam9263dfc    x11-gpe-image
>>>>>> build_board    sam9g45ek    opie-image
>>>>>> build_board    sam9g10df    x11-gpe-image
>>>>>> build_board    sam9g20dfc    console-image
>>>>>> build_board    sam9260dfc    console-image
>>>>>> build_board    sam9261df    x11-image
>>>>>> build_board    sam9xedfc    console-image
>>>>>> <EOF>
>>>>>
>>>>> You do know that you can do that with MACHINE=foo bitbake bar, right?
>>>>>
>>>>
>>>> Didn't try that.
>>>> I assume this means that the cross compiler is not rebuilt,
>>>
>>> Unless you poked at the gcc recipes, no, it won't get rebuilt.
>>>
>>>> Is the root fs assembled from ipks then?
>>>
>>> if you use rootfs_ipk.bbclass, yes.
>>>
>>> Note that the official angstrom buildguide has mentioned that for years:
>>> http://www.angstrom-distribution.org/building-angstrom
>>>
>>
>> Thanks for helping out, but it does not work as expected.
>>
>> I first create a local.conf for the at91sam9261df
>> and bitbake x11-image.
>> Then I do "MACHINE=at91sam9g20dfc bitbake console-image".
>> A console-image is built,but for the at91sam9261df,
>> which is stored in "tmp/deploy/glibc/images/at91sam9261df"
>>
>> The bitbake does not generate u-boot/kernel or at91bootstrap
>> for the at91sam9260dfc
> 
> Then either our uboot/kernel/bootstrap recipes are wrong, or your
> machine configs lack proper IMAGE_DEPENDS, either way that isn't the
> fault of doing MACHINE=foo

I guess something is wrong...
Since I have created my own recipes for u-boot/bootstrap and kernel
I have a primary object for the blame ;-) if that is the case.

At least one more has reported u-boot, not beeing installed
and they are not using my recipes.

The machine description contains:
EXTRA_IMAGEDEPENDS += "u-boot"
EXTRA_IMAGEDEPENDS += "at91bootstrap"
This seems to be the way u-boot is used in other boards, correct?

It certainly makes the packages run until do_compile, but not any
further. What do I need to specify to make a package go through
to the do_deploy phase?

at91bootstrap installs its files as part of do_compile
which might be the wrong thing to do.
- It installs though and U-boot doesn't until you bitbake u-boot.

I might make a workaround to install u-boot in do_compile as well.
Part of my u-boot patches contains an new "make DESTDIR=... install
but if there is a preferred way of doing this, I would be keen to know.
U-boot and bootstrap are a bit special, in that they are not part
of the image, you just want to build them and install them anyway.

===============================================


I noted that some boards + 2 packages sets EXTRA_IMAGEDEPENDS.
conf/bitbake.conf:EXTRA_IMAGEDEPENDS = ""
recipes/kexecboot/initramfs-kexecboot-image.bb:EXTRA_IMAGEDEPENDS = ""

They are not using EXTRA_IMAGEDEPENDS += "..."

I assume the first is an initialization, but the second?
Not digged down deep enough to understand if this recipe is used,
but if it is:
Doesn't that mean that any previous declarations/dependencies are gone?


===============================================
I maintain that if I do "MACHINE=at91sam9260dfc bitbake at91bootstrap"
from the build directory, it is ignored and the MACHINE definition
(MACHINE=at91sam9261df) in local.conf is used.

Result:
NOTE: Tasks Summary: Attempted 448 tasks of which 448 didn't need to be
rerun and 0 failed.

If I stay in the same directory and change local.conf
to have MACHINE="at91sam9260dfc" and then do
"bitbake at91bootstrap" then bootstrap builds for the new machine.

I am running OpenSuSE-x64 and this has done things differently
than Ubuntu multiple times...

If you say it should work, and I can't get it to work,
then I will just have to change the local.conf file
(by symlinking) every time I want to build for a new board
===============================================

> 
>> I believe that most at91 chips can use the same file system,
>> so it makes sense to do it this way anyway.
> 
> The images are built for the machine you specified with MACHINE, I
> suspect you are getting confused somewhere.
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel


-- 
Best Regards
Ulf Samuelsson





More information about the Openembedded-devel mailing list