Skip to contentSkip to conversation

RFC: enable building of out-of-tree modules

PATCH In review Darren Hart 2 participants 3 messages Mar 2, 2011 – Mar 3, 2011

lore
Share & tools
lore
#0 lore raw

cover RFC: enable building of out-of-tree modules

From: Darren Hart <[email protected]>

The following patches provide a mechanism to address [BUGID #241] through two additions to module.bbclass which build and clean the hostprogs. The second patch adds an example kernel module.

When building with the hello-world-mod, the resulting rootfs is missing all the other kernel modules (/lib/modules/KERNEL_VER/extras contains hello-world.ko, but /lib/modules/KERNEL_VER/kernel is missing). The sysroots has all the modules, but the rootfs generated by the image recipe only has the hello-world module. This is the last wrinkle to iron out, any ideas on how to address this would be appreciated.

Gary, can you try the module.bbclass with your module to see if it builds successfully?

Thanks,

Darren Hart (2):
module: build and clean hostprogs for each module
hello-world-mod: add a module for testing module.bbclass

 meta/classes/module.bbclass                        |   21 ++-
 meta/recipes-kernel/hello-world-mod/files/COPYING  |  340 ++++++++++++++++++++
 meta/recipes-kernel/hello-world-mod/files/Makefile |   14 +
 .../hello-world-mod/files/hello_world.c            |   33 ++
 .../hello-world-mod/hello-world-mod.bb             |   15 +
 5 files changed, 422 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-kernel/hello-world-mod/files/COPYING
 create mode 100644 meta/recipes-kernel/hello-world-mod/files/Makefile
 create mode 100644 meta/recipes-kernel/hello-world-mod/files/hello_world.c
 create mode 100644 meta/recipes-kernel/hello-world-mod/hello-world-mod.bb
#1 lore raw
Quoted 6 lines · Darren Hart

From: Darren Hart<[email protected]>

The following patches provide a mechanism to address [BUGID #241] through two additions to module.bbclass which build and clean the hostprogs. The second patch adds an example kernel module.

Quoted 6 lines

When building with the hello-world-mod, the resulting rootfs is missing all the other kernel modules (/lib/modules/KERNEL_VER/extras contains hello-world.ko, but /lib/modules/KERNEL_VER/kernel is missing). The sysroots has all the modules, but the rootfs generated by the image recipe only has the hello-world module. This is the last wrinkle to iron out, any ideas on how to address this would be appreciated.

CC'ing Saul and Mark hoping they may have some packaging insight into why this might be happening.

These patches are now available in my contrib/dvhart/modules branch.

I've tried with both rpm and ipk root_fs packaging and get the same result. If I include hello-world-mod in the image, the /lib/modules/KERNELVER/kernel directory isn't present in the final rootfs, for example:

BUILDING WITHOUT hello-world-mod in the image:

dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+
build  extra  kernel  modules.builtin  modules.order  source
dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+/kernel/fs
autofs4  binfmt_misc.ko  cifs  configfs  jbd2  minix  nls  ocfs2  quota  reiserfs  romfs
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+
kernel             modules.ccwmap   modules.devname      modules.isapnpmap  modules.seriomap  modules.symbols.bin
modules.alias      modules.dep      modules.ieee1394map  modules.ofmap      modules.softdep   modules.usbmap
modules.alias.bin  modules.dep.bin  modules.inputmap     modules.pcimap     modules.symbols
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+/kernel/fs/
nls
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+/kernel/fs/nls/
nls_utf8.ko

BUILDING WITH hello-world-mod in the image:

dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+
build  extra  kernel  modules.builtin  modules.order  source
dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+/extra/
hello_world.ko
dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+/kernel/fs
autofs4  binfmt_misc.ko  cifs  configfs  jbd2  minix  nls  ocfs2  quota  reiserfs  romfs
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+
extra              modules.ccwmap   modules.devname      modules.isapnpmap  modules.seriomap  modules.symbols.bin
modules.alias      modules.dep      modules.ieee1394map  modules.ofmap      modules.softdep   modules.usbmap
modules.alias.bin  modules.dep.bin  modules.inputmap     modules.pcimap     modules.symbols

Still digging, but I'm mostly just stumbling around in the dark.

--
Darren

Quoted 24 lines

Gary, can you try the module.bbclass with your module to see if it builds successfully?

Thanks,

Darren Hart (2):
module: build and clean hostprogs for each module
hello-world-mod: add a module for testing module.bbclass

  meta/classes/module.bbclass                        |   21 ++-
  meta/recipes-kernel/hello-world-mod/files/COPYING  |  340 ++++++++++++++++++++
  meta/recipes-kernel/hello-world-mod/files/Makefile |   14 +
  .../hello-world-mod/files/hello_world.c            |   33 ++
  .../hello-world-mod/hello-world-mod.bb             |   15 +
  5 files changed, 422 insertions(+), 1 deletions(-)

create mode 100644 meta/recipes-kernel/hello-world-mod/files/COPYING create mode 100644 meta/recipes-kernel/hello-world-mod/files/Makefile create mode 100644 meta/recipes-kernel/hello-world-mod/files/hello_world.c create mode 100644 meta/recipes-kernel/hello-world-mod/hello-world-mod.bb

_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky

Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
#2 lore raw
Quoted 14 lines · Darren Hart
Quoted 6 lines · Darren Hart

From: Darren Hart<[email protected]>

The following patches provide a mechanism to address [BUGID #241] through two additions to module.bbclass which build and clean the hostprogs. The second patch adds an example kernel module.

Quoted 6 lines

When building with the hello-world-mod, the resulting rootfs is missing all the other kernel modules (/lib/modules/KERNEL_VER/extras contains hello-world.ko, but /lib/modules/KERNEL_VER/kernel is missing). The sysroots has all the modules, but the rootfs generated by the image recipe only has the hello-world module. This is the last wrinkle to iron out, any ideas on how to address this would be appreciated.

Quoted 3 lines

CC'ing Saul and Mark hoping they may have some packaging insight into why this might be happening.

Darren,

I messed around with your branch tonight (after my migraine went away finally). I set in my local.conf

MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " hello-world-mod "

I tried it at first and it seemed to fail, but I cleanall'ed both hello-world-mod and task-poky-boot and that seemed to do the trick. Might have been a stale task-poky-boot was not getting rebuilt properly.
I saw both a /lib/modules/<KERNELVER>/extra and
/lib/modules/<KERNELVER>/kernel in my images.

Sau!

Quoted 67 lines

These patches are now available in my contrib/dvhart/modules branch.

I've tried with both rpm and ipk root_fs packaging and get the same result. If I include hello-world-mod in the image, the /lib/modules/KERNELVER/kernel directory isn't present in the final rootfs, for example:

BUILDING WITHOUT hello-world-mod in the image:

dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+
build  extra  kernel  modules.builtin  modules.order  source
dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+/kernel/fs
autofs4  binfmt_misc.ko  cifs  configfs  jbd2  minix  nls  ocfs2  quota  reiserfs  romfs
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+
kernel             modules.ccwmap   modules.devname      modules.isapnpmap  modules.seriomap  modules.symbols.bin
modules.alias      modules.dep      modules.ieee1394map  modules.ofmap      modules.softdep   modules.usbmap
modules.alias.bin  modules.dep.bin  modules.inputmap     modules.pcimap     modules.symbols
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+/kernel/fs/
nls
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+/kernel/fs/nls/
nls_utf8.ko

BUILDING WITH hello-world-mod in the image:

dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+
build  extra  kernel  modules.builtin  modules.order  source
dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+/extra/
hello_world.ko
dvhart@rage:build$ ls tmp/sysroots/qemux86/lib/modules/2.6.37.2-yocto-standard+/kernel/fs
autofs4  binfmt_misc.ko  cifs  configfs  jbd2  minix  nls  ocfs2  quota  reiserfs  romfs
dvhart@rage:build$ ls tmp/work/qemux86-poky-linux/poky-image-sato-1.0-r0/rootfs/lib/modules/2.6.37.2-yocto-standard+
extra              modules.ccwmap   modules.devname      modules.isapnpmap  modules.seriomap  modules.symbols.bin
modules.alias      modules.dep      modules.ieee1394map  modules.ofmap      modules.softdep   modules.usbmap
modules.alias.bin  modules.dep.bin  modules.inputmap     modules.pcimap     modules.symbols

Still digging, but I'm mostly just stumbling around in the dark.

--
Darren

Quoted 24 lines

Gary, can you try the module.bbclass with your module to see if it builds successfully?

Thanks,

Darren Hart (2):
module: build and clean hostprogs for each module
hello-world-mod: add a module for testing module.bbclass

   meta/classes/module.bbclass                        |   21 ++-
   meta/recipes-kernel/hello-world-mod/files/COPYING  |  340 ++++++++++++++++++++
   meta/recipes-kernel/hello-world-mod/files/Makefile |   14 +
   .../hello-world-mod/files/hello_world.c            |   33 ++
   .../hello-world-mod/hello-world-mod.bb             |   15 +
   5 files changed, 422 insertions(+), 1 deletions(-)

create mode 100644 meta/recipes-kernel/hello-world-mod/files/COPYING create mode 100644 meta/recipes-kernel/hello-world-mod/files/Makefile create mode 100644 meta/recipes-kernel/hello-world-mod/files/hello_world.c create mode 100644 meta/recipes-kernel/hello-world-mod/hello-world-mod.bb

_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky