[yocto] Samba server?

Paul D. DeRocco pderocco at ix.netcom.com
Thu Mar 7 14:29:08 PST 2013


> From: Martin Jansa [mailto:martin.jansa at gmail.com] 
> 
> No, adding extra layer is pretty basic operation and should 
> be properly
> documented. Can you send some pointers what have you read 
> about adding a
> layer and what wasn't easy to understand?

How to theoretically add a layer was easy enough to understand, but when it
failed to work, I came to a dead end.

I'm trying to make a basic non-GUI image based on the Atom cedartrail-nopvr
machine, plus Samba, so I began with the following items in BBLAYERS:

  meta
  meta-yocto
  meta-yocto-bsp
  meta-intel
  meta-intel/meta-cedartrail

and I built core-image-base. That worked fine, but of course it had no Samba
in it, nor is Samba anywhere to be found within the Yocto stuff. So I
downloaded meta-openembedded from their GIT server, which I know from my
Gumstix experience contains Samba in its meta-oe layer, added
meta-openembedded/meta-oe to the end of BBLAYERS, and tried bitbaking both
core-image-base and samba. I quickly got the following error:


ERROR: ParseError at
/home/pauld/yocto-atom/poky-danny-8.0/meta-openembedded/meta-oe/recipes-grap
hics/ttf-fonts/ttf.inc:12: Could not inherit file classes/fontcache.bbclass


There is no fontcache.bbclass anywhere within meta-openembedded, or the
Yocto stuff, but looking through their GIT repository I found it exists
within openembedded-core, in the meta layer. So I downloaded that, and added
openembedded-core/meta to BBLAYERS before meta-openembedded/meta-oe and
tried again. It got past the above error, but this time I got the following
shell script error:


ERROR: ExpansionError during parsing
/home/pauld/yocto-atom/poky-danny-8.0/meta-openembedded/meta-oe/recipes-supp
ort/maliit/maliit-framework_git.bb: Failure expanding variable
gtk_immodule_cache_postinst: ExpansionError: Failure expanding variable
gtk_immodule_cache_postinst, expression was if [ "x$D" != "x" ]; then
    for maj_ver in 2 3; do
        if [ -x $D/usr/bin/gtk-query-immodules-$maj_ver.0 ]; then
            IMFILES=$(ls $D/usr/lib/gtk-$maj_ver.0/*/immodules/*.so)
            ${@qemu_run_binary(d, '$D',
'/usr/bin/gtk-query-immodules-$maj_ver.0')} \
                $IMFILES > $D/etc/gtk-$maj_ver.0/gtk.immodules 2>/dev/null
&&
                sed -i -e "s:$D::" $D/etc/gtk-$maj_ver.0/gtk.immodules

            [ $? -ne 0 ] && exit 1
        fi
    done

    exit 0
fi
if [ ! -z `which gtk-query-immodules-2.0` ]; then
    gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
fi
if [ ! -z `which gtk-query-immodules-3.0` ]; then
    gtk-query-immodules-3.0 > /etc/gtk-3.0/gtk.immodules
fi
 which triggered exception NameError: name 'qemu_run_binary' is not defined


I'm sure this e-mail mangled the above due to line wrapping, but I doubt
anyone really needs to know what's going on in that shell script, and the
final line is the only meaningful one. I suspect that the meta-oe layer is
dependent on yet another layer that defines this 'qemu_run_binary' function,
and that even though I've got all of openmbedded-core and meta-openembedded
under my poky-danny-8.0 directory, bitbake only parses those parts that are
mentioned in BBLAYERS, relying upon the user to deal with inter-layer
dependencies.

Perhaps I could grep a bazillion files looking for qemu_run_binary, but I'm
worried that I'm wasting my time down a blind alley. Is pulling in somebody
else's layer (in this case an OpenEmbedded layer into a Yocto system)
something that's supposed to work, or does it only work if it's been tried
and debugged by the experts who create these things in the first place?

(And why doesn't Yocto include Samba anyway? It seems more of a common
standard package than a lot of the stuff I see included.)

-- 

Ciao,               Paul D. DeRocco
Paul                mailto:pderocco at ix.netcom.com 




More information about the yocto mailing list