如果需要在Linux 中實(shí)現(xiàn)實(shí)時(shí)計(jì)算性能,進(jìn)而有效地將 Linux 轉(zhuǎn)變?yōu)?RTOS,那么大多數(shù)發(fā)行版都可以打上名為 PREEMPT_RT 的實(shí)時(shí)內(nèi)核補(bǔ)丁來(lái)完成。
簡(jiǎn)介
我們?cè)榻B過(guò)在 Ubuntu 22.04 中啟用實(shí)時(shí) Linux 內(nèi)核有多簡(jiǎn)單,因?yàn)?Canonical 已將該內(nèi)核列為一個(gè)選項(xiàng)。但要為默認(rèn) Linux 內(nèi)核打上補(bǔ)丁,以便在自己的發(fā)行版中構(gòu)建自己的實(shí)時(shí) Linux 內(nèi)核,也并不困難。基本步驟是下載內(nèi)核源代碼和 PREEMPT_RT 補(bǔ)丁、打補(bǔ)丁、構(gòu)建內(nèi)核、重啟系統(tǒng)并選擇新的實(shí)時(shí)內(nèi)核。有關(guān)實(shí)時(shí) Linux 項(xiàng)目的更多信息,包括 RT_PREEMPT 補(bǔ)丁的最新穩(wěn)定版本,請(qǐng)查看 Linux 基金會(huì)的項(xiàng)目頁(yè)面。
01
前提條件
Ubuntu 22.04 LTS 桌面--安裝說(shuō)明請(qǐng)參閱:
https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview
需要:
1、足夠的可用磁盤(pán)空間(約 40GB,取決于內(nèi)核配置)
2、互聯(lián)網(wǎng)連接
3、關(guān)于構(gòu)建 Linux 內(nèi)核的一些基本知識(shí):
https://www.linux.com/topic/desktop/how-compile-linux-kernel-0
Motrotech
安裝說(shuō)明
我們從 Ubuntu 22.04 默認(rèn)的 Linux 內(nèi)核(5.15.0-43-generic 版本)開(kāi)始。
1.創(chuàng)建工作目錄
mkdir ~/kernel
cd ~/kernel
2.從 kernel.org 下載特定 Linux 內(nèi)核版本的內(nèi)核源文件和實(shí)時(shí)補(bǔ)丁文件。
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.15.96.tar.gz
wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.15/patch-5.15.96-rt61.patch.xz
3.解壓源文件
tar -xzf linux-5.15.96.tar.gz
xz -d patch-5.15.96-rt61.patch.xz
cd linux-5.15.96
patch -p1 <../patch-5.15.96-rt61.patch
4.配置內(nèi)核編譯選項(xiàng)并安裝依賴(lài)軟件包。
cp /boot/config-5.15.0-43-generic .config
sudo apt update
sudo apt install make gcc libncurses-dev libssl-dev flex libelf-dev bison
make menuconfig
5.從 "常規(guī)設(shè)置"/"搶占模式 "中激活 "完全搶占內(nèi)核(實(shí)時(shí))"選項(xiàng),然后保存并退出。
6.構(gòu)建內(nèi)核(注意:這可能需要一些時(shí)間)。在編譯過(guò)程中,可能有幾個(gè)依賴(lài)項(xiàng)必須安裝(其中一些在上一步中涉及),因此當(dāng)遇到編譯錯(cuò)誤時(shí),請(qǐng)檢查您系統(tǒng)中可能需要的其他軟件包。
sudo make
7.安裝內(nèi)核模塊:
sudo make modules_install
8.安裝內(nèi)核:
sudo make install
9.重新啟動(dòng)并選擇新構(gòu)建的 PREEMPT_RT 內(nèi)核,而不是默認(rèn)內(nèi)核。您可能需要編輯 Grub 配置,才能進(jìn)入引導(dǎo)加載器屏幕選擇新的實(shí)時(shí)內(nèi)核。有關(guān) Grub 2 引導(dǎo)加載器的更多信息和幫助,請(qǐng)參閱 https://help.ubuntu.com/community/Grub2。
10.檢查以確認(rèn)新的實(shí)時(shí)內(nèi)核正在使用中。你應(yīng)該在內(nèi)核名稱(chēng)中看到"-rt"。
結(jié)論
按照上面的步驟修補(bǔ)、構(gòu)建并在 Ubuntu 中安裝實(shí)時(shí) Linux 內(nèi)核并不困難。這個(gè)過(guò)程對(duì)于其他 Linux 發(fā)行版也是一樣的。
現(xiàn)在,您就可以在 Linux 中開(kāi)發(fā)實(shí)時(shí)應(yīng)用程序了。
北京盟通科技有限公司成立于2013年,是工業(yè)自動(dòng)化領(lǐng)域的高新技術(shù)企業(yè)。公司專(zhuān)注于實(shí)時(shí)現(xiàn)場(chǎng)總線(xiàn)技術(shù)及工業(yè)通訊技術(shù)的研發(fā)、推廣及技術(shù)支持服務(wù)。依托于核心團(tuán)隊(duì)多年的海外和行業(yè)經(jīng)驗(yàn),盟通科技與歐洲多家自動(dòng)化領(lǐng)域的佼佼者達(dá)成戰(zhàn)略合作關(guān)系,為客戶(hù)提供EtherCAT主站協(xié)議棧、OPC UA SDK軟件開(kāi)發(fā)包、CANopen協(xié)議棧、FSoE協(xié)議軟件、CAN總線(xiàn)硬件、DINA安全模塊、艾默生Connext軟件等工業(yè)協(xié)議的標(biāo)準(zhǔn)和定制化產(chǎn)品。
-
Ubuntu
+關(guān)注
關(guān)注
5文章
592瀏覽量
31286 -
LINUX內(nèi)核
+關(guān)注
關(guān)注
1文章
317瀏覽量
22421 -
preempt-rt
+關(guān)注
關(guān)注
0文章
4瀏覽量
1766
發(fā)布評(píng)論請(qǐng)先 登錄
一文讀懂:嵌入式Linux實(shí)時(shí)性進(jìn)階
飛凌推出實(shí)時(shí)操作系統(tǒng),Linux RT-Preempt!
高效輕型線(xiàn)程對(duì)Linux實(shí)時(shí)性能有什么影響
高效輕型線(xiàn)程怎么提高Linux實(shí)時(shí)性能?
多核設(shè)備中的Linux實(shí)時(shí)性能怎么提高?
基于全志A40i開(kāi)發(fā)板——Linux-RT內(nèi)核應(yīng)用開(kāi)發(fā)教程(1)
全志A40i開(kāi)發(fā)板——Linux-RT內(nèi)核應(yīng)用開(kāi)發(fā)教程(2)
基于全志A40i開(kāi)發(fā)板——Linux-RT內(nèi)核應(yīng)用開(kāi)發(fā)教程(3)
實(shí)時(shí)系統(tǒng)Preempt RT與Xenomai之爭(zhēng)!誰(shuí)更主流,誰(shuí)更實(shí)時(shí)?
如何部署并測(cè)試PREEMPT_RT補(bǔ)丁
輕型線(xiàn)程提高多核設(shè)備中的Linux實(shí)時(shí)性能的方案分析
通過(guò)輕型線(xiàn)程提高多核設(shè)備中的Linux實(shí)時(shí)性能

評(píng)論