Bug 11585 - scripts/yocto-kernel feature add does not seem to work
Summary: scripts/yocto-kernel feature add does not seem to work
Status: RESOLVED NOTABUG
Alias: None
Product: Meta-yocto
Classification: Build System, Metadata & Runtime
Component: meta-yocto (show other bugs)
Version: 2.3
Hardware: x86 Multiple
: Medium normal
Target Milestone: 2.4 M4
Assignee: Leonardo Sandoval Gonzalez
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2017-05-27 17:37 UTC by Robert Berger
Modified: 2017-09-26 16:29 UTC (History)
5 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments
One of the BSPs where I see the problems - hacked to include stuff manually (52.99 KB, application/gzip)
2017-06-01 11:44 UTC, Robert Berger
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Berger 2017-05-27 17:37:15 UTC
That's what I do with an in-tree hello world kernel module:

# add modules support
yocto-kernel config add <bsp-name> CONFIG_MODULES=y

# add in-tree patch + config
yocto-kernel feature create <bsp-name> hello-in-tree.scc "In tree hello world" all CONFIG_YOCTO_TESTMOD=m <absolute patch to yocto-testmod.patch>

shouldn't someting like:
yocto-kernel feature add <bsp-name> <absolute patch to .scc file> 

work to add the feature?

In order to add the feature I have to do it manually:

vim ../${TARGET_BOARD}-bsp/recipes-kernel/linux/linux-yocto-custom/${TARGET_BOARD}-bsp.scc

where I add:
include features/hello-in-tree.scc

in order to check if it made it into the kernel config:
bitbake linux-yocto-custom -c menuconfig
Comment 1 Choong Yin Thong 2017-06-01 11:15:52 UTC
Hi,
Could you provide the output from both command below:-
yocto-kernel feature list <bsp-name>
yocto-kernel features list <bsp-name>
Comment 2 Robert Berger 2017-06-01 11:41:17 UTC
Hi,

bitbake-layers show-layers
NOTE: Started PRServer with DBfile: /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 44849, PID: 14261
layer                 path                                      priority
==========================================================================
meta                  /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/meta  5
meta-poky             /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/meta-poky  5
meta-yocto-bsp        /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/meta-yocto-bsp  5
am335x-phytec-wega-bsp  /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/am335x-phytec-wega-bsp  6
NOTE: Started PRServer with DBfile: /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 44849, PID: 14261
NOTE: Terminating PRServer...

----------------------

tree ../am335x-phytec-wega-bsp/
../am335x-phytec-wega-bsp/
├── binary
├── conf
│   ├── layer.conf
│   └── machine
│       └── am335x-phytec-wega-bsp.conf
├── COPYING.MIT
├── README
├── README.sources
├── recipes-bsp
│   └── formfactor
│       ├── formfactor
│       │   └── am335x-phytec-wega-bsp
│       │       └── machconfig
│       └── formfactor_0.0.bbappend
├── recipes-graphics
│   └── xorg-xserver
│       └── xserver-xf86-config
│           └── am335x-phytec-wega-bsp
└── recipes-kernel
    ├── hello-mod
    │   ├── files
    │   │   ├── COPYING
    │   │   ├── hello.c
    │   │   └── Makefile
    │   └── hello-mod_0.1.bb
    ├── linux
    │   ├── linux-yocto-custom
    │   │   ├── am335x-phytec-wega-bsp.cfg
    │   │   ├── am335x-phytec-wega-bsp.scc
    │   │   ├── am335x-phytec-wega-bsp-user-config.cfg
    │   │   ├── am335x-phytec-wega-bsp-user-patches.scc
    │   │   ├── am335x-wega-rdk-training.dts
    │   │   ├── cfg
    │   │   │   ├── ikconfig.cfg
    │   │   │   └── ikconfig.scc
    │   │   ├── defconfig
    │   │   ├── dummy.dts
    │   │   └── features
    │   │       ├── hello-in-tree.cfg
    │   │       ├── hello-in-tree.scc
    │   │       └── yocto-testmod.patch
    │   └── linux-yocto-custom.bb
    └── linux-libc-headers
        └── linux-libc-headers_4.9.bb

