首页 > 系统相关 >Ubuntu18下实时Linux内核的编译安装记录(保姆级)

Ubuntu18下实时Linux内核的编译安装记录(保姆级)

时间:2023-12-22 09:11:06浏览次数:46  
标签:relevant Ubuntu18 make blog 编译 内核 https Linux

本人系统是虚拟机上的ubuntu18,过程参考了以下3个链接:

https://blog.csdn.net/huangjunsheng123/article/details/116202848

https://blog.51cto.com/u_15899439/5907513

https://kunaly.blog.csdn.net/article/details/101111502?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-3-101111502-blog-116202848.235%5Ev39%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-3-101111502-blog-116202848.235%5Ev39%5Epc_relevant_anti_t3_base&utm_relevant_index=6&ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1YW5nanVuc2hlbmcxMjMvYXJ0aWNsZS9kZXRhaWxzLzExNjIwMjg0OA%3D%3D&ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1YW5nanVuc2hlbmcxMjMvYXJ0aWNsZS9kZXRhaWxzLzExNjIwMjg0OA%3D%3D&ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1YW5nanVuc2hlbmcxMjMvYXJ0aWNsZS9kZXRhaWxzLzExNjIwMjg0OA%3D%3D

1、下载内核和补丁(推荐用镜像下载)

国内阿里镜像内核下载地址(下载速度快): https://mirrors.aliyun.com/linux-kernel/
国内阿里镜像补丁下载地址(下载速度快): https://mirrors.aliyun.com/linux-kernel/projects/rt/

本人下载的是5.4.138版本的核心和补丁。

2:解压打补丁

1.将第一步下载的文件放到新建的kernel文件夹中
cd ~
mkdir kernel
cd kernel
 
2.解压内核源码
tar -zxvf linux-4.4.tar.gz
 
3.解压补丁
gunzip patch-4.4-rc6-rt1.patch.gz
 
4.打补丁
cd linux-4.4
patch -p1 < ../patch-4.4-rc6-rt1.patch
 
5.安装编译内核需要的模块
sudo apt-get install libncurses-dev
sudo apt-get install libssl-dev
 
6.配置linux内核
make menuconfig

 注:详细补充下第6步中配置内核的具体操作:由于第三个链接中是4.几版本的,而我下的是5.4.138版本的(同第二个链接,因为和他ubunut系统版本一样,为了方便),在5.4内核版本里,menuconfig界面都改了,所以界面和第三个参考链接中的插图不一样。

开始实操!进入menuconfig后是这个画面,点击进入第一个(要不要点忘了,可以试试,点击后下一步搜索得到就行):

选项太多,直接查找更方便,弹窗最上方也提示了,按/就可以弹出搜索界面,输入CONFIG_EXPERT,显示如下界面,按1选择进入专业配置模式?:

然后画面会变成这样,还是在general setup里,但是后面多个了括号描述(config expert):

继续按/搜索PREEMPT_RT,界面类似下图,选择1:

 如图,然后继续回车,进入:

选择最后一个RT选项,保存退出即可:

 3:为了避免出错,编译参考的还是同版本的第二个链接:

make -j4   (直接写make也行,-j4就是四核线程加速,如果虚拟机创建的时候分配的2核,就写-j2)

 注:这一步的执行时间较长,本人虚拟机创建时分配的2核,因此用的make -j2,笔记本编译内核过程用了将近3小时。

 注:make -j2 编译时候的遇到一些错误如下:

问题1:编译 Linux 内核报错 ( /bin/sh: 1: gcc: not found scripts/Makefile.host:95: recipe for target ‘scripts/basic/fixdep’ failed )
解决:https://blog.csdn.net/lqf123123/article/details/126426860

问题2:编译内核问题,找不到那个RT选项。
解决:General setup 中打开内核 feature,或者在这个界面里按/进行搜索CONFIG_EXPERT,好像是按1把选择,在里面继续搜索PREEMPT_RT,选择进入Preemption Model。选择最后的RT选项。保存退出。也就是上面截图所演示的。
参考链接:https://blog.51cto.com/u_15899439/5907513

问题3:Linux内核编译错误:make[1]: *** 没有规则可制作目标“debian/canonical-certs.pem”,由“certs/x509_certificate_list” 需求。 停止
解决:https://blog.csdn.net/m0_51203305/article/details/120805372
注:只要改:CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" #这个要删除

注:问题3和4要改的.config文件就在kernel/linux5.4.138下,文件管理器中隐藏的,在终端直接sudo vim .config就可以编辑。

