ECE597 OpenEmbedded Issues and Problem Solving

From eLinux.org
Revision as of 13:45, 27 October 2011 by Peter Huewe (talk | contribs)
Jump to: navigation, search

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 Step 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.