19 directories, 25 files

----------------

yocto-kernel feature list am335x-phytec-wega-bsp
Traceback (most recent call last):
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 394, in <module>
    ret = main()
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 389, in main
    invoke_subcommand(args, parser, yocto_kernel_help_usage, subcommands)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/help.py", line 73, in invoke_subcommand
    subcommands.get(args[0], subcommand_error)[0](args[1:], usage)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 182, in yocto_kernel_feature_list_subcommand
    yocto_kernel_feature_list(scripts_path, args[0])
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 596, in yocto_kernel_feature_list
    features = read_features(scripts_path, machine)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 567, in read_features
    lines = f.readlines()
AttributeError: 'NoneType' object has no attribute 'readlines'

-------

yocto-kernel features list am335x-phytec-wega-bsp
Traceback (most recent call last):
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 394, in <module>
    ret = main()
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 389, in main
    invoke_subcommand(args, parser, yocto_kernel_help_usage, subcommands)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/help.py", line 73, in invoke_subcommand
    subcommands.get(args[0], subcommand_error)[0](args[1:], usage)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 243, in yocto_kernel_available_features_list_subcommand
    yocto_kernel_available_features_list(scripts_path, args[0])
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 733, in yocto_kernel_available_features_list
    feature_url = find_feature_url(giturl)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 664, in find_feature_url
    if git_url.startswith("git://"):
AttributeError: 'NoneType' object has no attribute 'startswith'

-----

yocto-kernel feature add am335x-phytec-wega-bsp ../am335x-phytec-wega-bsp/recipes-kernel/linux/linux-yocto-custom/cfg/ikconfig.scc 
Traceback (most recent call last):
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 394, in <module>
    ret = main()
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 389, in main
    invoke_subcommand(args, parser, yocto_kernel_help_usage, subcommands)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/help.py", line 73, in invoke_subcommand
    subcommands.get(args[0], subcommand_error)[0](args[1:], usage)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 202, in yocto_kernel_feature_add_subcommand
    yocto_kernel_feature_add(scripts_path, machine, args)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 648, in yocto_kernel_feature_add
    cur_items = read_features(scripts_path, machine)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 567, in read_features
    lines = f.readlines()
AttributeError: 'NoneType' object has no attribute 'readlines'

-----

yocto-kernel feature add am335x-phytec-wega-bsp ../am335x-phytec-wega-bsp/recipes-kernel/linux/linux-yocto-custom/features/hello-in-tree.scc 
Traceback (most recent call last):
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 394, in <module>
    ret = main()
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 389, in main
    invoke_subcommand(args, parser, yocto_kernel_help_usage, subcommands)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/help.py", line 73, in invoke_subcommand
    subcommands.get(args[0], subcommand_error)[0](args[1:], usage)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 202, in yocto_kernel_feature_add_subcommand
    yocto_kernel_feature_add(scripts_path, machine, args)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 648, in yocto_kernel_feature_add
    cur_items = read_features(scripts_path, machine)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 567, in read_features
    lines = f.readlines()
AttributeError: 'NoneType' object has no attribute 'readlines'
Comment 3 Robert Berger 2017-06-01 11:44:24 UTC
Created attachment 3785 [details]
One of the BSPs where I see the problems - hacked to include stuff manually

Maybe this helps to find the problem.
Comment 4 Choong Yin Thong 2017-06-06 11:47:20 UTC
About the yocto-kernel feature add and feature create. It's seem rational to 1st create the feature continue with adding the feature.

I successful add the feature into <bsp_name>-user-feature.scc (this file default will be created from yocto-bsp command) with command:-
yocto-kernel feature add <bsp-name> <absolute path for your created .scc> 

content of <bsp-name>-user-feature.scc as below:-
include /workdir/bug_11585/meta-<bsp-name>/recipes-kernel/linux/files/features/hello-in-tree.scc

Base on the attachment i think your recipe-kernel/linux/linux-yocto-custom/ is missing <bsp-name>-user-feature.scc 

