Sunday, July 10, 2016

MPTCP, Raspberrry PI and Yocto - UPDATED

The goal of this post is to describe how to create a Yocto image for a Raspberry PI3 with MPTCP support

The starting point for this tutorial is my post RaspberryPI3 and Yocto.

To build Yocto with MPTCP support you need:

  • RPI layer from https://github.com/agherzan/meta-raspberrypi/ (master branch)
  • My mptcp layer from https://github.com/andig75/meta-mytechpg

Here you can find the patch applied to RPI layer to manage kernel extension with bbappend. It is not included in pyro branch of RPI layer:

https://github.com/agherzan/meta-raspberrypi/issues/14

Download the new layers

You can download the new layers with:
git clone https://github.com/agherzan/meta-raspberrypi.git
git clone https://github.com/andig75/meta-mytechpg.git

Add the new layers

To add the new layers, you have to modify the file "conf/bblayers.conf", as described in this example:

BBLAYERS ?= " \
  /personal/yocto/poky-pyro-17.0.1/meta \
  /personal/yocto/poky-pyro-17.0.1/meta-poky \
  /personal/yocto/poky-pyro-17.0.1/meta-yocto-bsp \
  /personal/yocto/poky-pyro-17.0.1/meta-raspberrypi \
  /personal/yocto/poky-pyro-17.0.1/meta-openembedded/meta-oe \
  /personal/yocto/poky-pyro-17.0.1/meta-mytechpg/meta-mtpg-mptcp \

  "

Build it and test it!

Then, you can create the new image and test it, as described in the RPI3 tutorial.

To build a more complete environment, I suggest you can to use this command:
bitbake core-image-full-cmdline

MPTCP and yocto

You can find the kernel recipes in meta-mtpg-mptcp/recipes-kernel/linux.
The kernel release is defined in RPI recipe and the file linux-raspberrypi_4.9.bbappend  simply adds kernel patch and new configs.
To update MPTCP (or change its configuration), it is sufficient to modify 6010_mptcp-4.9.44.patch or mptcp.cfg.