2008年7月8日 星期二

Building the Openmoko Note

http://svn.openmoko.org/trunk/src/target/OM-2007.2/

OpenEmbedded: Getting Started
http://wiki.openembedded.net/index.php/Getting_Started

  1. Required Applications
    apt-get install bitbake monotone help2man diffstat texi2html texinfo cvs python-psyco

  2. Preparation
    sudo bash -c "echo 0 > /proc/sys/vm/mmap_min_addr";
    BASE=`pwd`;export BBPATH=${BASE}/build:${BASE}/org.openembedded.dev;
    SERVER=org.openembedded.dev;
    SERVER=git.openmoko.org;
  3. wget http://www.openembedded.org/snapshots/OE.mtn.bz2;
    bunzip2 -d OE.mtn.bz2;

  4. Checkout OE
    mtn --db=${BASE}/OE.mtn checkout --branch=org.openembedded.dev;
    Update OE
    mtn --db=${BASE}/OE.mtn pull monotone.openembedded.org org.openembedded.dev
    cd ${BASE}/org.openembedded.dev && mtn update
    cd ${BASE}/org.openembedded.dreambox && mtn update
  5. mkdir build/conf -p;
    cp org.openembedded.dev/conf/local.conf.sample build/conf/local.conf;

  6. Edit ${BASE}/build/conf/local.conf, change the variables to their relative values.(TOPDIR=${BASE}/build )
    DL_DIR = "${TOPDIR}/sources"
    BBFILES = "${TOPDIR}/../org.openembedded.dev/packages/*/*.bb"
    DISTRO = "angstrom-2008.1"
    MACHINE = "om-gta01"
    and remove (comment) the folloing line
    REMOVE_THIS_LINE:="${@bb.fatal('Read the comments in your conf/local.conf')}"
    not required but it could make faster with SMP
    PARALLEL_MAKE = "-j 4"

  7. cd ${BASE}/build;
    bitbake nano;
    bitbake world
    NOTE: preferred version 1.2.3 of xf86-input-joystick not available (for item xf86-input-joystick)
    NOTE: Resolving any missing task queue dependencies
    ERROR: Required build target 'python-pycap' has no buildable providers.
    Missing or unbuildable dependency chain was: ['python-pycap', 'libnet-1.1.1']


    bitbake task-base
    bitbake gpe-image
    | arm-angstrom-linux-gnueabi-libtool: link: arm-angstrom-linux-gnueabi-gcc -march=armv4t -mtune=arm920t -shared .libs/gdk-pixbuf.o .libs/gdk-pixbuf-animation.o .libs/gdk-pixbuf-data.o .libs/gdk-pixbuf-io.o .libs/gdk-pixbuf-loader.o .libs/gdk-pixbuf-scale.o .libs/gdk-pixbuf-simple-anim.o .libs/gdk-pixbuf-scaled-anim.o .libs/gdk-pixbuf-util.o .libs/gdk-pixdata.o .libs/gdk-pixbuf-enum-types.o -Wl,--whole-archive pixops/.libs/libpixops.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib -L/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/.libs -L/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib /home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/libgmodule-2.0.so -ldl /home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/libgobject-2.0.so /home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/libglib-2.0.so -lm -march=armv4t -mtune=arm920t -Wl,-rpath-link -Wl,/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib -Wl,-O1 -Wl,-soname -Wl,libgdk_pixbuf-2.0.so.0 -Wl,-version-script -Wl,.libs/libgdk_pixbuf-2.0.ver -o .libs/libgdk_pixbuf-2.0.so.0.1200.3
    | /home/prj/om2/build/tmp/cross/lib/gcc/arm-angstrom-linux-gnueabi/4.2.4/../../../../arm-angstrom-linux-gnueabi/bin/ld:.libs/libgdk_pixbuf-2.0.ver:2: ignoring invalid character `\001' in script
    | /home/prj/om2/build/tmp/cross/lib/gcc/arm-angstrom-linux-gnueabi/4.2.4/../../../../arm-angstrom-linux-gnueabi/bin/ld:.libs/libgdk_pixbuf-2.0.ver:2: syntax error in VERSION script
    | collect2: ld returned 1 exit status
    | make[4]: *** [libgdk_pixbuf-2.0.la] Error 1
    | make[4]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3/gdk-pixbuf'
    | make[3]: *** [all-recursive] Error 1
    | make[3]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3/gdk-pixbuf'
    | make[2]: *** [all] Error 2
    | make[2]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3/gdk-pixbuf'
    | make[1]: *** [all-recursive] Error 1
    | make[1]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3'
    | make: *** [all] Error 2
    | FATAL: oe_runmake failed
    NOTE: Task failed: /home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/temp/log.do_compile.20178
    NOTE: package gtk+-2.12.3-r2: task do_compile: failed
    ERROR: TaskFailed event exception, aborting
    NOTE: package gtk+-2.12.3: failed
    ERROR: Build of /home/prj/om2/build/../org.openembedded.dev/packages/gtk+/gtk+_2.12.3.bb do_compile failed
    ERROR: Task 1171 (/home/prj/om2/build/../org.openembedded.dev/packages/gtk+/gtk+_2.12.3.bb, do_compile) failed
    NOTE: Tasks Summary: Attempted 911 tasks of which 525 didn't need to be rerun and 1 failed.
    ERROR: '/home/prj/om2/build/../org.openembedded.dev/packages/gtk+/gtk+_2.12.3.bb' failed
    test@test-laptop:/home/prj/om2/build$
    bitbake opie-image
    | FATAL: Configuring qte failed. EXTRA_OECONF was -system-jpeg -system-libpng -system-zlib -no-qvfb -no-xft -no-vnc -gif -xplatform linux-gnueabi-arm-g++ -qconfig qpe -depths 8,16,32 -static -thread
    NOTE: Task failed: /home/prj/om2/build/tmp/work/om-gta01-angstrom-linux-gnueabi/qte-mt-static-2.3.10-r8/temp/log.do_configure.6469
    NOTE: package qte-mt-static-2.3.10-r8: task do_configure: failed
    ERROR: TaskFailed event exception, aborting
    NOTE: package qte-mt-static-2.3.10: failed
    ERROR: Build of /home/prj/om2/build/../org.openembedded.dev/packages/qte/qte-mt-static_2.3.10.bb do_configure failed
    ERROR: Task 2572 (/home/prj/om2/build/../org.openembedded.dev/packages/qte/qte-mt-static_2.3.10.bb, do_configure) failed
    NOTE: Tasks Summary: Attempted 366 tasks of which 339 didn't need to be rerun and 1 failed.
    ERROR: '/home/prj/om2/build/../org.openembedded.dev/packages/qte/qte-mt-static_2.3.10.bb' failed
    test@test-laptop:/home/prj/om2/build$ \
    bitbake openmoko-devel-image
    | arm-angstrom-linux-gnueabi-libtool: link: arm-angstrom-linux-gnueabi-gcc -march=armv4t -mtune=arm920t -shared .libs/gdk-pixbuf.o .libs/gdk-pixbuf-animation.o .libs/gdk-pixbuf-data.o .libs/gdk-pixbuf-io.o .libs/gdk-pixbuf-loader.o .libs/gdk-pixbuf-scale.o .libs/gdk-pixbuf-simple-anim.o .libs/gdk-pixbuf-scaled-anim.o .libs/gdk-pixbuf-util.o .libs/gdk-pixdata.o .libs/gdk-pixbuf-enum-types.o -Wl,--whole-archive pixops/.libs/libpixops.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib -L/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/.libs -L/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib /home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/libgmodule-2.0.so -ldl /home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/libgobject-2.0.so /home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib/libglib-2.0.so -lm -march=armv4t -mtune=arm920t -Wl,-rpath-link -Wl,/home/prj/om2/build/tmp/staging/arm-angstrom-linux-gnueabi/usr/lib -Wl,-O1 -Wl,-soname -Wl,libgdk_pixbuf-2.0.so.0 -Wl,-version-script -Wl,.libs/libgdk_pixbuf-2.0.ver -o .libs/libgdk_pixbuf-2.0.so.0.1200.3
    | /home/prj/om2/build/tmp/cross/lib/gcc/arm-angstrom-linux-gnueabi/4.2.4/../../../../arm-angstrom-linux-gnueabi/bin/ld:.libs/libgdk_pixbuf-2.0.ver:2: ignoring invalid character `\001' in script
    | /home/prj/om2/build/tmp/cross/lib/gcc/arm-angstrom-linux-gnueabi/4.2.4/../../../../arm-angstrom-linux-gnueabi/bin/ld:.libs/libgdk_pixbuf-2.0.ver:2: syntax error in VERSION script
    | collect2: ld returned 1 exit status
    | make[4]: *** [libgdk_pixbuf-2.0.la] Error 1
    | make[4]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3/gdk-pixbuf'
    | make[3]: *** [all-recursive] Error 1
    | make[3]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3/gdk-pixbuf'
    | make[2]: *** [all] Error 2
    | make[2]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3/gdk-pixbuf'
    | make[1]: *** [all-recursive] Error 1
    | make[1]: Leaving directory `/home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/gtk+-2.12.3'
    | make: *** [all] Error 2
    | FATAL: oe_runmake failed
    NOTE: Task failed: /home/prj/om2/build/tmp/work/armv4t-angstrom-linux-gnueabi/gtk+-2.12.3-r2/temp/log.do_compile.18963
    NOTE: package gtk+-2.12.3-r2: task do_compile: failed
    ERROR: TaskFailed event exception, aborting
    NOTE: package gtk+-2.12.3: failed
    ERROR: Build of /home/prj/om2/build/../org.openembedded.dev/packages/gtk+/gtk+_2.12.3.bb do_compile failed
    ERROR: Task 1459 (/home/prj/om2/build/../org.openembedded.dev/packages/gtk+/gtk+_2.12.3.bb, do_compile) failed
    NOTE: Tasks Summary: Attempted 907 tasks of which 880 didn't need to be rerun and 1 failed.
    ERROR: '/home/prj/om2/build/../org.openembedded.dev/packages/gtk+/gtk+_2.12.3.bb' failed
    test@test-laptop:/home/prj/om2/build$
    bitbake -b /stuff/org.openembedded.dev/packages/blah/blah.bb




Building Openmoko from scratch
Openmoko2007.2
http://wiki.openmoko.org/wiki/Building_Openmoko_from_scratch#Build_host_prerequisites

http://downloads.openmoko.org/OE/snapshots/OE.mtn.bz2 is no longer valid
please make sure to use git.openmoko.org as monotone server (I don't know how to specify the monotone server, so nothing is changed. and with following changes, downloads are from downloads.openmoko.org)
  1. Edit ${TOPDIR}/build/conf/local.conf, change the value of following variable:
    BBFILES = "${TOPDIR}/../org.openembedded.dev/packages/*/*.bb"

    MACHINE = "om-gta01"
    DISTRO = "openmoko"

    ENABLE_BINARY_LOCALE_GENERATION = "1"
    GLIBC_GENERATE_LOCALES = "en_GB.UTF-8"
  2. bitbake openmoko-devel-image
    | checking for BSD-compatible nm... /usr/bin/nm -B
    | /home/prj/om2/build/tmp/work/i686-linux/gmp-native-4.2.1-r2/gmp-4.2.1/configure: line 11007: syntax error near unexpected token `,'
    | /home/prj/om2/build/tmp/work/i686-linux/gmp-native-4.2.1-r2/gmp-4.2.1/configure: line 11007: `_LT_DECL(, AS, 0, Assembler program)'
    | FATAL: oe_runconf failed
    NOTE: Task failed: /home/prj/om2/build/tmp/work/i686-linux/gmp-native-4.2.1-r2/temp/log.do_configure.23714
    NOTE: package gmp-native-4.2.1-r2: task do_configure: failed
    ERROR: TaskFailed event exception, aborting
    NOTE: package gmp-native-4.2.1: failed
    ERROR: Build of /home/prj/om2/build/../org.openembedded.dev/packages/gmp/gmp-native_4.2.1.bb do_configure failed
    ERROR: Task 838 (/home/prj/om2/build/../org.openembedded.dev/packages/gmp/gmp-native_4.2.1.bb, do_configure) failed
    NOTE: Tasks Summary: Attempted 137 tasks of which 137 didn't need to be rerun and 1 failed.
    ERROR: '/home/prj/om2/build/../org.openembedded.dev/packages/gmp/gmp-native_4.2.1.bb' failed
Images generated by building package groups like opie-im.mtnage or pivotboot-image are placed in the build/tmp/deploy/glibc/images/om-gta01/ directory. Individual ipkg packages are put in build/tmp/deploy/glibc/ipk.
OpenEmbbeded: Adding Packages

1. Create bbfile.
2. Try building it locally.
3. Fix eventual problems.
4. Send .bbfile or an OePatch to the openembedded mailing list.


Building Openmoko from scratch (pre-BBT)
http://wiki.openmoko.org/wiki/Building_Openmoko_from_scratch_(pre-BBT)

sudo apt-get install subversion quilt monotone diffstat git python-psyco


OMDIR=`pwd`;export OMDIR;
export BBPATH=$OMDIR/build:$OMDIR/openmoko/trunk/oe:$OMDIR/openembedded;

svn co -r 887 https://svn.openmoko.org/ openmoko

wget http://www.openembedded.org/snapshots/OE.mtn.bz2
bunzip2 OE.mtn.bz2
mtn --db=OE.mtn pull monotone.openembedded.org org.openembedded.dev
mtn --db=OE.mtn checkout --branch=org.openembedded.dev -r e2dbb52fe39df7ef786b6068f6178f29508dfded openembedded

Update
cd $OMDIR/openembedded && mtn update

mkdir -p sources build/conf
cat <<EOF >build/conf/local.conf
MACHINE = "fic-gta01"
DISTRO = "openmoko"
BUILD_ARCH = "`uname -m`"
EOF



fixes
cd $OMDIR/sources
mkdir -p ../build/tmp/stamps/armv4t-linux

wget http://ftp.mozilla.org/pub/mozilla.org/js/older-packages/js-1.5.tar.gz
touch ../build/tmp/stamps/armv4t-linux/js-1.5-r0.do_fetch

wget http://us4.samba.org/samba/ftp/stable/samba-3.0.14a.tar.gz
touch ../build/tmp/stamps/armv4t-linux/samba-3.0.14a-r15.do_fetch

perl -pi.orig -e 's/ *$//;s/\r//g' \
../openembedded/packages/gcc/gcc-4.1.1/gcc-4.1.1-pr13685-1.patch




cd $OMDIR
ln -s openmoko/trunk/oe .

cd $OMDIR/build
bitbake openmoko-devel-image
NOTE: Handling BitBake files: \ (4254/4320) [98 %]ERROR: Could not inherit file classes/image_ipk.bbclass while parsing /home/prj/moko/oe/packages/images/openmoko-sdk-image.bb
ERROR: Could not inherit file classes/image_ipk.bbclass while parsing /home/prj/moko/oe/packages/images/openmoko-image.bb
ERROR: Could not inherit file classes/image_ipk.bbclass while parsing /home/prj/moko/oe/packages/images/openmoko-devel-image.bb
NOTE: Handling BitBake files: | (4302/4320) [99 %]ERROR: Error in executing:
ERROR: Exception: Message:'FetchData' object has no attribute 'tag'
ERROR: Printing the environment of the function
ERROR: 'FetchData' object has no attribute 'tag' while parsing /home/prj/moko/oe/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb
NOTE: Handling BitBake files: - (4305/4320) [99 %]ERROR: Error in executing:
ERROR: Exception: Message:'FetchData' object has no attribute 'tag'
ERROR: Printing the environment of the function
ERROR: 'FetchData' object has no attribute 'tag' while parsing /home/prj/moko/oe/packages/uboot/uboot-gta01_0.0+cvs20061030.bb
NOTE: Handling BitBake files: / (4320/4320) [100 %]
NOTE: Parsing finished. 4117 cached, 0 parsed, 184 skipped, 0 masked.
ERROR: Parsing errors found, exiting...
test@test-laptop:/home/prj/moko/build$





MokoMakefile
http://wiki.openmoko.org/wiki/MokoMakefile

sudo apt-get install subversion build-essential help2man diffstat texi2html texinfo cvs gawk zip unzip
sudo apt-get install libncurses5-dev zlib1g-dev libssl-dev libgtk2.0-dev
# To prevent errors in host validation
sudo apt-get install ca-certificates
# For Openmoko 2007.2 using BitBake-1.8.8:
sudo apt-get install python-pysqlite2 sqlite3 sqlite3-doc python-pysqlite2-dbg
# For building faster
sudo apt-get install quilt python-psyco ccache
# For qemu, install a second compiler for bug avoidance; MokoMakefile knows to look for it.
sudo apt-get install gcc-3.4 g++-3.4 libsdl1.2-dev lynx netpbm dosfstools
# On Ubuntu 8.04, the following was required instead of cogito
sudo apt-get install git-core
# Ubuntu links /bin/sh to /bin/dash, but some scripts fail because they use pushd and popd, which dash does not support
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh

# This may be needed only for ASU
sudo apt-get install libxtst-dev

mkdir mokomake ; cd mokomake;
wget http://www.rwhitby.net/files/openmoko/Makefile;
Or
wget http://svn.projects.openmoko.org/svnroot/mokomakefile/trunk/Makefile

make setup

Edit Makefile, change OM_GIT_BRANCH to one of the following:
OM_GIT_BRANCH := org.openmoko.dev # OM2007.2 (default)
OM_GIT_BRANCH := org.openmoko.asu.dev # ASU
OM_GIT_BRANCH := org.openmoko.asu.stable # ASU stable
OM_GIT_BRANCH := org.openembedded.dev # FSO

make setup-machine-freerunner

make openmoko-devel-image



Distributions
http://wiki.openmoko.org/wiki/Distributions

http://wiki.openmoko.org/wiki/OpenEmbedded

MokoMakefile
http://wiki.openmoko.org/wiki/MokoMakefile


OpenEmbedded
http://wiki.openmoko.org/wiki/OpenEmbedded


OEandYourDistro
http://wiki.openembedded.net/index.php/OEandYourDistro#Using_OpenEmbedded_on_Linux_systems

(maybe outdated and not complete)

git.openmoko.org
downloads.openmoko.org
buildhost.openmoko.org



http://blog.leggewie.org/?p=39
apt-get’able Openembedded

echo deb http://oss.leggewie.org/oe/deb ./ >> /etc/apt/sources.list;
apt-get update;
apt-get install openembedded-sonkei;

oe-setup-sonkei dev
OR
oe-setup-sonkei stable

MACHINE=spitz bitbake nano

沒有留言: