文章目录

  • 1. Ubuntu Pro简介
  • 2. Real-time Ubuntu
  • 3. 订阅Ubuntu Pro
  • 4. 安装 realtime Linux kernel
  • 5. Ubuntu Pro realtime kernel 简单测试
  • 6. 获取ubuntu官方实时内核源码

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/

Ubuntu apt-get 安装preempt-rt

1. Ubuntu Pro简介

Ubuntu Pro 订阅(以前称为 “Ubuntu Advantage”)是 Canonical 推出的一项扩展性的安全维护和合规性订阅计划,2022 年 10 月首次发布 Beta 版本,最初是为提供全球服务的大型企业客户而设计的,为他们额外提供 5 年的 Ubuntu LTS 版本的扩展安全维护更新,因为这类客户通常希望他们的基础设施和应用程序具有更加长期的稳定性。

最多可在 5 台设备上为个人和小规模商业用途免费订阅,Ubuntu Pro 仅适用于 Ubuntu LTS(长期支持)版本,从 Ubuntu 16.04 开始,并承诺 10 年的安全更新,以及访问专有工具。

Ubuntu Pro 订阅承诺在不到 24 小时内为关键的 CVE 打补丁,并将可选的技术支持扩展到主操作系统之外的额外 23000 个开源包和工具链,而不仅仅是 Ubuntu 的主软件存储库。

因此与标准的 Ubuntu 相比,Ubuntu Pro 是一个更全面的产品,除了为关键的、高度的和中度的常见漏洞提供扩展的安全更新,它还会将安全覆盖范围扩大到成千上万的应用程序和工具链,其中包括 Ansible、Apache Tomcat、Apache Zookeeper、Docker、Drupal、Nagios、Node.js、phpMyAdmin、Puppet、PowerDNS、Python 2、Redis、Rust、WordPress、ROS等等。

Ubuntu Pro 还使用户可以访问 FIPS 140-2 认证的加密包、在受监管和审计的环境中进行合规性管理的工具、对无重启内核更新的 Livepatch 支持,以及系统管理和使用 Landscape 的大规模自动修补。

Canonical 表示,如果超过五台 PC 需要 Ubuntu Pro 订阅,则必须购买付费计划,目前工作站的价格为每年 25 美元,服务器的价格为每年 500 美元,并提供 30 天免费试用。官方 Ubuntu 社区成员可以获得最多 50 台设备的免费支持。

更多关于ubuntu pro介绍详见官网https://ubuntu.com/pro

2. Real-time Ubuntu

以上是Ubuntu Pro 的一些介绍,不是我们的重点。

“2023 年 2 月 14 日,伦敦,Canonical 宣布实时 Ubuntu 22.04 LTS 正式发布,实时 Ubuntu 提供对外部事件的确定性响应,旨在最大限度地减少指定期限内的响应时间保证。新的企业级实时内核非常适合严格的低延迟要求。工业、电信、汽车、航空航天和国防以及公共部门和零售业的企业现在可以在开源操作系统 (OS) 上运行其要求最苛刻的工作负载并开发各种时间敏感型应用程序。”

基于 Linux 内核的 5.15 版本,Ubuntu 22.04 LTS 集成了 x86Arm 架构的树外PREEMPT_RT补丁。PREEMPT_RT补丁集可减少最严格工作负载所需的内核延迟,有助于确保时间可预测的任务执行。满足严格的确定性要求和上限执行时间,具有PREEMPT_RT的 Ubuntu 使内核比主线 Linux 更具抢占性。“

这是ubuntu首次官方支持PRRMPT-RT,要知道,以往都是要开发者自己构建,实时性暂且不谈,可靠性、稳定性完全没有保障,这下有ubuntu在背后支持,可靠性、稳定性有保障,听上去这么好的玩意,安装玩一玩。

3. 订阅Ubuntu Pro

实时ubuntu 基于Ubuntu 22.04 LTS,且只有Ubuntu Pro提供该服务,没有Ubuntu Pro服务是无法直接通过apt-get install安装的实时内核的。