问题4:内核编译错误:Makefile:988: recipe for target 'certs' failed
解决:https://blog.csdn.net/weixin_43966269/article/details/106097920?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-106097920-blog-115805848.235%5Ev39%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-106097920-blog-115805848.235%5Ev39%5Epc_relevant_anti_t3_base
方法:关闭:CONFIG_MODULE_SIG和CONFIG_SYSTEM_TRUSTED_KEYS关联项(y改为n,最后那个上一个问题改为空过了)
另外内核编译关闭CONFIG_DEBUG_INFO,内核Debug信息量很大

完事后开始下面三个指令,这三步就很快了,一共大概十分钟。完事后重启系统。再用指令查看内核版本,如下图,应该就OK了。

sudo make modules_install
sudo make headers_install
sudo make install

重启后,执行查看版本指令,效果如图。OK:

cat /proc/version

 安装测试数据集:

sudo apt-get install rt-tests

 测试效果,如图:

sudo cyclictest -t 5 -p 80 -n

 完事!

标签:relevant,Ubuntu18,make,blog,编译,内核,https,Linux
From: https://www.cnblogs.com/beautifulmoonlight/p/17919003.html

相关文章

  • Linux下安装Java环境三种方式(tar.gz、rpm、yum)
    一、Java软件包下载Java各版本下载地址;进入页面后我们首先看到的是Java最新版本的下载界面,但是在这我需要下载Java8的版本,所以得划到下面的界面,即界面如下:在这里我将下载:jdk-8u381-linux-x64.tar.gz(压缩包方式安装)、jdk-8u381-linux-x64.rpm(RPM方式安装)注:在下载界面的下面一......
  • Linux 定位服务器硬盘槽位的方法
    版权声明:原创作品,谢绝转载!否则将追究法律责任。—————作者:kirinLinux定位服务器硬盘槽位的方法1、安装sas3ircu工具2、获取磁盘SN号码2.1、使用smartctl命令获取smartctl-a/dev/sd*|grepSerial2.2、查看文件获取ll/dev/disk/by-id/|grepsd*3、通过硬盘S......
  • 工作中常用的一些Linux指令,简单易记还实用(三)
    成功路上最大的困难就是坚持,每天坚持看一道算法,每周坚持看一本好书!工作中,离不开Linux系统,很多刚步入职场的小白,往往对于Linux操作系统的使用都显得生疏,最主要的就是对一些常用的指令记忆不熟练,下面就罗列一些使用度比较高的一些Linux指令,一起来巩固学习一下。这一部分的指令就稍......
  • Linux设备树
    Linux设备树Linux设备树语法详解-Abnor-博客园(cnblogs.com)Linux设备树(2)——设备树格式和使用-Hello-World3-博客园(cnblogs.com)https://www.cnblogs.com/hellokitty2/p/10999432.html1、概念​设备树的出现是为了实现驱动代码和设备信息的分离,在设备树......
  • Linux磁盘
    磁盘操作分区状态查询lsblk(listblockdevice)列出所有储存设备的意思[root@localhostdev]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:0080G0disk├─sda18:10300M0part/boot├─sda28:203.9G0part[SWAP]......
  • linux 的别名功能alias
    环境centos7.9介绍Alias是Linux系统中一个非常有用的命令,它可以为常用的命令或复杂的命令序列创建别名。通过使用alias,我们可以简化命令的输入,提高工作效率。使用在~/.bashrc或~/.bash_profile文件中添加以下新行,保存后source下查看当前已设置的别名alias设置单个命令......
  • Capture a TCP dump from a Linux node in an AKS cluster
    https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/capture-tcp-dump-linux-node-akshttps://learn.microsoft.com/en-us/azure/aks/node-access#create-an-interactive-shell-connection-to-a-linux-nodekubectlgetnodes-owidekubectldebugno......
  • protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aar
    protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aarch64版本文章目录protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aarch64版本一、前言二、protobuf、rpc、protobuf-c、protobuf-c-rpc介绍1、protobuf2、protob......
  • linux 安装 redis
    一、通用方式要在Linux上安装Redis,可以按照以下步骤进行操作:1.打开终端,使用以下命令下载Redis的压缩包: wgethttp://download.redis.io/releases/redis-x.x.x.tar.gz注意将"x.x.x"替换为你想要下载的Redis版本号。2.解压下载的压缩包:tarxzfredis-x.x.x.tar.gz进入......
  • 记录 | linux安装onnx2trt
    linux安装onnx2trt的方法#下载gitclone--recursivehttps://github.com/onnx/onnx-tensorrt.git#查看分支gittag#切换分支,与tensorRT版本一致gitcheckoutrelease/8.2-GA#或者直接下载https://codeload.github.com/onnx/onnx-tensorrt/zip/refs/heads/8.2-G......