ECE597 OpenEmbedded Issues and Problem Solving
I'm retiring this page.
OpenEmbedded Issues
For the most part, looking at the error log will give you enough information to Google a result. In this particular case, while trying bitbake beagleboard-demo-image, I was getting errors that didn't give me much information from internet searches. The solution I decided on was to simply get rid of the Gimp and gnumeric packages. The following is the process I went through to figure out how to do just that.
Removing Packages
From doing [7] of the Beagle demo image tutorial, we know that beagleboard-demo-image.bb resides in ${OETREE}/openembedded/recipes/images. That gives us a starting point for our search.
[adam@melchoir images]$ cat beagleboard-demo-image.bb
# Demo image for beagleboard
IMAGE_LINGUAS = "en-us"
XSERVER ?= "xserver-xorg \
xf86-input-evdev \
xf86-input-mouse \
xf86-video-fbdev \
xf86-input-keyboard \
"
ANGSTROM_EXTRA_INSTALL ?= ""
export IMAGE_BASENAME = "Beagleboard-demo-image"
DEPENDS = "task-base"
IMAGE_INSTALL = "\
${XSERVER} \
${ANGSTROM_EXTRA_INSTALL} \
task-beagleboard-demo \
"
IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"
#zap root password for release images
There's not much information here. One line that looks interesting is DEPENDS - since it needs that file, let's go take a look at that.
First we need to find it:
[adam@melchoir openembedded]$ find . -name *task-base* ./recipes/angstrom/angstrom-gpe-task-base.bb ./recipes/tasks/task-base.bb
Alright, now let's take a look.
[adam@melchoir openembedded]$ nano recipes/tasks/task-base.bb
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
PR = "r83"
inherit task
DEPENDS = "task-boot"
PROVIDES = "${PACKAGES}"
PACKAGES = ' \
task-base \
task-base-extended \
task-distro-base \
task-machine-base \
\
${@base_contains("MACHINE_FEATURES", "acpi", "task-base-acpi", "",d)} \
${@base_contains("MACHINE_FEATURES", "alsa", "task-base-alsa", "", d)} \
${@base_contains("MACHINE_FEATURES", "apm", "task-base-apm", "", d)} \
${@base_contains("MACHINE_FEATURES", "ext2", "task-base-ext2", "", d)} \
${@base_contains("MACHINE_FEATURES", "vfat", "task-base-vfat", "", d)} \
${@base_contains("MACHINE_FEATURES", "irda", "task-base-irda", "",d)} \
${@base_contains("MACHINE_FEATURES", "keyboard", "task-base-keyboard", "", d)} \
${@base_contains("MACHINE_FEATURES", "pci", "task-base-pci", "",d)} \
${@base_contains("MACHINE_FEATURES", "pcmcia", "task-base-pcmcia", "", d)} \
${@base_contains("MACHINE_FEATURES", "phone", "task-base-phone", "", d)} \
...
A packages variable! That's much more interesting. There's a lot in this file, but doing a search for Gimp or gnumeric doesn't bring anything up. Looking back at beagleboard-demo-image.bb though, there's a similarly named file task-beagleboard-demo. Let's check recipes/tasks for it.
[adam@melchoir tasks]$ ls | grep beagle task-beagleboard-demo.bb
Looks like it's in the same directory as task-base. Let's open it up.
[adam@melchoir tasks]$ nano task-beagleboard-demo.bb
DESCRIPTION = "Task for Beagleboard-demo-image"
PR = "r7"
inherit task
ECONFIG ?= "places e-wm-config-angstrom e-wm-config-default"
RDEPENDS_${PN} = "\
task-proper-tools \
task-base-extended \
angstrom-x11-base-depends \
angstrom-gpe-task-base \
angstrom-gpe-task-settings \
angstrom-zeroconf-audio \
angstrom-led-config \
gimp \
gnumeric \
gpe-scap \
psplash \
mime-support e-wm ${ECONFIG} exhibit \
xterm xmms \
firefox midori \
swfdec-mozilla \
hicolor-icon-theme gnome-icon-theme \
jaaa nmap iperf gnuplot \
abiword \
powertop oprofile \
pidgin \
# irssi \
mplayer \
gnome-games \
rt73-firmware zd1211-firmware \
stalonetray \
synergy \
x11vnc angstrom-x11vnc-xinit \
angstrom-gnome-icon-theme-enable \
openssh-scp openssh-ssh \
picodlp-control \
connman-gnome \
"
# Install all kernel modules
RRECOMMENDS_${PN} += "kernel-modules"
PACKAGE_ARCH = "${MACHINE_ARCH}"
RRECOMMENDS_${PN}_append_armv7a = " omapfbplay"
And there you can see Gimp and gnumeric. By commenting them out (adding a # in front, as in the case of irssi), the image will skip those packages, allowing the image to be built successfully.