[yocto] Build external module against Yocto kernel
Christian Ege
chege at cybertux.de
Tue Jan 22 04:34:55 PST 2013
Hi,
I am not sure if this is the problem you are struggling with.
I am wondering why class module.bbclass behaves completely different
than kernel.bbclacc
> copy the "hello-mod_0.1.bb" and "files" folder into my taget layer
> "meta-intel/meta-jasperforest/recipe-kernel", then add
> "MACHINE_EXTRA_
> RDEPENDS += "kernel-module-hello" in the conf/local.conf
> after build and boot, there's no "hello.ko" found in the binary
> image
> also there's no hello.ko in the "tmp/work/..." folder
If you hello-mod_0.1.bb inherits module class there is no mechanism
to create the kernel-module package. This only applies to the
kernel.bbclass
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/module.bbclass
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/module-base.bbclass
Have a look at kernel.bbclass instead shows some pathon code which
handles the module package creation:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/kernel.bbclass#n301
I've fixed this in my layer by stealing the code from kernel.bbclass
https://github.com/project-magpie/meta-stlinux/blob/master/recipes-bsp/tdt-driver/tdt-driver.inc
With this you can also use the following extends with your module:
module_autoload_aotom = "aotom"
and
module_conf_stmfb = "options stmfb
display0=1280x720-32 at 50:8m:pal:yuv:yuv"
If you are only inherting from module this have not worked for me.
The next part I had to fight against was the fact that in
core-image-minimal the package managment information are stripped and
thus no pre hooks are executet. So the module is installed in the image
but not loaded on boot-up unless you call update-modules by hand.
ROOTFS_POSTPROCESS_COMMAND += "remove_packaging_data_files ; "
To prevent this I've defined an image without the stripping:
https://github.com/project-magpie/meta-stlinux/blob/master/recipes-core/images/core-image-base.bb
I hope this clarify things a little bit
regards,
Christian
>
> Eddy
>
> All,
>
> There is a new YP manual under development. It is a development
> manual
> for Linux kernels in the YP. Darren Hart is the original author of
> the
> manual as you probably know. It is still being worked on but it is in
> HTML form and now part of the yocto-docs/master branch. It is
> published at
> http://www.yoctoproject.org/docs/1.4/kernel-dev/kernel-dev.html [1].
> Feel free to access it and comment.
>
> Thanks,
>
> Scott
>
> Scott Rifenbark
>
> Intel Corporation
>
> Yocto Project Documentation
>
> 503.712.2702
>
> 503.341.0418 (cell)
>
> _______________________________________________
>
> yocto mailing list
>
> yocto at yoctoproject.org [2]
>
> https://lists.yoctoproject.org/listinfo/yocto [3]
>
>
>
> Links:
> ------
> [1] http://www.yoctoproject.org/docs/1.4/kernel-dev/kernel-dev.html
> [2] mailto:yocto at yoctoproject.org
> [3] https://lists.yoctoproject.org/listinfo/yocto
> Hi,
>
> I am reposting this to the discussion list and copying Darren Hart.
>
> Scott
>
> FROM: Eddy Lai GMail [mailto:eddy.lai.tw at gmail.com]
> SENT: Monday, January 21, 2013 3:36 PM
> TO: Rifenbark, Scott M
> SUBJECT: Re: [yocto] YP Linux Kernel Development Manual
>
> hi
>
> hi, I follow the kernel development manual "2.5. Incorporating
> Out-of-Tree Modules",
> copy the "hello-mod_0.1.bb" and "files" folder into my taget layer
> "meta-intel/meta-jasperforest/recipe-kernel", then add
> "MACHINE_EXTRA_
> RDEPENDS += "kernel-module-hello" in the conf/local.conf
> after build and boot, there's no "hello.ko" found in the binary
> image
> also there's no hello.ko in the "tmp/work/..." folder
>
> Eddy
>
> All,
>
> There is a new YP manual under development. It is a development
> manual
> for Linux kernels in the YP. Darren Hart is the original author of
> the
> manual as you probably know. It is still being worked on but it is in
> HTML form and now part of the yocto-docs/master branch. It is
> published at
> http://www.yoctoproject.org/docs/1.4/kernel-dev/kernel-dev.html [1].
> Feel free to access it and comment.
>
> Thanks,
>
> Scott
>
> Scott Rifenbark
>
> Intel Corporation
>
> Yocto Project Documentation
>
> 503.712.2702
>
> 503.341.0418 (cell)
>
> _______________________________________________
>
> yocto mailing list
>
> yocto at yoctoproject.org [2]
>
> https://lists.yoctoproject.org/listinfo/yocto [3]
>
>
>
> Links:
> ------
> [1] http://www.yoctoproject.org/docs/1.4/kernel-dev/kernel-dev.html
> [2] mailto:yocto at yoctoproject.org
> [3] https://lists.yoctoproject.org/listinfo/yocto
> On Jan 16, 2013, at 11:11 AM, Darren Hart <dvhart at linux.intel.com>
> wrote:
>> On 01/15/2013 10:38 AM, Bruce Ashfield wrote:
>>>
>>> I finally found the entries that I was recalling earlier. They are:
>>>
>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=241
>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=1614
>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=2968
>>>
>>> 1614 and 2968 are the most interesting for what you are asking.
>>>
>>> As you can see the net result of those bugs is that you can get the
>>> right parts of the kernel tree in SDK packages, since they include
>>> dev packages, and with what is currently in kernel-dev .. it should
>>> be enough to build against in the SDK (perhaps with just the
>>> LDFLAGS
>>> tweaks mentioned in the other thread). The sources should be part
>>> of the sysroot, and hence available when that is packaged for use
>>> outside of bitbake/yocto.
>>>
>>> If you aren't seeing kernel-dev in the SDK image, it might be that
>>> TOOLCHAIN_TARGET_TASK doesn't have kernel-dev by default, or
>>> something
>>> else is different in the SDK that is being generated in your
>>> testing.
>>>
>>> I'm only speculating about what might be missing, since I'm not
>>> 100%
>>> familiar with the SDK, but perhaps Jessica or others can chime in
>>> if
>>> I've led you astray :)
>>>
>>
>> Thanks for keeping this going Bruce. Yes, kernel-dev is the package
>> for
>> the target. The only trick here is that we currently purge the host
>> binaries which means that you need to build scripts on the target
>> prior
>> to building the module.
>>
>> I think this might be missing from the new kernel manual as it isn't
>> a
>> particularly common use-case, and is rather orthogonal to the way
>> the
>> tooling has been designed (not to say it can't be done).
>>
>> Patrick, please keep us posted if this continues to not work for
>> you. I
>> will open a bug to include a section about this in the kernel
>> development manual.
>
> I got sick and was also diverted to other things, so I apologize for
> not responding sooner. I am very appreciative of every CPU cycle you
> have all spent considering this issue -- I wouldn't want you to
> imagine otherwise.
>
> I will gladly have a look at those issues and absorb the information
> you've offered. I will also let you all know if it works for me.
>
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
More information about the yocto
mailing list