Talk:MokoMakefile
From Openmoko
Fails trying to fetch uboot
on ubuntu edgy (with all the required sofware installed):
( cd build ; . ../setup-env ; \ bitbake openmoko-devel-image ) NOTE: Using cache in '/content/build/tmp/cache/fic-gta01' NOTE: Handling BitBake files: \ (4333/4333) [100 %] NOTE: Parsing finished. 4149 cached, 0 parsed, 184 skipped, 0 masked. NOTE: build 200704240008: started OE Build Configuration: BB_VERSION = "1.6.7" OE_REVISION = "<unknown>" TARGET_ARCH = "arm" TARGET_OS = "linux" MACHINE = "fic-gta01" DISTRO = "openmoko" DISTRO_VERSION = ".dev-snapshot-20070423" TARGET_FPU = "soft" NOTE: preferred version 2.4 of glibc not available NOTE: preferred version 2.4 of glibc-intermediate not available NOTE: preferred version 2.4 of glibc not available NOTE: Retrieved remote revisions: ['0', '1754', '0'] NOTE: Retrieved remote revisions: ['14da5f7675bbb427c469e3f45006e027b6e21db9', '0', '1811'] NOTE: package uboot-gta01-1.2.0+svnnow: started NOTE: package uboot-gta01-1.2.0+svnnow-r4_14da5f7675bbb427c469e3f45006e027b6e21db9_0_1811: task do_fetch: started fatal: corrupted pack file .git/objects/pack/pack-a146bcbc18f4826d6bf2a7f63be5dd77bbb5b2f5.pack Fetch failure: git://www.denx.de/git/u-boot.git/ NOTE: Task failed: Fetch failed: Git: export PATH=/content/build/tmp/staging/i686-linux/bin/arm-linux:/content/build/tmp/staging/i686-linux/bin:/content/build/tmp/cross/bin:/content/bitbake/bin:/home/philip/work/trac/install/0.10-stable/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games; git pull git://www.denx.de/git/u-boot.git/ failed NOTE: package uboot-gta01-1.2.0+svnnow-r4_14da5f7675bbb427c469e3f45006e027b6e21db9_0_1811: task do_fetch: failed ERROR: TaskFailed event exception, aborting NOTE: package uboot-gta01-1.2.0+svnnow: failed ERROR: Build of openmoko-devel-image failed make: *** [openmoko-devel-image] Fout 1
To fix this, upgrade git to 1.5.x. (1.4.x currently installed.)
Fails trying to download a TTF fonts. Workaround Below
Trying to build with the latest MokoMakefile fails with the following output:
... NOTE: fetch http://downloads.openmoko.org/sources/dejavu-ttf-2.15.tar.bz2 --10:32:52-- http://downloads.openmoko.org/sources/dejavu-ttf-2.15.tar.bz2 => `/home/nat/moko/sources/dejavu-ttf-2.15.tar.bz2' Resolving downloads.openmoko.org... 88.198.93.219 Connecting to downloads.openmoko.org|88.198.93.219|:80... connected. HTTP request sent, awaiting response... 404 Not Found 10:32:52 ERROR 404: Not Found. NOTE: Task failed: Fetch failed: http://heanet.dl.sf.net/dejavu/dejavu-ttf-2.15.tar.bz2 NOTE: package ttf-dejavu-2.15-r0: task do_fetch: failed ERROR: TaskFailed event exception, aborting NOTE: package ttf-dejavu-2.15: failed ERROR: Build of openmoko-devel-image failed make: *** [openmoko-devel-image] Error 1
To work around this problem, download from here http://dejavu.sourceforge.net/wiki/index.php/Download and save into the sources/ subdirectory beneath where you are running make. Then create a file named dejavu-ttf-2.15.tar.bz2.md5 alongside the tar.bz2 file that contains the MD5 checksum on that download page. Then issue the make command again and the build will pick up where it left off.
do_compile fails with unreconized option '-Qy'
I use bash for my shell and this seems to be caused by something in my .bashrc For now, I have just commented out my .bashrc for my builds. It has something to do with the PATH variable. Try using
PATH=/bin:/usr/bin:/usr/local/bin make openmoko-devel-image"
to get around it.
(NOT FIXED) Fails on a 32bit machine
| make[5]: Entering directory `/usr/local/oe/build/tmp/work/armv4t-linux/binutil s-cross-2.17-r0/binutils-2.17/build.x86_64-linux.arm-linux/bfd' | /bin/sh ./libtool --mode=compile ccache gcc -DHAVE_CONFIG_H -I. -I/usr/local/ oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17/bfd -I. -I. -I/usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd -I/usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils -2.17/bfd/../include -I/usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross -2.17-r0/binutils-2.17/bfd/../intl -I../intl -isystem/usr/local/oe/build/tmp/st aging/x86_64-linux/include -W -Wall -Wstrict-prototypes -Wmissing-prototypes -We rror -isystem/usr/local/oe/build/tmp/staging/x86_64-linux/include -O2 -c -o libb fd.lo /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils- 2.17/bfd/libbfd.c | ccache gcc -DHAVE_CONFIG_H -I. -I/usr/local/oe/build/tmp/work/armv4t-linux/bin utils-cross-2.17-r0/binutils-2.17/bfd -I. -I. -I/usr/local/oe/build/tmp/work/arm v4t-linux/binutils-cross-2.17-r0/binutils-2.17/bfd -I/usr/local/oe/build/tmp/wor k/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17/bfd/../include -I/usr/local/ oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17/bfd/../intl -I../intl -isystem/usr/local/oe/build/tmp/staging/x86_64-linux/include -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -isystem/usr/local/oe/build/tmp /staging/x86_64-linux/include -O2 -c /usr/local/oe/build/tmp/work/armv4t-linux/b inutils-cross-2.17-r0/binutils-2.17/bfd/libbfd.c -o libbfd.o | cc1: warnings being treated as errors | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c: In function 'bfd_getb_signed_64': | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:662: warning: left shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:662: warning: left shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c: In function 'bfd_getl_signed_64': | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:685: warning: left shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:685: warning: left shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c: In function 'bfd_putb64': | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:717: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:718: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:719: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:720: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c: In function 'bfd_putl64': | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:735: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:736: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:737: warning: right shift count >= width of type | /usr/local/oe/build/tmp/work/armv4t-linux/binutils-cross-2.17-r0/binutils-2.17 /bfd/libbfd.c:738: warning: right shift count >= width of type | make[5]: *** [libbfd.lo] Error 1
Any insight here? --Adam 23:10, 15 May 2007 (CEST)
Building on Fedora Core 6
Install stuff needed for OpenMoko:
# yum install python m4 make wget curl ftp cvs monotone subversion \ tar bzip2 gzip unzip python-psyco ccache perl texinfo texi2html \ diffstat openjade docbook-style-dsssl docbook-style-xsl docbook-dtds \ docbook-utils sed bison bc glibc-devel gcc binutils pcre pcre-devel git \ quilt groff linuxdoc-tools patch compat-gcc-34 lynx netpbm
(notice compat-gcc-34 wich was needed for FC6 (gcc 4 installed), and lynx which is needed by qemu (no fallback to wget, curl, or links at the moment and no check for it, resulting in strange "sleep" errors when trying to build without lynx).
Build it:
$ make setup $ make openmoko-devel-image $ unset LD_LIBRARY_PATH $ make update-makefile && make update && make setup && make openmoko-devel-image
I have also done a
$ unset LD_LIBRARY_PATH; make update-makefile && nice make update && nice make setup && nice make all
(This takes several hours)
Build qemu:
$ make qemu
Run it:
# echo 1024 > /proc/sys/dev/rtc/max-user-freq $ make run-qemu
This will bring up the OpenMoko :) Use SPACE for AUX and ENTER for POWER. Not quite the same as holding a Neo1973 in your hands I would guess, but this is the best we can do for now. Thanks!
Building on Ubuntu Feisty
MokoMakefile requires more than 512 MB of RAM + Swap space (around 1GB?).
If you need swap, please check that its size under Feisty is not null!
Bug #105490 describes the current issue and offers a workaround (23 Jul 07).
Fails trying to build bluez-utils
on Gentoo Linux, it fails compiling bluez-utils (I've tried also "make clean-package-bluez-utils" before the following command)
do a "make build-package-libusb; make clean-package-bluez-utils" and it should continue (the bluez-utils .bb is missing the libusb dependency)
openSUSE 10.1 and 10.2 workarounds
ltrace package fails to build with error:
... checking for pid_t... yes checking for getopt... yes checking for getopt_long... yes checking gelf.h usability... no checking gelf.h presence... no checking for gelf.h... no configure: error: ***** gelf.h not found ***** FATAL: oe_runconf failed
FIX: edit /home/moko/build/tmp/work/armv4t-linux/ltrace-0.4-r0/ltrace-0.4/configure.ac at line 44: remove the following block:
for path in /usr/include/elfutils /usr/local/include/elfutils \ /usr/include/libelf /usr/local/include/libelf; do if test -f ${path}/gelf.h; then CPPFLAGS="$CPPFLAGS -I ${path}" fi done
( it adds /usr/include/elfutils to path, which causes cross-compile badness error )
QEMU build fails to compile USB code
/usr/include/linux/usbdevice_fs.h:116: error: variable or field `__user' declared void /usr/include/linux/usbdevice_fs.h:116: error: syntax error before '*' token /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c: In function `usb_host_handle_control': /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:103: error: invalid application of `sizeof' to incomplete type `usbdevfs_ctrltran sfer' /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c: In function `usb_host_handle_data': /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:120: error: storage size of 'bt' isn't known /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:132: error: invalid application of `sizeof' to incomplete type `usbdevfs_bulktran sfer' /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:120: warning: unused variable `bt' /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c: In function `usb_host_device_open': /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:199: error: storage size of 'ctrl' isn't known /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:202: error: invalid application of `sizeof' to incomplete type `usbdevfs_ioctl' /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c:199: warning: unused variable `ctrl' make[2]: *** [usb-linux.o] Error 1
FIX: edit /home/moko/openmoko/trunk/src/host/qemu-neo1973/usb-linux.c at line 29 add the following (before #include <linux/usbdevice_fs.h>)
#include <linux/compiler.h>
hint: there is a copy of the file in /home/moko/build/tmp/work/i686-linux/qemu-native-0.9.0+cvs20070613-r5/qemu/usb-linux.c
see: http://osdir.com/ml/emulators.kvm.devel/2007-01/msg00101.html
Cannot satisfy fstests
make openmoko-devel-image ... | Collected errors: | ERROR: Cannot satisfy the following dependencies for task-openmoko-debug: | fstests NOTE: Task failed: /no-backup/Moko/build/tmp/work/fic-gta01-linux/openmoko-devel-image-1.0-r0/temp/log.do_rootfs.25036 NOTE: package openmoko-devel-image-1.0-r0: task do_rootfs: failed ERROR: TaskFailed event exception, aborting
Failed on debian etch 2007-07-20 Solution from mailing list post from hardskinone, report of an irc chat
I got help in IRC channel. I do following steps * remove fstest from oe/packages/tasks/task-openmoko.bb , * increase PR field by one * make openmoko-devel-image
conflicting types for 'futimens'
if you encounter the following error:
| In file included from utimecmp.c:40: | utimens.h:2: error: conflicting types for 'futimens' | /usr/include/sys/stat.h:370: error: previous declaration of 'futimens' was here
a patch is needed because your glibc is too new. grab & enable the patch as follows
cd openembedded/packages/coreutils mv coreutils_5.3.0.bb coreutils_5.3.0.orig wget http://www.openembedded.org/repo/org.openembedded.dev/packages/coreutils/coreutils_5.3.0.bb cd - cd openembedded/packages/coreutils/coreutils-5.3.0 wget http://www.openembedded.org/repo/org.openembedded.dev/packages/coreutils/coreutils-5.3.0/futimens.patch cd -
Workaround for problems compiling mtd-utils
Change the line on openembedded/packages/mtd/mtd-utils_1.0.0+git.bb
which reads:
SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=master \
to:
SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=a6fa706fe9e7696b4b2045edf9698c3bac07e3e3 \
which forces the recipe to use an older revision (the one which worked last time I built the image on my computer).
Be sure to remember to undo the change later, or else you will not get any new changes to that package. --CesarB 04:48, 25 July 2007 (CEST)
Note: these patches should be updated - the lzo patch is included in the current version, so backing off to the previous version and repatching seems silly. I was able to make it through this part of the build by applying the remaining patches manually. --Ted Lemon 15:44, 29 July 2007 (CDT)
Monotone segfaulting on Ubuntu Feisty Fawn/PPC
If you are running Ubuntu Feisty Fawn on a PowerPC computer you will experience problems running monotone. To fix this issue you need to install monotone as well as the libboost packages from Gutsy. The easiest way to accomplish this is to add the gutsy repositories to your sources.list and change the preferences to look like this:
Package: * Pin: release a=feisty Pin-Priority: 700 Package: * Pin: release a=gutsy Pin-Priority: -100 Package: libc6 libc6-dev tzdata util-linux libgcc1 libstdc++6 monotone Pin: release a=gutsy Pin-Priority: 800 Package: libboost-* Pin: release a=gutsy Pin-Priority: 800
After doing this install monotone in this way:
apt-get -t gutsy install monotone.
That should install monotone 0.35 with updated (and working) boost libraries.
Add count
Can the count of downloads be put on the page?
Fails on ncurses install in Fedora 7 with a "tic -x" message
Adjust the following command to your system, then run it:
export LD_LIBRARY_PATH=/home/moko/build/tmp/work/x86_64-linux/ncurses-native-5.4-r8/ncurses-5.4/lib
Then start make again and it should pick up where it left off.
You can get a list of potential paths to use with the following command from you main moko directory:
find . | grep libncurses
The basic problem is that it is linking against your main system libraries instead of the OpenEmbedded ones.
There's probably a cleaner way of handling this - please update this entry if you know it.
This has been fixed in Openembedded, see Openembedded Bug #2554 for further details.
uboot-gta01 fails to build
Changes in the GIT of U-Boot make the OpenMoko patches unapplyable. For the use of Revision cc3023b9f95d7ac959a764471a65001062aecf41 and everything will be fine for now.
Perl fails to build
After following every bit of advice I can find to 'make clean' and nuke the perl build directories, every build comes up with:
| make[1]: Entering directory `/src/openmoko/build/tmp/work/i686-linux/perl-native-5.8.7-r3/perl-5.8.7' | make[1]: *** No rule to make target `<command-line>', needed by `miniperlmain.o'. Stop. | make[1]: Leaving directory `/src/openmoko/build/tmp/work/i686-linux/perl-native-5.8.7-r3/perl-5.8.7' | FATAL: oe_runmake failed NOTE: Task failed: /src/openmoko/build/tmp/work/i686-linux/perl-native-5.8.7-r3/temp/log.do_compile.19531 NOTE: package perl-native-5.8.7-r3: task do_compile: failed
Solution turned out to be editing /src/openmoko/build/tmp/work/i686-linux/perl-native-5.8.7-r3/perl-5.8.7/makedepend.SH and at line 169 change the regexp to eat references to "<command.line>" to catch what was leaking through.
Gettext fails to build
Gettext's build is broken unless you have emacs installed. Crazy though it seems. You will see an error like:
| WARNING: Warnings can be ignored. :-) | if test "no" != no; then \ | set x; \ | list='po-mode.el po-compat.el'; for p in $list; do \ | if test -f "$p"; then d=; else d="./"; fi; \ | set x "$@" "$d$p"; shift; \ | done; \ | shift; \ | EMACS="no" /bin/bash ../../config/elisp-comp "$@" || exit 1; \ | if test "no" != no; then \ | set x; \ | list='po-mode.el po-compat.el'; for p in $list; do \ | if test -f "$p"; then d=; else d="./"; fi; \ | set x "$@" "$d$p"; shift; \ | done; \ | shift; \ | EMACS="no" /bin/bash ../../config/elisp-comp "$@" || exit 1; \ | else : ; fi | mv: cannot move `elc-temp' to `elc-stamp': No such file or directory | make[5]: Leaving directory `/home/raster/moko/build/tmp/work/i686-linux/gettext-native-0.14.1-r5/gettext-0.14.1/gettext-tools/misc' | make[5]: *** [elc-stamp] Error 1 | make[5]: Leaving directory `/home/raster/moko/build/tmp/work/i686-linux/gettext-native-0.14.1-r5/gettext-0.14.1/gettext-tools/misc' | make[4]: *** [po-mode.elc] Error 2 | make[4]: *** Waiting for unfinished jobs.... | make[4]: Leaving directory `/home/raster/moko/build/tmp/work/i686-linux/gettext-native-0.14.1-r5/gettext-0.14.1/gettext-tools/misc' | make[3]: *** [all-recursive] Error 1 | make[3]: Leaving directory `/home/raster/moko/build/tmp/work/i686-linux/gettext-native-0.14.1-r5/gettext-0.14.1/gettext-tools' | make[2]: *** [all] Error 2 | make[2]: Leaving directory `/home/raster/moko/build/tmp/work/i686-linux/gettext-native-0.14.1-r5/gettext-0.14.1/gettext-tools' | make[1]: *** [all-recursive] Error 1 | make[1]: Leaving directory `/home/raster/moko/build/tmp/work/i686-linux/gettext-native-0.14.1-r5/gettext-0.14.1' | FATAL: oe_runmake failed
The solution is simple - install emacs (example below for debian/ubuntu) and try again:
sudo apt-get install emacs make clean-package-gettext-native-0.14.1-r5 make openmoko-devel-image
Fails compiling binutils-cross on Gentoo/AMD64
make setup works fine, but when running make openmoko-devel-image it fails with the following:
| make[4]: Entering directory `/home/techiem2/Moko/build/tmp/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18-r0/binutils-2.18/build.x86_64-linux.arm-angstrom-linux-gnueabi/libiberty/testsuite' | make[4]: Nothing to be done for `install'. | make[4]: Leaving directory `/home/techiem2/Moko/build/tmp/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18-r0/binutils-2.18/build.x86_64-linux.arm-angstrom-linux-gnueabi/libiberty/testsuite' | make[3]: Leaving directory `/home/techiem2/Moko/build/tmp/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18-r0/binutils-2.18/build.x86_64-linux.arm-angstrom-linux-gnueabi/libiberty' | make[2]: Nothing to be done for `install-target'. | make[2]: Leaving directory `/home/techiem2/Moko/build/tmp/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18-r0/binutils-2.18/build.x86_64-linux.arm-angstrom-linux-gnueabi' | make[1]: Leaving directory `/home/techiem2/Moko/build/tmp/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18-r0/binutils-2.18/build.x86_64-linux.arm-angstrom-linux-gnueabi' | rmdir: /home/techiem2/Moko/build/tmp/cross//home/techiem2/Moko/build/tmp/cross/lib/gcc-lib: No such file or directory | rmdir: /home/techiem2/Moko/build/tmp/cross//home/techiem2/Moko/build/tmp/cross/lib: No such file or directory | rmdir: /home/techiem2/Moko/build/tmp/cross//home/techiem2/Moko/build/tmp/cross: No such file or directory | mv: cannot stat `/home/techiem2/Moko/build/tmp/cross/lib/libiberty.a': No such file or directory NOTE: Task failed: /home/techiem2/Moko/build/tmp/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18-r0/temp/log.do_stage.9730 NOTE: package binutils-cross-2.18-r0: task do_populate_staging: failed ERROR: TaskFailed event exception, aborting NOTE: package binutils-cross-2.18: failed ERROR: Build of /home/techiem2/Moko/openembedded/packages/binutils/binutils-cross_2.18.bb do_populate_staging failed ERROR: Task 1641 (/home/techiem2/Moko/openembedded/packages/binutils/binutils-cross_2.18.bb, do_populate_staging) failed NOTE: Tasks Summary: Attempted 107 tasks of which 107 didn't need to be rerun and 1 failed. ERROR: '/home/techiem2/Moko/openembedded/packages/binutils/binutils-cross_2.18.bb' failed make: *** [openmoko-devel-image] Error 1