If you create yocto-bsp with custom kernel XXX-user-feature.scc file won't be created. However, if you create with default kernel (eg: 4.10) XXX-user-feature.scc file will be created. There should be something need to do on yocto-bsp script.
Comment 5 Robert Berger 2017-07-12 19:41:22 UTC
Why do you think the problem is the yocto-bsp script?

I think we should either add something to the doc saying that yocto-kernel does not work on custom kernels, but only on yocto kernels, or fix the yocto-kernel script.
Comment 6 Choong Yin Thong 2017-07-13 01:39:31 UTC
(In reply to comment #5)
> Why do you think the problem is the yocto-bsp script?
> 
> I think we should either add something to the doc saying that yocto-kernel
> does not work on custom kernels, but only on yocto kernels, or fix the
> yocto-kernel script.

I following the process base on mega manual.
section =- "10.7.3. Managing Kernel Patches and Config Items with yocto-kernel"

Base on the instruction there, for any new layer creation is good to go thru yocto-bsp and continue with yocto-kernel for amendment.

When i go thru yocto-bsp script to create custom linux kernel. The script missing out a XXX-feature.scc file creation inside the layer. Therefore, i just update the script to create the file in yocto-bsp script. Continue with yocto-kernel add and it able to add new feature into XXX-feature.scc

Fix already been review and upstream to next releases or you can grep from poky master/LATEST
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=5b23e19841686aaa549f7b4ee90447ed604d9f3d
Comment 7 Leonardo Sandoval Gonzalez 2017-08-03 18:46:21 UTC
I am not too familiar with the yocto-kernel script, but what I can see is that the problem is coming from the yocto-kernel feature add plugin. As Robert mentioned, once the feature is created, the following new folder is present on the bsp layer

recipes-kernel/linux/linux-yocto-custom/features/

the latter needs to be included inside in one of the scc files which are referenced by the SRC_URI variable. I believe, the best place is the <bsp>-user-features.scc and in there, the following needs to be appended:

include features/<introduced feature name>.scc

So, the module scripts/lib/bsp/kernel, function yocto_kernel_feature_create is missing that logic.
Comment 8 Leonardo Sandoval Gonzalez 2017-08-03 18:57:25 UTC
(In reply to comment #7)
> I am not too familiar with the yocto-kernel script, but what I can see is
> that the problem is coming from the yocto-kernel feature add plugin. As
> Robert mentioned, once the feature is created, the following new folder is
> present on the bsp layer
> 
> recipes-kernel/linux/linux-yocto-custom/features/
> 
> the latter needs to be included inside in one of the scc files which are
> referenced by the SRC_URI variable. I believe, the best place is the
> <bsp>-user-features.scc and in there, the following needs to be appended:
> 
> include features/<introduced feature name>.scc
> 
> So, the module scripts/lib/bsp/kernel, function yocto_kernel_feature_create
> is missing that logic.

What I just mentioned is missing, it is exactly what **yocto-kernel feature add** plugin does. 

Resuming, in order to create and use a feature, it is a two-step task, i.e yocto-kernel feature create && yocto-kernel feature add.

Robert, do you mind testing it on your local bsp?
Comment 9 Robert Berger 2017-08-04 09:32:44 UTC
Hi,

I am a bit confused what I should test and will be on holidays starting from tomorrow;)

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=5b23e19841686aaa549f7b4ee90447ed604d9f3d

will not work, since, as I reported here: 
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11586

I need to hack the stuff a bit more like here:

https://github.com/RobertBerger/poky/blob/34a3e5d640a730ee1594b536e56086890089c0fa/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb#L45

Since 

             file://{{=machine}}-user-config.cfg \
             file://{{=machine}}-user-patches.scc \

should go away, I guess I could probably cook up something like this:

diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb
index fda955b..3ba4226 100644
--- a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb
+++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb


@@ -42,6 +42,7 @@ SRC_URI += "file://{{=machine}}.scc \
             file://{{=machine}}.cfg \
+            file://{{=machine}}-user-features.scc \
            "
 
 {{ if kernel_choice == "custom" and custom_kernel_need_kbranch == "y" and custom_kernel_kbranch and custom_kernel_kbranch != "master": }}
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom/machine-user-features.scc b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom/machine-user-features.scc
new file mode 100644
index 0000000..582759e
--- /dev/null
+++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom/machine-user-features.scc
@@ -0,0 +1 @@
+# yocto-bsp-filename {{=machine}}-user-features.scc
Comment 10 Stephen K Jolley 2017-08-04 15:37:43 UTC
Leo, Does Robert's comments answer your question?
Comment 11 Leonardo Sandoval Gonzalez 2017-08-04 15:52:07 UTC
(In reply to comment #10)
> Leo, Does Robert's comments answer your question?

He still needs to try my suggestion. In my opinion, this is an invalid bug but lets wait for his inputs.
Comment 12 Robert Berger 2017-08-04 18:02:43 UTC
I applied, as suggested, this patch over my (custom) stuff:

git diff HEAD^
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb
index c139fd2..3e367c6 100644
--- a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb
+++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom.bb
@@ -44,6 +44,7 @@ SRC_URI += "file://defconfig"
 
 SRC_URI += "file://{{=machine}}.scc \
             file://{{=machine}}.cfg \
+            file://{{=machine}}-user-features.scc \
            "
 # {{=machine}}-user-config.cfg and
 # {{=machine}}-user-patches.scc are
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom/machine-user-features.scc b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom/machine-user-features.scc
new file mode 100644
index 0000000..582759e
--- /dev/null
+++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/linux-yocto-custom/machine-user-features.scc
@@ -0,0 +1 @@
+# yocto-bsp-filename {{=machine}}-user-features.scc

--------

1) I re-did my custom BSP using the bsp-tool

Now things look like this:

cd /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/imx6q-phytec-mira-rdk-nand-bsp/recipes-kernel⟫ tree
.
├── linux
│   ├── linux-yocto-custom
│   │   ├── 0002-phytec-mira-imx6qdl-phytec-peb-wlbt-01.dtsi.patch
│   │   ├── 0003-phytec-mira-imx6qdl-phytec-mira-peb-av-02.dtsi.patch
│   │   ├── 0004-phytec-mira-imx6qdl-phytec-mira-peb-eval-01.dtsi.patch
│   │   ├── 0005-phytec-mira-imx6qdl-phytec-mira.dtsi.patch
│   │   ├── 0006-phytec-mira-imx6qdl-phytec-phycore-som.dtsi.patch
│   │   ├── 0007-phytec-mira-dts-Makefile.patch
│   │   ├── 0008-phytec-mira-imx6q-phytec-mira-rdk-nand.dts.patch
│   │   ├── defconfig
│   │   ├── imx6q-phytec-mira-rdk-nand-bsp.cfg
│   │   ├── imx6q-phytec-mira-rdk-nand-bsp.scc
│   │   ├── imx6q-phytec-mira-rdk-nand-bsp-user-config.cfg
│   │   ├── imx6q-phytec-mira-rdk-nand-bsp-user-features.scc
│   │   └── imx6q-phytec-mira-rdk-nand-bsp-user-patches.scc
│   └── linux-yocto-custom.bb
└── linux-libc-headers
    └── linux-libc-headers_4.9.bb

Meaning we do have an imx6q-phytec-mira-rdk-nand-bsp-user-features.scc file and cat linux/linux-yocto-custom.bb looks like this, as expected:

inherit kernel
require recipes-kernel/linux/linux-yocto.inc

SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;protocol=git;bareclone=1;branch=${KBRANCH}"


# SRC_URI += "file://defconfig"

SRC_URI += "file://imx6q-phytec-mira-rdk-nand-bsp.scc \
            file://imx6q-phytec-mira-rdk-nand-bsp.cfg \
            file://imx6q-phytec-mira-rdk-nand-bsp-user-features.scc \
           "
# imx6q-phytec-mira-rdk-nand-bsp-user-config.cfg and
# imx6q-phytec-mira-rdk-nand-bsp-user-patches.scc are
# included by imx6q-phytec-mira-rdk-nand-bsp.scc
# removed from SRC_URI to avoid double inclusion
# and like this avoiding applying same patch twice

KBRANCH = "linux-4.9.y"

LINUX_VERSION ?= "4.9.27"
LINUX_VERSION_EXTENSION ?= "-custom"   

SRCREV="89f3b8d5f264d5dab9818c6667c71e3cc55b13f5"

PV = "${LINUX_VERSION}+git${SRCPV}"

# Let's try an in-tree defconfig:
KERNEL_DEFCONFIG_imx6q-phytec-mira-rdk-nand-bsp ?= "multi_v7_defconfig"
KBUILD_DEFCONFIG_imx6q-phytec-mira-rdk-nand-bsp ?= "multi_v7_defconfig"
KCONFIG_MODE="--alldefconfig"

COMPATIBLE_MACHINE_imx6q-phytec-mira-rdk-nand-bsp = "imx6q-phytec-mira-rdk-nand-bsp"

1.1) bitbake linux-yocto-custom

