在内核中启用MPTCPv1相关的模块

1. 简介

  • 本文所涉及的均为MPTCPv1版本的MPTCP,采用的内核版本为5.18.19

  • 需要注意的是

    • 虽然MPTCP官方文档中提到在5.6之后的linux内核中均已集成了MPTCP相关源码,但是不同的linux发行版可能并没有启用MPTCP相关的内核模块,需要修改内核配置并重新编译内核
    • 如何确定linux发行版是否启用了MPTCP,请参考前文: 《MPTCP(二):MPTCP版本说明》
    • 实际测试过程中发现:(1)ubuntu22.04中已经集成了MPTCP源码并使能了MPTCP相关的内核模块,不需要修改内核相关配置;(2)然而在树莓派raspberry OS中,虽然已经在内核中集成了MPTCP模块源码,但是并没有启用MPTCP内核模块,实际并没有生效
  • 本文就以树莓派5.18.19内核源码为例说明如何启用MPTCP内核模块,硬件平台为树莓派CM4

2. 获取内核源码

  • 下载地址如下,选择分支rpi-5.18.y

https://github.com/raspberrypi/linux

  • clone源码
    git clone https://github.com/raspberrypi/linux.git --single-branch --branch=rpi-5.18.y

    git clone git@github.com:raspberrypi/linux.git --single-branch --branch=rpi-5.18.y

3. 安装交叉编译工具

  • 不赘述,参考如下链接:

https://blog.csdn.net/FireStarway/article/details/104921147

4. 编译内核

4.1 修改顶层Makefile

  • 修改Makefile,在顶层Makefile中添加如下内容

    ARCH := arm64
    CROSS_COMPILE := aarch64-linux-gnu-
    KBUILD_OUTPUT := ../linux_build

  • 树莓派CM4使用的是博通BCM2711 SoC, 因此使用默认配置文件bcm2711_defconfig

    $ ls arch/arm64/configs/
    bcm2711_defconfig bcmrpi3_defconfig defconfig $ make bcm2711_defconfig

4.2 make menuconfig启用MPTCP内核模块

  • 修改make menuconfig中的如下配置
    -> Networking support
    -> Networking options
    -> The IPv6 protocol (选择编译进内核)
    -> MPTCP: Multipath TCP (选择编译进内核或内核模块均可,编译为内核模块时每次开机都需要先加载相关驱动,较为麻烦)
    -> MPTCP: IPv6... (可选可不选)

4.3 编译

$ make Image modules dtbs -j$(nproc)

MPTCP(三) : 在内核中启用MPTCP相关模块的更多相关文章

  1. linux内核中与进程相关的数据结构(基于linux3.16-rc4)

    1.进程描述符 struct task_struct { volatile long state; ....... struct list_head tasks; ....... struct mm_ ...

  2. 第三十三节,sys解释器相关模块

    首先要引入import sys模块 sys.argv 功能:获取向脚本文件传入的参数,返回的列表,列表里的第一个元素是脚本文件路径和名称,后面的元素是传入的向脚本传入的参数 使用方法:sys.argv ...

  3. 内核开发知识第一讲.内核中的数据类型.重要数据结构.常用内核API函数.

    一丶内核中的数据类型 在内核中.程序的编写不能简单的用基本数据类型了. 因为操作系统不同.很有可能造成数据类型的长度不一.而产生重大问题.所以在内核中. 数据类型都一定重定义了. 数据类型 重定义数据 ...

  4. linux内存(三)内核与用户空间交互

    来自网址http://www.kerneltravel.net/jiaoliu/005.htm 用户程序和内核的信息交换是双向的,也就是说既可以主动从用户空间向内核空间发送信息,也可以从内核空间向用户 ...

  5. Linux内核学习--写一个c程序,并在内核中编译,运行

    20140506 今天开始学习伟大的开源代表作:Linux内核.之前的工作流于几个简单命令的应用,因着对Android操作系统的情愫,“忍不住”跟随陈利君老师的步伐,开启OS内核之旅.学习路径之一是直 ...

  6. ansible的安装及命令相关模块

    ansible 第一步:下载epel源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos- ...

  7. Linux内核中影响tcp三次握手的一些协议配置

    在Linux的发行版本中,都存在一个/proc/目录,有的也称它为Proc文件系统.在 /proc 虚拟文件系统中存在一些可调节的内核参数.这个文件系统中的每个文件都表示一个或多个参数,它们可以通过 ...

  8. TCP/IP协议栈源码图解分析系列10:linux内核协议栈中对于socket相关API的实现

    题记:本系列文章的目的是抛开书本从Linux内核源代码的角度详细分析TCP/IP协议栈内核相关技术 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com linu ...

  9. (笔记)Linux内核中内存相关的操作函数

    linux内核中内存相关的操作函数 1.kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) ...

  10. Linux内核中常见内存分配函数(三)

    ioremap void * ioremap (unsigned long offset, unsigned long size) ioremap是一种更直接的内存“分配”方式,使用时直接指定物理起始 ...

