[yocto] Header files in /usr/include of rootfs

Anders Darander anders at chargestorm.se
Wed Dec 2 05:13:27 PST 2015


* Andy Hung(洪翊桓_Pegatron) <Andy_Hung at pegatroncorp.com> [151202 10:49]:

> Hi Anders,
> Thanks for your help, pls see updates below,

> > Message: 2
> > Date: Tue, 24 Nov 2015 14:25:14 +0100
> > From: Anders Darander <anders at chargestorm.se>
> > To: yocto at yoctoproject.org
> > Subject: Re: [yocto] Header files in /usr/include of rootfs
> > Message-ID: <20151124132514.GB2165 at ad.chargestorm.se>
> > Content-Type: text/plain; charset=utf-8

> > * Andy Hung(???_Pegatron) <Andy_Hung at pegatroncorp.com> [151124 11:35]:
> >	Those sub-folders contains files such as executable binaries, config files, kernel modules, .so files ...
> >	All these files are actually built from the source code of a specific WiFi driver,
> >	what I want to do is installing all pre-built binaries/files into corresponding locations in rootfs.

> >There's no way to build this using OE?...

> >Though, sure, it's should work as long as the binaries and kernel modules actually loads and runs.

> > > FILES_${PN} = ?/*?

> The kernel headers wouldn't get installed if I removed my package.

Ok, then they get pulled in if your -dev package is installed. (And if
you have kernel modules in your package, that doesn't sound too
suprising).

> I looked at the packages-split folder again and I found besides the
> -dbg folder, .so libraries are in <package-name>-dev folder, I
> searched on the Yocto site and learned that packages are split by the
> variable PACKAGES defined in bitbake.conf and it turns out ${PN}-dbg ,
> ${PN}-dev are processed before ${PN}, so I modified my bb file by
> adding FILE_${PN}-dev = "" I rebuild the rootfs and I found the kernel
> headers are not installed then.

Ok. So something needs those .so-files, and if they're pacakged in your
-dev package, it'll be pulled in.

Normally, libraries are assumed to be versioned, i.e. library.so.X.Y,
with the library.so file being a symbolic link pointing to the versioned
ones. The link is packaged in -dev and the real libraries in the main
package.

If you have non-versioned libraries, then you need to ensure that those
are installed in you main package; just as you did.

> Here are the extra packages get installed before I add FILE_${PN}-dev
> = "" to the recipe,

> eglibc-extra-nss
> libc6-dev
> libthread-db1
> linux-libc-headers-dev
> merge-files-dev

> (merge-files is the name of my package)

> I think maybe I don't understand Yocto quite well,
> What is the rule for OE to install those dev packages?
> How do I decide which packages ( dbg, dev, doc, locale...) to get installed?

What get's installed is the packages that you specify, and all of their
runtime dependencies.

Cheers,
Anders

-- 
Anders Darander, Senior System Architect
ChargeStorm AB / eStorm AB



More information about the yocto mailing list