---- 

2.1) 

yocto-kernel config add imx6q-phytec-mira-rdk-nand-bsp CONFIG_MODULES=y
Added item:
        CONFIG_MODULES=y

2.2)
yocto-kernel feature create imx6q-phytec-mira-rdk-nand-bsp hello-in-tree.scc 'In tree hello world' all CONFIG_YOCTO_TESTMOD=m /tmp/yocto-autobuilder/yocto-3.0/yocto-multi-v7-ml/yocto-for-trainer/recipes/57_kmod-in-tree/patch/yocto-testmod.patch
Added feature:
        features/hello-in-tree.scc

It was actually created under features, but imx6q-phytec-mira-rdk-nand-bsp-user-features.scc is empty

.
├── linux
│   ├── linux-yocto-custom
│   │   ├── features
│   │   │   ├── hello-in-tree.cfg
│   │   │   ├── hello-in-tree.scc
│   │   │   └── yocto-testmod.patch
│   │   ├── imx6q-phytec-mira-rdk-nand-bsp-user-features.scc


2.3)
yocto-kernel feature add imx6q-phytec-mira-rdk-nand-bsp /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/imx6q-phytec-mira-rdk-nand-bsp/recipes-kernel/linux/linux-yocto-custom/features/hello-in-tree.scc
Added features:
        /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/imx6q-phytec-mira-rdk-nand-bsp/recipes-kernel/linux/linux-yocto-custom/features/hello-in-tree.scc