随机推荐

  1. Atcoder Beginner Contest 321 G - Electric Circuit 题解 - 状压dp | 指定最低位

    为了更好的阅读体验,请点击这里 题目链接:G - Electric Circuit 看到了 \(N\) 的数据范围,因此是显然的状压 dp. 不妨设 \(f_S\) 为仅使用 \(S\) 集合中的所有 ...

  2. AtCoder Beginner Contest 302 H. Ball Collector 题解 可撤销并查集

    为了更好的阅读体验,请单击这里 AtCoder Beginner Contest 302 H. Ball Collector 题意跳过. 可以视作将 \(a_i, b_i\) 之间连了一条边,然后 \ ...

  3. Kubernetes(七)数据存储

    数据存储 容器的生命周期可能很短,会被频繁地创建和销毁.容器在销毁时,保存在容器中的数据也会被清除.这种结果对用户来说,在某些情况下是不乐意看到的.为了持久化保存容器的数据,kubernetes引入了 ...

  4. uBrand | 更适合个人创业者,小公司的AI品牌创建平台

    在跟一些辞职创业的朋友聊品牌,这个问题大家不约而同地都会提到:"我不会设计也没有资金请专业的设计师,有没有低成本打造品牌的方法呢?" 正好这段时间赶上AI的风潮,从众多AI工具中刚 ...

  5. Zabbix 5.0 LTS URL 健康监测

    更多细节详情看[zabbix官方文档] 需求 Zabbix 的URL健康监测功能允许你检测 Web 地址是否可用.正常工作以及响应速度.这对于监控网站的可用性和性能非常有用.例如,你可以监控公司网站. ...

  6. 轻松掌握useAsyncData获取异步数据

    title: 轻松掌握useAsyncData获取异步数据 date: 2024/7/12 updated: 2024/7/12 author: cmdragon excerpt: 摘要:本文详细介绍 ...

  7. C++使用gnuplot-cpp库绘制图像

    最近想要对一些时变的变量进行可视化,搜索来搜索去选择了使用gnuplot这个工具. sudo apt-get install gnuplot sudo apt-get install gnuplot- ...

  8. oeasy教您玩转vim - 15 - # 行内查找

    行头行尾 回忆上节课内容 上次学了直接跳到开头和结尾 最重要的就是 ^.$ ^ 到开头 $ 到结尾 I 相当于^i A 相当于$a 查找帮助 还有什么呢? 还是继续在 motion 里面 ^ .$ 之 ...

  9. AT_abc218_d 题解

    洛谷链接&Atcoder 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 给定一个平面内的 \(N\) 个点的坐标,求这 \(N\) 个点中选 \(4\) 个点可构成 ...

  10. CF1883B Chemistry 题解

    原题传送门 思路: 如"aba","abba"这样的回文字符串, 每个字符的出现次数有以下两种情况: 1:全部是偶数(abba) 2:只有一个为奇数(aba) ...