如果需要在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)核,也并不困難。基本步驟是下載內(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)域的佼佼者達(dá)成戰(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文章
592瀏覽量
31242 -
LINUX內(nèi)核
+關(guān)注
關(guān)注
1文章
317瀏覽量
22403 -
preempt-rt
+關(guān)注
關(guān)注
0文章
4瀏覽量
1764
發(fā)布評論請先 登錄
一文讀懂:嵌入式Linux實時性進階
飛凌推出實時操作系統(tǒng),Linux RT-Preempt!
高效輕型線程對Linux實時性能有什么影響
高效輕型線程怎么提高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實時性能的方案分析
通過輕型線程提高多核設(shè)備中的Linux實時性能

評論