now user-features was filled:
cat imx6q-phytec-mira-rdk-nand-bsp-user-features.scc
include /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/imx6q-phytec-mira-rdk-nand-bsp/recipes-kernel/linux/linux-yocto-custom/features/hello-in-tree.scc

2.4)
yocto-kernel feature list imx6q-phytec-mira-rdk-nand-bsp
The current set of machine-specific features for imx6q-phytec-mira-rdk-nand-bsp is:
        1) /tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/imx6q-phytec-mira-rdk-nand-bsp/recipes-kernel/linux/linux-yocto-custom/features/hello-in-tree.scc

2.5) I guess here is still something missing, or I'm doing something wrong.
yocto-kernel features list imx6q-phytec-mira-rdk-nand-bsp 
Traceback (most recent call last):
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 394, in <module>
    ret = main()
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 389, in main
    invoke_subcommand(args, parser, yocto_kernel_help_usage, subcommands)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/help.py", line 73, in invoke_subcommand
    subcommands.get(args[0], subcommand_error)[0](args[1:], usage)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/yocto-kernel", line 243, in yocto_kernel_available_features_list_subcommand
    yocto_kernel_available_features_list(scripts_path, args[0])
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 733, in yocto_kernel_available_features_list
    feature_url = find_feature_url(giturl)
  File "/tmp/yocto-autobuilder/yocto-autobuilder/yocto-worker/poky-custom-pyro-multi-v7-core-image-minimal/scripts/lib/bsp/kernel.py", line 664, in find_feature_url
    if git_url.startswith("git://"):
AttributeError: 'NoneType' object has no attribute 'startswith'

2.6) 

# check if YOCTO_TESTMOD=m made it into the kernel config
bitbake linux-yocto-custom -c menuconfig

and it does.

So this looks much better to me.

2.7)

bitbake linux-yocto-custom
Comment 13 Leonardo Sandoval Gonzalez 2017-09-26 16:29:59 UTC
resolved as confirmed by Robert.