[yocto] Building Out-of-Tree Modules on the BBB Target

Chris Simmonds chris at 2net.co.uk
Sun May 12 06:15:17 PDT 2019


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 at 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 at 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"


More information about the yocto mailing list