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 \
"
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.