From: Denys Dmytriyenko <denys@ti.com>
To: Glenn Schmottlach <gschmottlach@gmail.com>
Cc: meta-ti@yoctoproject.org
Subject: Re: Trouble modifying defconfig for linux-ti-staging_rt recipe
Date: Mon, 20 Mar 2017 16:15:16 -0400 [thread overview]
Message-ID: <20170320201516.GD23524@edge> (raw)
In-Reply-To: <CAMS2kBE1mvJT5y=WiL1YvLY6-sdkCdZDvLMLL=i4wOqxA7QxXw@mail.gmail.com>
On Mon, Mar 20, 2017 at 02:14:01PM -0400, Glenn Schmottlach wrote:
> On Mon, Mar 20, 2017 at 11:54 AM, Denys Dmytriyenko <denys@ti.com> wrote:
> > On Mon, Mar 20, 2017 at 11:44:16AM -0400, Glenn Schmottlach wrote:
> >> I am having trouble modifying the kernel configuration for the
> >> following TI kernel recipe using the Yocto Morty environment:
> >>
> >> linux-ti-staging-rt_4.9.bb
> >>
> >> I have created my own layer and with a *.bbappend file for this recipe, e.g.
> >>
> >> linux-ti-staging-rt_4.9.bbappend
> >>
> >> It appears the TI kernel recipes are not (yet) proper "Yocto" kernel
> >> recipes in that they are not "fragment" aware.
> >
> > TI kernel recipe is not "Yocto" kernel (which is really to say WindRiver
> > format), but the fragment support got upstreamed to the mainline kernel and
> > kernel itself now supports config fragments! That is what TI kernel uses and
> > meta-ti kernel recipe supports.
>
> Thanks for that clarification. I wasn't aware of the two "flavors" of
> fragment support. It certainly would be nice if a consistent approach
> (between Yocto and the Kernel) could be adopted. I suspect this will
> be sorted out in time.
Well, not that there are 2 flavors. It's just historically many BSPs pushed
back on adopting linux-yocto/kernel-yocto.bbclass, as it was developed by an
OSV and, besides config fragments, was also doing few other things that would
not work for pure kernel developers. But everyone liked the config fragments
support, so said OSV ended up upstreaming that portion to the kernel itself:
https://github.com/torvalds/linux/blob/master/scripts/kconfig/merge_config.sh
> >> It appears I cannot do
> >> the following inside of my *.bbappend recipe:
> >>
> >> FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> >> SRC_URI += "file://eem.cfg"
> >
> > You can add any additional fragments you want to be applied by the recipe to
> > KERNEL_CONFIG_FRAGMENTS variable.
>
> This what I ultimately did . . . appended a fully qualified path to my
> fragment to the KERNEL_CONFIG_FRAGMENTS variable. As a suggestion,
> this might be something useful to include in the README for the
> meta-ti layer. I suspect others might have a similar need to modify
> the kernel configuration and once described, it (now) seems
> straightforward.
I'll look into adding some basic documentation for it...
> >> Inside of "eem.cfg" I want to set the following kernel options:
> >>
> >> CONFIG_USB_NET_CDC_EEM=m
> >> CONFIG_USB_F_EEM=m
> >> CONFIG_USB_ETH_EEM=y
> >>
> >> This has no affect. I tried creating my own defconfig based on the
> >> '.config' generated from the original recipe. I modified my *.bbappend
> >> file as follows:
> >>
> >> FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> >> SRC_URI += "file://defconfig"
> >>
> >> Again, my defconfig is not applied to the build.
> >
> > It already has file://defconfig in SRC_URI, that's how it works and gets the
> > fragments assembled.
> >
> > What's your platform? Are you sure one of the existing defconfigs are not
> > used instead?
>
> I'm building for a BeagleBoneBlack so I expect it's using the
> defconfig for that platform.
So, beaglebone.conf sets up SOC_FAMILY to use "ti33x" override, hence it uses
defconfig in the corresponding ti33x directory. And that defconfig is just a
redirect to "ti_sdk_am3x_release" entry in the map file I explain below.
That said, since you prepend to FILESEXTRAPATHS and provide your own full
defconfig, I expect it to take precedence and overwrite everything our recipe
does - so not sure what didn't work here in your case...
> >> I even tried patching kernel-source/ti_config_fragments and placing a
> >> eem.cfg in that directory hoping the configuration generation script
> >> (defconfig_builder.sh) might apply this fragment.
> >>
> >> FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> >> SRC_URI += "file://0001-eem-config.patch"
> >>
> >> Where the patch contains:
> >>
> >> Index: kernel-source/ti_config_fragments/eem.cfg
> >> ===================================================================
> >> --- /dev/null
> >> +++ kernel-source/ti_config_fragments/eem.cfg
> >> @@ -0,0 +1,4 @@
> >> +CONFIG_USB_NET_CDC_EEM=m
> >> +CONFIG_USB_F_EEM=m
> >> +CONFIG_USB_ETH_EEM=y
> >> +
> >>
> >> Unfortunately this did not work either.
> >
> > You also need to update the "map" file, which basically lists all the
> > fragments it needs to assemble for a platform. And platform's defconfig only
> > points to one of the entries in the map file.
>
> Sorry if I'm a bit dense, but could you elaborate on this "map" file.
> Where do I find it? What do I need to change? Do I need modify this
> file in addition to modifying the KERNEL_CONFIG_FRAGMENTS as you
> mentioned above?
Since our kernel developers don't do "yocto" builds directly, when working on
the kernel, they needed a standalone way to assemble the defconfig from
fragments. That's why we have this defconfig_builder.sh script and all the
fragments inside ti_config_fragments directory. And there's defconfig_map.txt
file along with them to define what and in which order has to be merged:
http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=blob;f=ti_config_fragments/defconfig_map.txt;h=1e3dbf436f3242b1239154dad734e87a08431d13;hb=refs/heads/ti-lsk-linux-4.9.y
If you use KERNEL_CONFIG_FRAGMENTS variable in the recipe to list additional
config fragments, you don't need to do anything else - that list will be
applied on top of what defconfig_map.txt defines and what defconfig_builder.sh
merges.
> Thanks for your patience (and help),
No problem. Let me know if you have more questions.
--
Denys
next prev parent reply other threads:[~2017-03-20 20:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-20 15:44 Trouble modifying defconfig for linux-ti-staging_rt recipe Glenn Schmottlach
2017-03-20 15:45 ` Florian Wickert
2017-03-20 15:54 ` Denys Dmytriyenko
2017-03-20 18:14 ` Glenn Schmottlach
2017-03-20 20:15 ` Denys Dmytriyenko [this message]
2017-03-20 20:59 ` Glenn Schmottlach
2017-03-20 21:08 ` Denys Dmytriyenko
2017-03-21 11:52 ` Glenn Schmottlach
2017-03-21 17:45 ` Denys Dmytriyenko
2017-03-22 19:41 ` Glenn Schmottlach
2017-03-22 19:50 ` Denys Dmytriyenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170320201516.GD23524@edge \
--to=denys@ti.com \
--cc=gschmottlach@gmail.com \
--cc=meta-ti@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.