[yocto] BSP for taskit stamp9g20

Markus Hubig mhubig at imko.de
Tue Jun 26 04:08:46 PDT 2012


Hello @all,

as part of my bachelor thesis, I'm in the process of creating a custom
Linux OS
for the taskit Stamp9G20<http://www.taskit.de/en/products/stamp9g20/index.htm>(a
small 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:

$ 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
 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"

# Clone poky-extras *into poky* ...
$ git clone git://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"

# Now lets try a build.
$ cd ~/poky
$ source oe-init-build-env

# Edit conf/bblayers.conf
BBLAYERS ?= " \
  /home/mhubig/Development/poky/meta \
  /home/mhubig/Development/poky/meta-yocto \
  /home/mhubig/Development/poky/meta-stamp9g20 \
  /home/mhubig/Development/poky/poky-extras/meta-kernel-dev \
  "

# Edit conf/local.conf
MACHINE ??= "stamp9g20"

and go ...

$ bitbake -c cleanall linux-yocto
$ bitbake -k core-image-minimal

This fails with a bunch of errors, all related to linux-yocto ...

$ bitbake -v -k linux-yocto
WARNING: Host distribution "Ubuntu 12.04 LTS" has not been validated with
this version of the build system; you may possibly experience unexpected
failures. It is recommended that you use a tested distribution.
Loading cache: 100%
|#############################################################################|
ETA:  00:00:00
Loaded 1104 entries from dependency cache.
Parsing recipes: 100%
|###########################################################################|
Time: 00:00:00
Parsing of 829 .bb files complete (827 cached, 2 parsed). 1105 targets, 37
skipped, 0 masked, 0 errors.

OE Build Configuration:
BB_VERSION        = "1.15.1"
TARGET_ARCH       = "arm"
TARGET_OS         = "linux-gnueabi"
MACHINE           = "stamp9g20"
DISTRO            = "poky"
DISTRO_VERSION    = "1.2"
TUNE_FEATURES     = "armv5 dsp thumb arm926ejs"
TARGET_FPU        = "soft"
meta
meta-yocto
meta-stamp9g20    = "denzil:d20a24310eb43fed9a3f3e75752c9ad45a18cbe4"
meta-kernel-dev   = "master:42f1aba1c52da20edd65709152fec3529b3b516f"

NOTE: Resolving any missing task queue dependencies
NOTE: selecting pseudo-native to satisfy virtual/fakeroot-native due to
PREFERRED_PROVIDERS
NOTE: selecting eglibc to satisfy virtual/libc due to PREFERRED_PROVIDERS
NOTE: selecting gcc-cross to satisfy virtual/arm-poky-linux-gnueabi-gcc due
to PREFERRED_PROVIDERS
NOTE: selecting linux-yocto to satisfy runtime kernel-base due to
PREFERRED_PROVIDER_virtual/kernel = linux-yocto
NOTE: selecting linux-yocto to satisfy runtime kernel-image due to
PREFERRED_PROVIDER_virtual/kernel = linux-yocto
NOTE: selecting eglibc to satisfy runtime eglibc-dev due to
PREFERRED_PROVIDER_virtual/libc = eglibc
NOTE: selecting eglibc to satisfy runtime libsegfault due to
PREFERRED_PROVIDER_virtual/libc = eglibc
NOTE: selecting eglibc to satisfy runtime eglibc due to
PREFERRED_PROVIDER_virtual/libc = eglibc
NOTE: selecting gcc-cross-intermediate to satisfy
virtual/arm-poky-linux-gnueabi-gcc-intermediate due to PREFERRED_PROVIDERS
NOTE: selecting linux-libc-headers to satisfy linux-libc-headers due to
PREFERRED_PROVIDERS
NOTE: selecting gettext to satisfy virtual/gettext due to
PREFERRED_PROVIDERS
NOTE: selecting gcc-runtime to satisfy
virtual/arm-poky-linux-gnueabi-compilerlibs due to PREFERRED_PROVIDERS
NOTE: selecting binutils-cross to satisfy
virtual/arm-poky-linux-gnueabi-binutils due to PREFERRED_PROVIDERS
NOTE: selecting eglibc to satisfy
virtual/arm-poky-linux-gnueabi-libc-for-gcc due to PREFERRED_PROVIDERS
NOTE: selecting db to satisfy virtual/db due to PREFERRED_PROVIDERS
NOTE: selecting linux-libc-headers to satisfy runtime
linux-libc-headers-dev due to PREFERRED_PROVIDER_linux-libc-headers =
linux-libc-headers
NOTE: selecting gettext to satisfy runtime gettext-dev due to
PREFERRED_PROVIDER_virtual/gettext = gettext
NOTE: selecting gettext to satisfy runtime gettext due to
PREFERRED_PROVIDER_virtual/gettext = gettext
NOTE: selecting db to satisfy runtime db-dev due to
PREFERRED_PROVIDER_virtual/db = db
NOTE: selecting db to satisfy runtime db due to
PREFERRED_PROVIDER_virtual/db = db
NOTE: selecting pigz-native to satisfy gzip-native due to
PREFERRED_PROVIDERS
NOTE: selecting eglibc-initial to satisfy
virtual/arm-poky-linux-gnueabi-libc-initial due to PREFERRED_PROVIDERS
NOTE: selecting eglibc to satisfy virtual/libiconv due to
PREFERRED_PROVIDERS
NOTE: selecting gcc-cross to satisfy virtual/arm-poky-linux-gnueabi-g++ due
to PREFERRED_PROVIDERS
NOTE: selecting libgcc to satisfy libgcc due to PREFERRED_PROVIDERS
NOTE: selecting libgcc to satisfy runtime libgcc due to
PREFERRED_PROVIDER_libgcc = libgcc
NOTE: selecting gcc-cross-initial to satisfy
virtual/arm-poky-linux-gnueabi-gcc-initial due to PREFERRED_PROVIDERS
NOTE: Preparing runqueue
NOTE: Marking Active Tasks
NOTE: Pruned 1364 inactive tasks, 992 left
NOTE: Assign Weightings
NOTE: Compute totals (have 1 endpoint(s))
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Running task 422 of 992 (ID: 3,
/home/mhubig/Development/poky/meta/recipes-kernel/linux/linux-yocto_3.2.bb,
do_patch)
NOTE: package
linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1:
task do_patch: Started
+ cd
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1
+ do_patch
+ cd
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/linux
+ [ -f
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01
627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/defconfig
]
+ [ -f
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/linux/scripts/util/configme
]
+ kbranch=standard/default/stamp9g20
+ [ -n standard/default/stamp9g20 ]
+ kbranch=standard/default/stamp9g20
+ [ -n t ]
+ createme_flags=--disable-meta-gen
+ createme --disable-meta-gen arm st
andard/default/stamp9g20
[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
+ patches=
+ set +e
+ [ -n features/netfilter features/taskstats ]
+ addon_features= --feature features/netfilter
+ addon_features= --feature features/netfilter --feature features/taskstats
+ updateme --branch standard/default/stamp9g20 -DKDESC=stamp9g20:standard
--feature features/netfilter --feature features/taskstats arm stamp9g20
/home/mhubig/Development/poky/meta-stamp9g20/recipes-kernel/linux/files/stamp9g20-standard.scc
/home/mhubig/Development/poky/meta-stamp9g20/reci
pes-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-kernel/linux/files/user-patches.scc
+ [ 0 -ne 0 ]
+ patchme standard/default/stamp9g20
ERROR. Could not locate meta series for standard/default/stamp9g20
+ [ 1 -ne 0 ]
+ echo ERROR. Could not modify standard/default/stamp9g20
ERROR. Could not modif
ERROR: Function failed: do_patch (see
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/temp/log.do_patch.31485
for further information)
ERROR: Logfile of failure stored in:
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/temp/log.do_patch.31485
Log data follows:
| + cd
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1
| + do_patch
| + cd
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/linux
| + [ -f
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01
|
627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/defconfig
]
| + [ -f
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/linux/scripts/util/configme
]
| + kbranch=standard/default/stamp9g20
| + [ -n standard/default/stamp9g20 ]
| + kbranch=standard/default/stamp9g20
| + [ -n t ]
| + createme_flags=--disable-meta-gen
| + createme --disable-meta-gen arm st
| andard/default/stamp9g20
| [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
| + patches=
| + set +e
| + [ -n features/netfilter features/taskstats ]
| + addon_features= --feature features/netfilter
| + addon_features= --feature features/netfilter --feature
features/taskstats
| + updateme --branch standard/default/stamp9g20 -DKDESC=stamp9g20:standard
--feature features/netfilter --feature features/taskstats arm stamp9g20
/home/mhubig/Development/poky/meta-stamp9g20/recipes-kernel/linux/files/stamp9g20-standard.scc
/home/mhubig/Development/poky/meta-stamp9g20/reci
| pes-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-kernel/linux/files/user-patches.scc
| + [ 0 -ne 0 ]
| + patchme standard/default/stamp9g20
| ERROR. Could not locate meta series for standard/default/stamp9g20
| + [ 1 -ne 0 ]
| + echo ERROR. Could not modify standard/default/stamp9g20
| ERROR. Could not modif
| ERROR: Function failed: do_patch (see
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/temp/log.do_patch.31485
for further information)
| + cd
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1
| + do_patch
| + cd
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/linux
| + [ -f
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/defconfig
]
| + [ -f
/home/mhubig/Development/poky/build/tmp/work/stamp9g20-poky-linux-gnueabi/linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1/linux/scripts/util/configme
]
| + kbranch=standard/default/stamp9g20
| + [ -n standard/default/stamp9g20 ]
| + kbranch=standard/default/stamp9g20
| + [ -n t ]
| + createme_flags=--disable-meta-gen
| + createme --disable-meta-gen arm standard/default/stamp9g20
| [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-kernel/linux/files/user-patches.scc
| + patches=
| + set +e
| + [ -n features/netfilter features/taskstats ]
| + addon_features= --feature features/netfilter
| + addon_features= --feature features/netfilter --feature
features/taskstats
| + updateme --branch standard/default/stamp9g20 -DKDESC=stamp9g20:standard
--feature features/netfilter --feature features/taskstats arm stamp9g20
/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-kernel/linux/files/user-patches.scc
| + [ 0 -ne 0 ]
| + patchme standard/default/stamp9g20
| ERROR. Could not locate meta series for standard/default/stamp9g20
| + [ 1 -ne 0 ]
| + echo ERROR. Could not modify standard/default/stamp9g20
| ERROR. Could not modif
NOTE: package
linux-yocto-3.2.11+git4+f28e01627c8cef1102f3326009fa3b5d5a22fd97_1+ebb5e65d02a352e3e8601096e1674ffc261345f2-r1.1:
task do_patch: Failed
ERROR: Task 3 (/home/mhubig/Development/poky/meta/recipes-kernel/linux/
linux-yocto_3.2.bb, do_patch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 975 tasks of which 974 didn't need to be
rerun and 1 failed.

Summary: 1 task failed:
  /home/mhubig/Development/poky/meta/recipes-kernel/linux/linux-yocto_3.2.bb,
do_patch
Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20120626/5b61cba7/attachment.html>


More information about the yocto mailing list