On Wed, May 15, 2019 at 3:44 AM Zoran Stojsavljevic < zoran.stojsavlje...@gmail.com> wrote:
> > That's correct. That command only adds the kernel source and > > build infrastructure to the SDK, not to your target image. *You'd still* > *> need to arrange to have the kernel-devsrc package installed on the* > *> target image if you want it on the board's rootfs.* How you arrange > > to have the package installed to the image varies with the image > > (since they all don't have the same image install variables, etc). > > And here is a $1,000,000 USD question? How to do it on Poky (as > example of what you have stated in RED)? ;-) > > In other words: how to arrange it on Poky (as a Referent example)? > The core-image-kernel-dev image is how I do all my on target testing when I introduce a new reference kernel for a release. And IIRC the autobuilders are using a sato based image (Richard could confirm more easily that I could what image type the autobuilders are using for hello-world on target module tests). Bruce > > Thank you, > Zoran > _______ > > > On Wed, May 15, 2019 at 7:41 AM Bruce Ashfield <bruce.ashfi...@gmail.com> > wrote: > >> >> >> On Tue, May 14, 2019 at 1:30 PM Zoran Stojsavljevic < >> zoran.stojsavlje...@gmail.com> wrote: >> >>> Hello Chris, Bruce, >>> >>> I have some additional data to share with you both, since I have tried >>> something. And here is my take on the things! >>> >>> > 1. Build using a bb recipe. >>> > Take a look at meta-skeleton/recipes-kernel/hello-mod for an example. >>> > You just need to add meta-skeleton to your bblayers.conf and then >>> > bitbake hello-mod >>> >>> I looked into this example, and, yes, it is classic kernel module >>> definition out of the tree. With some outdated data, all cool, the >>> YOCTO designer should take care himself to fix these data, if using >>> this stuff. >>> >>> But this is NOT mandatory, since I can add out of the tree module NOT >>> actually using built-in module. I just use .../tmp/deploy/images/bbb/* >>> generated stuff, since I have automated scripts which are bringing all >>> these on my BBB target. Then I tftp my source code module to the >>> target. >>> >>> > 2. Build from the SDK: >>> > First, add the kernel source to the SDK by adding this to >>> conf/local.conf >>> > TOOLCHAIN_TARGET_TASK_append = " kernel-devsrc" >>> >>> YES, this is THE command which should generate >>> /usr/src/kernel(s)/`uname -r` or similar... But adding it to >>> local.conf and after deleting kernel, then regenerating bitbake -k >>> core-image-minimal does not bring this path into the rootfs image!? >>> >> >> That's correct. That command only adds the kernel source and build >> infrastructure to the SDK, not to your target image. You'd still need to >> arrange to have the kernel-devsrc package installed on the target image if >> you want it on the board's rootfs. How you arrange to have the package >> installed to the image varies with the image (since they all don't have the >> same image install variables, etc). >> >> >> >>> >>> I did it actually using meta-bbb, and using poky referent distro as >>> two additional layers to the more complex bbb image! >>> https://github.com/jumpnow/meta-bbb.git >>> >>> The (KAS - you can figure out out of it local.conf) script I am using >>> to build such a BBB image is here: >>> >>> https://github.com/ZoranStojsavljevic/bbb-yocto/blob/master/bbb-releases/bbb-warrior/kas-bbb-warrior.yml >>> >>> I did not try it with BBB reference poky only! Maybe I should try it >>> as only referent poky? What do you think? >>> >>> Does in this case is SDK build really mandatory??? Should NOT be! >>> >>> >> You only do the SDK steps if you want to support building out of tree >> modules in an SDK install. So it is not mandatory for on target module >> builds. >> >> Bruce >> >> >> >>> > Once the SDK is installed, generate the kernel headers: >>> > sudo -i >>> > . /opt/poky/2.6.2/environment-setup-cortexa8hf-neon-poky-linux-gnueabi >>> > cd /opt/poky/2.6.2/sysroots/cortexa8hf-neon-poky-linux-gnueabi >>> > cd /usr/src/kernel >>> > make oldconfig scripts >>> > exit >>> >>> This is in nutshell the same what I did (a bit different) for Embedded >>> Debian. This is already on the target BBB, NOT while building YOCTO >>> BBB image! >>> >>> > Finally, build your module using a Makefile like this >>> > obj-m := hello-mod.o >>> > all: >>> > make -C $(SDKTARGETSYSROOT)/usr/src/kernel M=$(shell pwd) >>> >>> As said before: bringing my own module into the target BBB (I have my >>> own examples, and I build them on the target with the almost the same >>> Makefiles) >>> >>> Zoran >>> _______ >>> >>> On Sun, May 12, 2019 at 3:15 PM Chris Simmonds <ch...@2net.co.uk> wrote: >>> > >>> > Hi Zoran, >>> > >>> > There are two ways to do this >>> > >>> > 1. Build using a bb recipe. >>> > Take a look at meta-skeleton/recipes-kernel/hello-mod for an example. >>> > You just need to add meta-skeleton to your bblaysers.conf and then >>> > bitbake hello-mod >>> > >>> > >>> > 2. Build from the SDK: >>> > First, add the kernel source to the SDK by adding this to >>> conf/local/conf >>> > TOOLCHAIN_TARGET_TASK_append = " kernel-devsrc" >>> > >>> > Then build the SDK >>> > bitbake -c populate_sdk [your image recipe] >>> > >>> > Once the SDK is installed, generate the kernel headers: >>> > sudo -i >>> > . >>> /opt/poky/2.6.2/environment-setup-cortexa8hf-neon-poky-linux-gnueabi >>> > cd /opt/poky/2.6.2/sysroots/cortexa8hf-neon-poky-linux-gnueabi >>> > cd /usr/src/kernel >>> > make oldconfig scripts >>> > exit >>> > >>> > Finally, build your module using a Makefile like this >>> > >>> > obj-m := hello-mod.o >>> > all: >>> > make -C $(SDKTARGETSYSROOT)/usr/src/kernel M=$(shell pwd) >>> > >>> > >>> > HTH, >>> > Chris >>> > >>> > On 12/05/2019 11:53, Zoran Stojsavljevic wrote: >>> > > Hello to the YOCTO community, >>> > > >>> > > I am using (to build the target for Beagle Bone Black) the following >>> script: >>> > > https://github.com/ZoranStojsavljevic/bbb-yocto >>> > > >>> https://github.com/ZoranStojsavljevic/bbb-yocto/blob/master/bbb-yocto.sh >>> > > >>> > > The latest kernel I am using from the following repo: >>> > > https://github.com/jumpnow/meta-bbb >>> > > >>> > > Is kernel 5.0.14 . >>> > > >>> > > Here is the snippet of the boot traces: >>> > > Starting kernel ... >>> > > >>> > > [ 0.000000] Booting Linux on physical CPU 0x0 >>> > > [ 0.000000] Linux version 5.0.14-jumpnow (oe-user@oe-host) (gcc >>> > > version 8.3.0 (GCC)) #1 Fri May 10 13:12:33 UTC 2019 >>> > > [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), >>> cr=10c5387d >>> > > [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing >>> > > instruction cache >>> > > [ 0.000000] OF: fdt: Machine model: TI AM335x BeagleBone Black >>> > > [ 0.000000] Memory policy: Data cache writeback >>> > > [ 0.000000] cma: Reserved 16 MiB at 0x9f000000 >>> > > [ 0.000000] CPU: All CPU(s) started in SVC mode. >>> > > [ 0.000000] AM335X ES2.1 (sgx neon) >>> > > [ 0.000000] random: get_random_bytes called from >>> > > start_kernel+0xa4/0x460 with crng_init=0 >>> > > [ 0.000000] Built 1 zonelists, mobility grouping on. Total >>> pages: 130048 >>> > > [ 0.000000] Kernel command line: console=ttyO0,115200n8 >>> > > root=/dev/ram0 ip=dhcp >>> > > >>> > > According to the documentation, the following: >>> > > 2.10.1. Building Out-of-Tree Modules on the Target >>> > > https://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html >>> > > >>> > > I tried to find /usr/src/kernels/5.0.14... Directory, since I see >>> > > from the build that kernel-dev and kernel-devsrc are included: >>> > > [user@fedora29-ssd bbb-yocto]$ bitbake -s | grep kernel >>> > > core-image-kernel-dev :1.0-r0 >>> > > kernel-devsrc :1.0-r0 >>> > > kernel-selftest :1.0-r0 >>> > > >>> > > THE PROBLEM: But I could not find ob BBB target /usr/src/kernels >>> > > directory at all!? >>> > > >>> > > Two questions here? >>> > > [1] Do you have any advice on this problem (what I am missing here)? >>> > > [2] Alternative to [1]: how I can use cross compiler from >>> > > .../build/tmp to build Out-of-Tree Module for the BBB target on the >>> > > host? >>> > > >>> > > Thank you, >>> > > Zoran >>> > > _______ >>> > > >>> > >>> > >>> > -- >>> > Chris Simmonds, trainer and consultant at 2net >>> > http://www.2net.co.uk >>> > Author of "Mastering Embedded Linux Programming" >>> >> >> >> -- >> - Thou shalt not follow the NULL pointer, for chaos and madness await >> thee at its end >> - "Use the force Harry" - Gandalf, Star Trek II >> >> -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto