admin管理员组文章数量:1794759
ubuntu20.04下内核源码下载分析
ubuntu 20.04下内核源代码下载,配置编译环境
- 写在前面
- 一、安装VMware Workstation和Ubuntu20.04
- 二、修改apt源
- 三、下载Linux内核源代码
- 四、配置编译内核的依赖和环境
- 五、查看内核关于网络的内容
- 参考内容
我最近的科研工作需要使用到对ubuntu内核源代码进行编译,因此我下载了最新的长期支持版本的ubuntu20.04,为什么使用最新版而不是16.04或者18.04呢?因为最新版本的内核支持最新的技术,更完善更好,并且20.04已经发布一年多,且是长期支持版本,兼容性和可靠性值得信赖。 当前时间最新版本是21.04,不太建议使用这么新的版本,一是可能没那么稳定,二是不是长期支持版本LST。 那些想要修改内核源代码或在读源码编译源码的人,都可以从本博客中学习到一点我总结的知识。我的信都来自互联网,只不过是对前人工作的总结。 本文没有进行内核编译,只是下载源代码,查看分析!
一、安装VMware Workstation和Ubuntu20.04这个不是本博客的重点内容,详细步骤请参考互联网。 我安装的过程没有参考哪些文章,20.04安装非常简单,只需要输入用户名和密码就好了,基本的配置都会给默认弄好。 查看ubuntu版本信
uname -a 二、修改apt源Ubuntu安装包和依赖都需要apt工具,国内可以更改apt源为阿里云镜像或者清华镜像。 更改apt源为阿里云镜像。 首先备份原来的apt源文件
sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup更改sources.list文件内容为:
deb mirrors.aliyun/ubuntu/ focal main restricted universe multiverse deb archive.ubuntu/ubuntu/ focal-security main restricted universe multiverse deb archive.ubuntu/ubuntu/ focal-updates main restricted universe multiverse deb archive.ubuntu/ubuntu/ focal-proposed main restricted universe multiverse deb-src mirrors.aliyun/ubuntu/ focal main restricted universe multiverse deb-src mirrors.aliyun/ubuntu/ focal-security main restricted universe multiverse deb-src mirrors.aliyun/ubuntu/ focal-updates main restricted universe multiverse deb-src mirrors.aliyun/ubuntu/ focal-proposed main restricted universe multiverse deb-src mirrors.aliyun/ubuntu/ focal-backports main restricted universe multiverse需要注意的是,不同版本的源是不一样的,Ubuntu20.04版本名称为focal,如果使用了错误的版本,那么会造成apt很多下载没法使用。
sudo apt update sudo apt upgrade默认的Ubuntu20.04好多包都没有安装,包括vim,git等,可以根据自己的需要进行安装,这里不再描述。
三、下载Linux内核源代码使用上面的查看内核信,可以看到内核版本号,我的版本是5.11.0 内核代码都放置在:
/usr/src进入该目录,发现并没有Linux内核源代码,只有四个头文件包header,因为默认安装的Ubuntu20.04没有将源文件保留,对于大多数用户,不需要源代码包。我们可以去网上下载,我找到了一个下载速度比较快的网站: Linux内核源代码下载 进入网页,往下拉,上面都是补丁内容,下面是内核源码,找一个5.10版本开头的,tar.gz结尾的,下载下来就好,速度很快的。 然后进行解压缩,进入压缩包的目录,输入下面的shell命令
tar -zxvf linux-5.10-37.tar.gz cp linux-5.10.37 /usr/src现在可以进入源代码目录下面,查看内容: (我下载的版本是linux-5.10)
cd /usr/src cd linux-5.10 ls 四、配置编译内核的依赖和环境在目录/usr/src/linux-5.10下执行命令:
sudo make menuconfig发现是报错的,无法正常进入那个编译内核的界面。
需要安装一系列的包,中间我踩了很多坑,只需要照着做就行了,包是什么,什么功能现在也不必知道。
sudo apt install gcc sudo apt install libc6-dev sudo apt install libncurses-dev sudo apt install flex sudo apt install bison安装好之后就可以成功进入那个配置界面了。
/usr/src/linux-5.10 sudo make menuconfig 五、查看内核关于网络的内容 sudo sysctl net.ipv4.tcp_availiable_congestion_control编译进内核的tcp拥塞控制算法只有reno(reno其实就是new reno)和cubic,并且默认的拥塞控制算法是cubic 我进入内核配置界面,发现其实是有很多拥塞控制算法的,只是其他拥塞控制算法编译为模块,不是编译进内核。 想要使用所有的拥塞控制算法,来做科研测试等,需要安装模块,或者编译进内核。
sudo sysctl net.ipv4.tcp_congestion_control值得我注意到是,我发现新版本的内核已经支持了mptcp,在net包下有一个mptcp的目录,并且使用下面的指令,值为1,可以发现启用了mptcp:
sudo sysctl net.mptcp.enabled我很好奇内核代码的传输层协议为mptcp和tcp的性能差别,因此我进行了简单的测试。 我是用mininet进行的网络测试,发现多个端口情况下,mptcp和tcp的性能一样,普通情况下mptcp性能竟然还要比tcp低一点。 代码和过程就不放了,现在我也不想研究mptcp,tcp就够我喝一壶了!
参考内容[1] Ubuntu20.04修改国内源 [2] 如何下载linux内核源码? 刘项
版权声明:本文标题:ubuntu20.04下内核源码下载分析 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686528811a78205.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论