首页 > 系统相关 >【原创】Ubuntu Pro 中的RealTime linux(Real-time Ubuntu/PREEMPT-RT/ubuntu官方PREEMPT-RT)

【原创】Ubuntu Pro 中的RealTime linux(Real-time Ubuntu/PREEMPT-RT/ubuntu官方PREEMPT-RT)

时间:2023-04-01 23:44:40浏览次数:64  
标签:RT realtime Pro linux Ubuntu PREEMPT 5.15 ubuntu

【原创】Ubuntu Pro 订阅中的realtime linux(Real-time Ubuntu/PREEMPT-RT)

目录

以往我们开发实时Linux内核PREEMPT-RT,需要开发者自己打补丁-配置-编译构建安装,实时性暂且不谈,可靠性、稳定性完全没有保障,现在Ubuntu官方提供PREEMPT-RT支持啦。实时 Ubuntu 于2023 年 2 月 14 日基于Ubuntu 22.04 LTS发布,支持旨在为关键电信基础设施提供性能、超低延迟和安全性。基于 Linux 内核的 5.15 版本,Ubuntu 22.04 LTS 集成了 x86Arm 架构的树外PREEMPT_RT补丁。有了ubuntu官方支持,可靠性、稳定性有保障,赶快来体验一下。

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

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加点压力:

![Screenshot from 2023-03-25 11-13-40](C:\Users\wsg19\Desktop\新建文件夹\Screenshots\Screenshot from 2023-03-25 11-13-40.png)

运行一小时多,结果如下(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

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

标签:RT,realtime,Pro,linux,Ubuntu,PREEMPT,5.15,ubuntu
From: https://www.cnblogs.com/wsg1100/p/17279712.html

相关文章

  • ubuntu安装ch34x驱动,并安装串口调试助手
    1、查看系统自带的ch34x驱动kangxubo@kangxubo-HKNS:/lib/modules/5.19.0-38-generic/kernel/drivers/usb/serial$lsaircable.koftdi_sio.kokobil_sct.kopl2303.kousb_debug.koark3116.kogarmin_gps.komct_u232.koqcaux.ko......
  • import this Python之禅 20条准则
    运行importthis这句代码后返回的内容importthisTheZenofPython,byTimPetersBeautifulisbetterthanugly.Explicitisbetterthanimplicit.Simpleisbetterthancomplex.Complexisbetterthancomplicated.Flatisbetterthannested.Sparseisbette......
  • Perceptron, Support Vector Machine and Dual Optimization Problem (3)
    SupportVectorMachinesPerceptronandLinearSeparability假设存在一个lineardecisionboundary,它可以完美地对trainingdataset进行分割。那么,经由上述PerceptronAlgorithm计算,它将返回哪一条linearseparator?当linearseparator(即一个给定的超平面)的margi......
  • The remote name could not be resolved: 'report.dalabs.cn'
    1.在做程序的时候出现System.Net.WebException:Theremotenamecouldnotberesolved:'report.dalabs.cn'百度后得到以下方法:在webconfig文件里面添加代理配置:<system.net><defaultProxy><proxyusesystemdefault="True"proxyaddress="http://......
  • RTOS的核心问题0
    想说的话RTOS的RT是一个十分复杂的技术,在我看来实时性应该是嵌入式产品十分关注的问题.但是工作中,我也发现这样的现象----几乎很少去讨论系统的实时性.于是,有了下面的问题:1.系统的实时性是不是不那么重要?因为很"少"遇到.2.实时系统是怎么定义的.3.实时性有哪些技术......
  • [VM virtual Box] vbox虚拟机使用问题处理
    虚拟机报错提示“一个键加速配置页中已启动硬件虚拟化,但主机并不支持。需要警用硬件虚拟化才能启动虚拟机”“虚拟电脑草藏系统提示设为64位。64位系统需要硬件虚拟。若设置则更改时自动选择”解决方法:关闭系统的虚拟化设置控制面板启用Hyper-V功能找回VirtualBox的......
  • Ubuntu 无法连接Xshell
    情况刚下载ubuntu,正确输入账号和密码发现没法打开xshell原因没有安装和开启对应的服务解决方法直接在终端中执行下面的语句sudoapt-getinstallsshsudoapt-getinstallopenssh-server之后在Xshell中正确输入账号和密码就可以了.如果还不行,请先禁用VMnet8,然后等......
  • 例题3-2 WERTYU(WERTYU, UVa10082)
    题目把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入W,输入J会变成输入K等。键盘如图3-2所示。输入一个错位后敲出的字符串(所有字母均大写),输出打字员本来想打出的句子。输入保证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。样例输入OS,GO......
  • ubuntu16 共享主机的文件夹(实测有效)
    1、主机VM软件开启共享文件夹1)进入:虚拟机》设置》选项》共享文件夹2)选择总是启用》点击添加》选择一个主机目录 3)保存目录》下一步》启用此共享》完成   2、ubuntu安装vmtools1)下载包:进入:虚拟机》重新安装vmtools  (如果是灰色的,进入虚拟机设置,启动项改为物理......
  • git 报Failed to connect to 127.0.0.1 port 1081: Connection refused
    我遇到这个问题是我用了全局代理。导致了端口被占用了。提示的错误是 Failedtoconnectto127.0.0.1port1081:Connectionrefused解决办法:windows和mac都适用第一步查询是否使用了代理: 输入:gitconfig--globalhttp.proxy  你就会看到被占用的端口和报错的一......