3.1 安装Ubuntu 22.04 LTS

先安装Ubuntu 22.04 LTS版本,X64桌面版安装镜像下载地址:https://cn.ubuntu.com/download/desktop。

3.2 注册并订阅个人服务

将 Ubuntu Pro 订阅添加到 Ubuntu LTS 设备,用户需要免费的 Ubuntu One 帐户,到Ubuntu Pro注册一个Ubuntu 账号,https://ubuntu.com/pro,并订阅个人服务,最多可在 5 台设备上为个人和小规模商业用途免费订阅。

在Ubuntu One 帐户中访问 Ubuntu Pro 令牌。

3.3 绑定设备

方式一,对于刚安装好的Ubuntu 22.04 LTS,第一次启动时在导航窗口可以输入token直接激活ubuntu prp服务,或者在在 Livepatch 选项卡中软件和更新实用程序中启用(其中 TOKEN 必须替换为用户的 Ubuntu Pro token)。

方式二,命令行启用,打开终端执行激活ubunutu pro服务

sudo pro attach 你的token

4. 安装 realtime Linux kernel

激活ubunutu pro服务后,默认还是普通Linux内核,如果要使用实时ubuntu,通过pro命令启用:

wsg1100@wsg1100-virtual-machine:~$ sudo pro enable
cc-eal           esm-infra        fips-updates     realtime-kernel  ros-updates
esm-apps         fips             livepatch        ros              usg
wsg1100@wsg1100-virtual-machine:~$ sudo pro enable realtime-kernel

启用完成后,安装:

 sudo apt-get install  linux-realtime

重启,重启时grub中选中realtime kernel。检查当前内核版本:

5. Ubuntu Pro realtime kernel 简单测试

测试机器硬件配置如下(未启用超线程):

忽略图中的virtual-machine,这是直接在物理机上跑的。


使用stress加点压力,开始测试:

运行一小时多,结果如下(us):

注:中途stress被我不注意停了,所以没有全程加压

T: 0( 3466)P:99 I:1000 C:4105948 Min: 2 Act: 2 Avg: 3 Max: 246
T: 1( 3467)P:99 I:1500 C:2737299 Min: 2 Act: 2 Avg: 3 Max: 241
T: 2( 3468) P:99 I:2000 C:2052974 Min: 2 Act: 2 Avg: 3 Max: 237
T: 3 ( 3469) P:99 I:2500 C:1642379 Min: 2 Act: 2 Avg: 3 Max: 245

这是安装后直接测试的结果,未经任何配置,不同的工工况下对调度、中断、外设实时性要求不同,影响因素也不同。这里的测试也只是cyclitest周期定时调度层面的实时性,定时调度只是最基本的应用场景,所以仅供参考。

6. 获取ubuntu官方实时内核源码

实时ubuntu有ubuntu在背后支持,可靠性、稳定性有保障,一般情况下,如果只开发一些与实时无关的外设驱动模块,不需要内核源码,完成以上步骤即可。

但大多工业设备、电信、汽车使用场景,或多或少都需要实时外设,这个时候基本都需要修改PREEMPT-RT源码,比如使用实时外设需要调整外设中断线程优先级、使用网络优化实时网络包路径等等,这时候我们就需要修改内核源码,那如何获取ubuntu官方实时内核源码呢?

/etc/apt/sources.list.d/ubuntu-realtime-kernel.list中启用源代码存储库。

deb [arch=amd64] https://esm.ubuntu.com/realtime/ubuntu jammy main
deb-src https://esm.ubuntu.com/realtime/ubuntu jammy main

通过apt获取源代码:

wsg1100@wsg1100-virtual-machine:~$ apt source --only-source linux-realtime
正在读取软件包列表... 完成
提示:linux-realtime 的打包工作被维护于以下位置的 Git 版本控制系统中:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
请使用:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
获得该软件包的最近更新(可能尚未正式发布)。
需要下载 206 MB 的源代码包。
获取:1 https://esm.ubuntu.com/realtime/ubuntu jammy/main linux-realtime 5.15.0-1034.37 (tar) [195 MB]
22% [1 linux-realtime 55.5 MB/195 MB 28%]                                                  1,690 kB/s 1分 29秒

获取后自动解压到本地目录下linux-realtime-5.15.0

我们还可以从ubuntu仓库clone:

git clone https://git.launchpad.net/~git-ubuntu-import/ubuntu/+source/linux-meta-realtime

如果你想在没有启用ubunutu pro的机器上也安装上实时内核呢?

方式一,apt-get install安装的debian包会缓存在目录下/var/cache/apt/archives/,也可以直接拷出到其他机器上安装。

wsg1100@wsg1100-virtual-machine:~$ ls /var/cache/apt/archives/linux-*realtime*
/var/cache/apt/archives/linux-headers-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb
/var/cache/apt/archives/linux-headers-realtime_5.15.0.1034.33_amd64.deb
/var/cache/apt/archives/linux-image-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb
/var/cache/apt/archives/linux-image-realtime_5.15.0.1034.33_amd64.deb
/var/cache/apt/archives/linux-modules-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb
/var/cache/apt/archives/linux-modules-extra-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb
/var/cache/apt/archives/linux-realtime_5.15.0.1034.33_amd64.deb
/var/cache/apt/archives/linux-realtime-headers-5.15.0-1034_5.15.0-1034.37_all.deb

方式二,我们可以从已安装的ubuntu中,重新打包出安装包,然后安装到其他机器上,命令如下:

#查看当前安装列表
$ dpkg -l | grep realtime
ii  linux-headers-5.15.0-1034-realtime             5.15.0-1034.37                           amd64        Linux kernel headers for version 5.15.0 on 64 bit x86 SMP
ii  linux-headers-realtime                         5.15.0.1034.33                           amd64        Linux kernel headers for real-time systems.
ii  linux-image-5.15.0-1034-realtime               5.15.0-1034.37                           amd64        Signed kernel image realtime
ii  linux-modules-5.15.0-1034-realtime             5.15.0-1034.37                           amd64        Linux kernel extra modules for version 5.15.0 on 64 bit x86 SMP
ii  linux-modules-extra-5.15.0-1034-realtime       5.15.0-1034.37                           amd64        Linux kernel extra modules for version 5.15.0 on 64 bit x86 SMP
ii  linux-realtime-headers-5.15.0-1034             5.15.0-1034.37                           all          Header files related to Linux kernel version 5.15.0
#从已安装系统重重新打包deb
$sudo dpkg-repack linux-modules-extra-5.15.0-1034-realtime linux-modules-5.15.0-1034-realtime  linux-headers-5.15.0-1034-realtime

生成后在当前目录下,直接拷出到其他机器上安装:

$ ls *deb
linux-headers-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb  linux-modules-extra-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb
linux-modules-5.15.0-1034-realtime_5.15.0-1034.37_amd64.deb

方式三,基于上面的源码重新编译构建,详见本博客其他文章。

到此本文水完了,本文中我是一个装系统的。更多关于实时性和xenomai原理见本博客其他文章,更多PREEMPT-RT的原理和填坑敬请关注本博客。

【原创】Ubuntu22.04安装 PREEMPT-RT(Ubuntu Pro RealTime linux/realtime Ubuntu)相关推荐

  1. Ubuntu 系列学习(五)ubuntu22.04安装flameshot火焰截图(图文)

    文章目录 ubuntu22.04安装flameshot v11(火焰截图) 1 火焰截图flameshot安装 1.1 方法一 克隆项目编译安装 1.2 方法二 .deb包安装 1.3 添加依赖时的报 ...

  2. Ubuntu22.04安装惠普P1108打印机并在局域网内共享

    Ubuntu22.04安装惠普P1108打印机 注:前期安装了smbsa用于文件共享. 一.安装打印机 1.1 版本 端口:USB 打印机型号:HP_LaserJet_Professional_P11 ...

  3. Ubuntu22.04安装与配置记录

    Ubuntu22.04安装与配置记录 原文地址:Ubuntu22.04安装与配置记录 2022年4月21日,ubuntu发布了22.04版本,该版本是一个LTS长期支持版本,技术支持5年,22.04版 ...

  4. ubuntu22.04安装显卡驱动、CUDA及cudnn

    安装显卡驱动.CUDA及cudnn 显卡驱动 自行下载安装 Software & Updates安装 使用命令安行安装 Ubuntu22.04系统安装CUDA 一.CUDA 是什么 先查看有没 ...

  5. ubuntu22.04安装显卡驱动+cuda+cudnn

    ubuntu22.04安装显卡驱动+cuda+cudnn 1. 下载驱动和卸载.禁用自带驱动程序 1.1 查看系统显卡型号 1.2 从NVIDIA官网下载相应驱动 1.3 卸载Ubuntu自带的驱动程 ...

  6. Ubuntu22.04 安装禅道

    Ubuntu22.04 安装禅道 Ubuntu22.04 在线安装 LAMP Ubuntu22.04 在线安装 MySQL8 MySQL APT存储库的下载页面 wget https://repo.m ...

  7. Ubuntu22.04安装VMware16[解决各种安装问题]

    Ubuntu22.04安装VMware[快速解决各种安装问题] 0. 前言 1. 下载安装包 2. 安装依赖 2.1 安装gcc 2.2 安装make 2.3 安装lib 2.4 安装git 2.5 ...

  8. ubuntu22.04安装pytorch(一遍过)

    本文介绍ubuntu22.04安装pytorch(本地安装),关于win10安装pytorch-gpu请关注小编的上一篇文章- 1.进入Anaconda资源包下载链接 https://conda.an ...

  9. Ubuntu22.04安装wine微信

    Ubuntu22.04安装wine微信 1.前言 这里只做解决方案记载,节省大家找资料的时间,方便下次快速搭建开发环境使用的.理论知识可能会是了涉及,但是肯定是以解决方案为主. 基本上大部分的软件使用 ...

最新文章

  1. Invoker 2019CCPC秦皇岛站I题 简单DP
  2. java实现用户登录注册功能(用集合框架来实现)
  3. 推荐8款堪称神器的良心软件
  4. mac上的终端bash命令
  5. 【转】windows平台多线程同步之Mutex的应用
  6. mysql 几十连接_MySQL挑战:10万连接数
  7. 深入浅出mfc学习笔记——六大关键技术之仿真_运行时和动态创建
  8. Java 动态代理机制分析及扩展--转
  9. 以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学。对于创建个人的和动态的经历
  10. ESB文件调用,windows服务
  11. TCP网络编程的基本流程
  12. zblog php和asp功能,ZBlog是否适合PHP或ASP?我们该如何选择?
  13. 面试题06. 从尾到头打印链表
  14. c语言 poll,c语言 linux 中 poll 的参数
  15. idea apollo启动VM参数设置
  16. 解决苹果mac新建txt文档在Windows下不换行的方法
  17. 月薪过7万可落户北京,程序员是逃离还是死磕到底?
  18. ie8打不开java项目_IE8点击打开没反应,尝试多种方法始终打不开
  19. 本来共享的计算机突然无法访问,win7无法启用共享访问怎么办_win7无法启用共享访问如何处理-win7之家...
  20. js 限制鼠标移动范围

热门文章

  1. Dirichlet Process
  2. 常见背景音(不定期更新)
  3. 这才是简单快速入门Python的正确姿势!
  4. foss测试_FOSS简介(免费和开源软件)
  5. [嵌入式] 重温Mini2440(二)移植Linux-4.9.270
  6. 从零开始的Linux学习日志
  7. C#GDI+简单绘图
  8. ImageNet数据下载
  9. 【旧淘宝npm源停用】使用工具全方位快速切换到新源npmmirror
  10. 一名双非名媛成功拿下蚂蚁、美团、携程等大厂拿offer后复盘面试经历