Last active
January 10, 2017 20:15
-
-
Save Speedy1991/8917de138b00705a9231c1e1c51608d0 to your computer and use it in GitHub Desktop.
Set up Raspberrypi3 with MPTCP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
References: | |
[1] https://www.raspberrypi.org/documentation/linux/kernel/building.md | |
[2] https://www.raspberrypi.org/downloads/raspbian/ | |
[3] https://www.raspberrypi.org/documentation/linux/kernel/patching.md | |
[4] https://wiki.ubuntuusers.de/Kernel/Kompilierung/#Konfigurations-Werkzeuge | |
[5] https://multipath-tcp.org/pmwiki.php/Users/DoItYourself | |
[6] https://github.com/multipath-tcp/iproute-mptcp.git | |
[7] https://multipath-tcp.org/pmwiki.php/Users/Tools | |
[8] http://mytechpg.blogspot.de/2016/07/mptcp-raspberrry-pi-and-yocto.html | |
[9] https://github.com/mytechpg/meta-mytechpg.git | |
I AM NOT RESPONSIBLE FOR ANY DEMAGES TO YOUR DEVICES. FOLLOW THESE INSTRUCTIONS ON YOUR OWN RISC | |
Compiling mptcp into a default raspbian kernel on a Raspberrypi3 | |
dd the downloaded Raspian from: | |
https://www.raspberrypi.org/downloads/raspbian/ | |
The Lite version is enough | |
(Advised by [1], dunno if its rly needed) | |
sudo apt-get install bc | |
Get the MPTCP patch from Andrea: (Credits: http://mytechpg.blogspot.de/2016/07/mptcp-raspberrry-pi-and-yocto.html) | |
git clone https://github.com/mytechpg/meta-mytechpg.git | |
(The file we want is https://github.com/mytechpg/meta-mytechpg/blob/master/recipes-kernel/linux/files/6001_mptcp_4.1.21.patch if u dont want to clone the whole repo) | |
(yes you also can compile with yocto, but its bit complicated to get apt, iproutepatch, etc. working) | |
Get Kernel Sources and patch: | |
git clone https://github.com/raspberrypi/linux | |
cd linux | |
git checkout rpi-4.1.y | |
KERNEL=kernel7 | |
cat $PATCHFILE | patch -p1 | |
make bcm2709_defconfig | |
We have now a default config for our Kernel without any enabled MPTCP | |
For configuration i prefer make nconfig (sudo apt-get install libncurses5-dev) [4] | |
Next step is enable MPTCP in the kernel config: | |
make nconfig | |
Follow the steps mentioned in https://multipath-tcp.org/pmwiki.php/Users/DoItYourself | |
CARE: You have to enable IPV6, module is NOT enough!!! If you dont change it, the MPTCP entry wont show up and is hidden! | |
("You cannot set IPv6 as a module. Either compile it into the kernel, or disable it"[5]) | |
after saving with f9: | |
make -j4 zImage modules dtbs | |
sudo make modules_install | |
sudo cp arch/arm/boot/dts/*.dtb /boot/ | |
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ | |
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/ | |
sudo scripts/mkknlimg arch/arm/boot/zImage /boot/$KERNEL.img | |
[1] | |
reboot and u are finished :) | |
check it with e.g.: sysctl net.mptcp.mptcp_enabled | |
To control MPTCP we could need some useful tools: | |
git clone https://github.com/multipath-tcp/iproute-mptcp.git | |
cd iproute-mptcp | |
To build this we need some packages: | |
sudo apt-get install bison flex libdb-dev | |
Now we can build: | |
make | |
Here are some examles how to use them: | |
https://multipath-tcp.org/pmwiki.php/Users/Tools |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment