[yocto] BSP for taskit stamp9g20

Bruce Ashfield bruce.ashfield at windriver.com
Tue Jun 26 07:00:55 PDT 2012


On 12-06-26 09:49 AM, Markus Hubig wrote:
> On Tue, Jun 26, 2012 at 3:19 PM, Bruce Ashfield
> <bruce.ashfield at windriver.com>  wrote:
>>
>> On 12-06-26 07:08 AM, Markus Hubig wrote:
>>>
>>> AT91SAM9G20 based CPU board). This is when I came across the YoctoProject.
>>> Now I'm trying to build a BSP Layer for this Board.
>>>
>>> There are a lot of documentation out there, but I still miss the whole
>>> picture ... :-(
>>>
>>> This is what I've done so far:
>>
>> This is on master ? Yocto 1.2 ? Some other release ?
>
> I'm using Yocto 1.2 at the moment ...
>
>>> $ yocto-bsp create stamp9g20 arm
>>> ->  kernel 3.2 [y]
>>> ->  new machine branch [y]
>>> ->  machine branch to base this BSP on [standard/default/arm-versatile-926ejs]
>>> ->  Do you need SMP support? [n]
>>> ->  Which machine tuning would you like to use? [arm926ejs]
>>> ->  value for UBOOT_MACHINE [default: omap3_beagle_config]
>>> ->  UBOOT_ENTRYPOINT: [default: 0x80008000]
>>> ->  UBOOT_LOADADDRESS: [default: 0x80008000]
>>> ->  Do you need support for X? [n]
>>> ->  Does your BSP have a touchscreen? [default: n]
>>> ->  Does your BSP have a keyboard? [n]
>>>
>>> (U-Boot stuff needs some adjustments but I save this for later ...)
>>>
>>> Now I have a nice BSP layer for the Stamp9G20. Year! But whats the next
>>> step? To get the right kernel configuration for the stamp9g20 I can easily
>>> configure the kernel with:
>>>
>>> $ make ARCH=arm stamp9g20_defconfig
>>>
>>> Here is what I "think" I have to do next. Please, please correct me if I
>>> got it all wrong!
>>>
>>> # make a bare clone
>>> $ git clone --bare git://git.yoctoproject.org/linux-yocto-3.2
>>> <http://git.yoctoproject.org/linux-yocto-3.2>  linux-yocto-3.2.git
>>>
>>> # make a *working clone* of the *bare clone*
>>>
>>> $ git clone linux-yocto-3.2.git linux-yocto-3.2-work
>>>
>>> # create a new branch based on arm-versatile-926ejs *inside my working
>>> clone*
>>>
>>> $ git checkout -b yocto/standard/stamp9g20
>>> remotes/origin/standard/default/arm-versatile-926ejs
>>>
>>> # push the new branch back to the *bare clone*. Now I have a branch my
>>>
>>> bsp-layer is based on?!
>>> $ git push origin yocto/standard/stamp9g20:standard/default/stamp9g20
>>>
>>> # check out the *meta branch* inside the *working clone*
>>>
>>> $ git checkout -b meta-stamp9g20 remotes/origin/meta
>>>
>>> # now I just copy the *arm-versatile-926ejs* dir to *stamp9g20* and
>>>
>>> rename everything ...
>>> $ cd meta/cfg/kernel-cache/bsp
>>> $ cp -a arm-versatile-926ejs stamp9g20
>>> $ cd stamp9g20
>>> $ rename 's/arm-versatile-926ejs/stamp9g20/' *
>>> $ sed -i 's/arm-versatile-926ejs/stamp9g20/' *
>>>
>>> Now it get's in to the details. Since I have a working kernel config
>>> from "make ARCH=arm stamp9g20_defconfig" I *think*
>>> all I have to do is using the resulting .config file and put *parts of
>>> it* into stamp9g20.cfg, right? Later more on this, but since
>>>
>>> I'm more interested in the "big picture" I will leave these files as
>>> they are for now.
>>>
>>> # Add, commit and push the changes to the bare clone
>>> $ git add stamp9g20
>>> $ git commit -a -s
>>> $ git push origin meta-stamp9g20:meta
>>>
>>> # Now I change meta-stamp9g20/recipes-kernel/linux/linux-yocto_3.2.bbappend
>>> # to point to my new branch
>>> KBRANCH_stamp9g20 = "standard/default/stamp9g20"
>>> YOCTO_KERNEL_EXTERNAL_BRANCH_stamp9g20 = "standard/default/stamp9g20"
>>
>>
>> You don't actually have an external branch, because you made the right
>> choice to use git to manage your BSP :P So you don't need this.
>
> OK so I just remove the YOCTO_KERNEL_EXTERNAL_BRANCH_stamp9g20 line?
>
>>>
>>> # Clone poky-extras *into poky* ...
>>>
>>> $ git clone git://git.yoctoproject.org/poky-extras
>>> <http://git.yoctoproject.org/poky-extras>  poky-extras
>>>
>>>
>>> # edit
>>> poky-extras/meta-kernel-dev/recipes-kernel/linux/linux-yocto_3.2.bbappend
>>> KSRC_linux_yocto_3_2 ?= "/home/mhubig/Development/linux-yocto-3.2.git"
>>> SRC_URI =
>>> "git://${KSRC_linux_yocto_3_2};protocol=file;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"
>>
>>
>> This is all good, I run with this all day every day .. so far so good.
>
> OK ...
>
>>> [INFO]: checkpoint is already restored, nothing to do
>>> + [ 0 -ne 0 ]
>>> +
>>> sccs=/home/mhubig/Development/poky/meta-stamp9g20/recipes-kernel/linux/files/stamp9g20-standard.scc
>>> /home/mhubig/Development/poky/meta-stamp9g20/recipes-kernel/linux/files/stamp9g20.scc
>>> /home/mhubig/Development/poky/meta-stamp9g20/recipes-kernel/linux/files/stamp9g20.cfg
>>> /home/mhubig/Development/poky/meta-stamp9g20/recipes-kernel/linux/files/user-config.cfg
>>> /home/mhubig/Development/poky/meta-stamp9g20/recipes-kern
>>> el/linux/files/user-patches.scc
>>
>> Aha. This is the problem, if you've decided to create a local repo,
>> and a BSP branch, you don't need these files outside of the tree. But
>> I'm betting these were created by the BSP tool .. hence the confusion
>> as two methods are being mixed.
>
> Aha this is hardly understandable from the Yocto Documentation ...

The BSP tool came after the sections that talk about local git trees,
so the docs are still debouncing a bit. They do need to make this
clear about the approaches, and that you should use one or the other
(and why).

>
>> If you stop using the local repository, and just use the BSP tool that
>> should at least clarify the error messages and I can help more after
>> that.
>
> OK If I got this right, I don't need the poky-extra stuff and no local
> kernel repository.
> I can just go with the yocto-bsp created meta-stamp9g20 layer? Is this
> right? This would
> make things much easier ...

That's the design. But there may of course still be issues .. there
always seem to be :)

>
> OK to summarize it again, I have two choices
>
> 1. Use a custom branch on the linux-yocto kernel repo and poky-extra
> to point to it
> 2. Use the standard linux-yocto kernel and a own meta-bsp layer.
>
> And if I go with methode 2 I just my kernel config into
> "meta-stamp9g20/recipes-kernel/linux/files/stamp9g20.cfg"?

Yes. And in method 1, you'd just put that config into the meta branch
where you created your BSP files based on the existing BSP.

Cheers,

Bruce

>
> Thank you, very much! ;-)




More information about the yocto mailing list