如果需要在Linux 中實現(xiàn)實時計算性能,進而有效地將 Linux 轉(zhuǎn)變?yōu)?RTOS,那么大多數(shù)發(fā)行版都可以打上名為 PREEMPT_RT 的實時內(nèi)核補丁來完成。
簡介
我們曾介紹過在 Ubuntu 22.04 中啟用實時 Linux 內(nèi)核有多簡單,因為 Canonical 已將該內(nèi)核列為一個選項。但要為默認(rèn) Linux 內(nèi)核打上補丁,以便在自己的發(fā)行版中構(gòu)建自己的實時 Linux 內(nèi)核,也并不困難?;静襟E是下載內(nèi)核源代碼和 PREEMPT_RT 補丁、打補丁、構(gòu)建內(nèi)核、重啟系統(tǒng)并選擇新的實時內(nèi)核。有關(guān)實時 Linux 項目的更多信息,包括 RT_PREEMPT 補丁的最新穩(wěn)定版本,請查看 Linux 基金會的項目頁面。
01
前提條件
Ubuntu 22.04 LTS 桌面--安裝說明請參閱:
https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview
需要:
1、足夠的可用磁盤空間(約 40GB,取決于內(nèi)核配置)
2、互聯(lián)網(wǎng)連接
3、關(guān)于構(gòu)建 Linux 內(nèi)核的一些基本知識:
https://www.linux.com/topic/desktop/how-compile-linux-kernel-0
Motrotech
安裝說明
我們從 Ubuntu 22.04 默認(rèn)的 Linux 內(nèi)核(5.15.0-43-generic 版本)開始。
1.創(chuàng)建工作目錄
mkdir ~/kernel
cd ~/kernel

2.從 kernel.org 下載特定 Linux 內(nèi)核版本的內(nèi)核源文件和實時補丁文件。
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)核編譯選項并安裝依賴軟件包。
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)核(實時)"選項,然后保存并退出。

6.構(gòu)建內(nèi)核(注意:這可能需要一些時間)。在編譯過程中,可能有幾個依賴項必須安裝(其中一些在上一步中涉及),因此當(dāng)遇到編譯錯誤時,請檢查您系統(tǒng)中可能需要的其他軟件包。
sudo make
7.安裝內(nèi)核模塊:
sudo make modules_install
8.安裝內(nèi)核:
sudo make install
9.重新啟動并選擇新構(gòu)建的 PREEMPT_RT 內(nèi)核,而不是默認(rèn)內(nèi)核。您可能需要編輯 Grub 配置,才能進入引導(dǎo)加載器屏幕選擇新的實時內(nèi)核。有關(guān) Grub 2 引導(dǎo)加載器的更多信息和幫助,請參閱 https://help.ubuntu.com/community/Grub2。

10.檢查以確認(rèn)新的實時內(nèi)核正在使用中。你應(yīng)該在內(nèi)核名稱中看到"-rt"。

結(jié)論
按照上面的步驟修補、構(gòu)建并在 Ubuntu 中安裝實時 Linux 內(nèi)核并不困難。這個過程對于其他 Linux 發(fā)行版也是一樣的。
現(xiàn)在,您就可以在 Linux 中開發(fā)實時應(yīng)用程序了。
北京盟通科技有限公司成立于2013年,是工業(yè)自動化領(lǐng)域的高新技術(shù)企業(yè)。公司專注于實時現(xiàn)場總線技術(shù)及工業(yè)通訊技術(shù)的研發(fā)、推廣及技術(shù)支持服務(wù)。依托于核心團隊多年的海外和行業(yè)經(jīng)驗,盟通科技與歐洲多家自動化領(lǐng)域的佼佼者達成戰(zhàn)略合作關(guān)系,為客戶提供EtherCAT主站協(xié)議棧、OPC UA SDK軟件開發(fā)包、CANopen協(xié)議棧、FSoE協(xié)議軟件、CAN總線硬件、DINA安全模塊、艾默生Connext軟件等工業(yè)協(xié)議的標(biāo)準(zhǔn)和定制化產(chǎn)品。
-
Ubuntu
+關(guān)注
關(guān)注
5文章
615瀏覽量
33582 -
LINUX內(nèi)核
+關(guān)注
關(guān)注
1文章
321瀏覽量
23271 -
preempt-rt
+關(guān)注
關(guān)注
0文章
6瀏覽量
1833
發(fā)布評論請先 登錄
一文讀懂:嵌入式Linux實時性進階
【HZ-RK3568開發(fā)板免費體驗】3、開啟Linux Kernel RT功能
飛凌推出實時操作系統(tǒng),Linux RT-Preempt!
高效輕型線程怎么提高Linux實時性能?
多核設(shè)備中的Linux實時性能怎么提高?
基于全志A40i開發(fā)板——Linux-RT內(nèi)核應(yīng)用開發(fā)教程(1)
全志A40i開發(fā)板——Linux-RT內(nèi)核應(yīng)用開發(fā)教程(2)
基于全志A40i開發(fā)板——Linux-RT內(nèi)核應(yīng)用開發(fā)教程(3)
實時系統(tǒng)Preempt RT與Xenomai之爭!誰更主流,誰更實時?
如何部署并測試PREEMPT_RT補丁
通過輕型線程提高多核設(shè)備中的Linux實時性能
openEuler Embedded軟實時系統(tǒng)的特性說明
Ubuntu的實時內(nèi)核 (Real-Time Kernel) 即將GA
國產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—Linux-RT應(yīng)用開發(fā)案例
瑞芯微RK35XX系列Linux實時性詳細(xì)測試對比( PREEMPT_RT和Xenomai )
使用 PREEMPT_RT 在 Ubuntu 中構(gòu)建實時 Linux 內(nèi)核
評論