树莓派4b编译内核+mtu9000

您所在的位置:网站首页 网卡mtu用处 树莓派4b编译内核+mtu9000

树莓派4b编译内核+mtu9000

2023-08-21 17:03| 来源: 网络整理| 查看: 265

树莓派4b编译内核+mtu9000 前言

最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。树莓派中默认为1500,但是树莓派中上限为16436,因此在一定程度上,限制了传输效率。 网上通常将mtu值从1500修改为9000,在外部修改,没有修改内核。本文将记录在内核修改MTU过程。

一.环境配置

需要安装:

sudo apt update sudo apt install git bc bison flex libssl-dev make sudo apt install raspberrypi-kernel raspberrypi-kernel-headers sudo apt-get install libncurses5-dev libssl-dev sudo apt-get install build-essential openssl sudo apt-get install zlibc minizip

缺少啥安装啥,这是我总结过来的,兴许会多了也有可能少。 重点安装:交叉编译工具 1.下载:https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 2.安装交叉编译工具依赖

apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev

3.解压

tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar mv ./gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu ~/gcc-linaro

4.配置环境

vim ~/.bashrc ###在最后一行添加 export PATH=$PATH:~/gcc-linaro/bin source ~/.bashrc 二.下载树莓派内核

1.下载链接:https://github.com/raspberrypi 在这里插入图片描述 选择linux,下载对应的内核版本。我的是linux-rpi-5.9.y。下载后进行解压。

三,修改文件实现MTU9000

主要修改三处 1.linux-rpi-5.9.y/include/linux/if_vlan.h

#define VLAN_ETH_DATA_LEN 1500 /* Max. octets in payload */ #define VLAN_ETH_FRAME_LEN 1518 /* Max. octets in frame sans FCS */ 修改为 #define VLAN_ETH_DATA_LEN 9000 /* Max. octets in payload */ #define VLAN_ETH_FRAME_LEN 9018 /* Max. octets in frame sans FCS */

2.linux-rpi-5.9.y/include/uapi/linux/if_ether.h

#define ETH_DATA_LEN 1500 /* Max. octets in payload */ #define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ 修改为 #define ETH_DATA_LEN 9000 /* Max. octets in payload */ #define ETH_FRAME_LEN 9014 /* Max. octets in frame sans FCS */

3.linux-rpi-5.9.y/drivers/net/ethernet/broadcom/genet/bcmgenet.c

#define RX_BUF_LENGTH 2048 修改为 #define RX_BUF_LENGTH 10240 四,编译

1.构建编译配置

cd linux //linux修改为自己的内核包名字,即进入内核目录 KERNEL=kernel7l make bcm2711_defconfig

2.内核编译

make -j4 zImage modules dtbs

3.内核安装

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 cp arch/arm/boot/zImage /boot/$KERNEL.img ####保留原始内核 sudo cp arch/arm/boot/zImage /boot/kernel-my.img

4.修改配置文件

sudo nano /boot/config.txt

在文件最后一行加上

kernel=kernel-my.img

重启

sudo reboot 五,查看结果

内核版本查看 终端输入

uname -r

之前我的内核版本是5.10,现在修改到了自己编译的5.9。 MTU查看 终端输入

ifconfig

效果如下图,MTU值从默认的1500,提升到9000. 在这里插入图片描述

问题1:scripts/Kconfig.include:35: compiler ‘aarch64-linux-gnu-gcc’ not found scripts/kconfig/Makefile:90: recipe for target ‘bcm2711_defconfig’ failed 解决方法:安装交叉编译依赖。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3