日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

rtlinux linux实时补丁,(九)RTLinux补丁以及cyclictest

發布時間:2023/12/18 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rtlinux linux实时补丁,(九)RTLinux补丁以及cyclictest 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RT-Preempt Patch是在Linux社區kernel的基礎上,加上相關的補丁,以使得Linux滿足硬實時的需求。

一、向內核打RT-Linux補丁

1、下載內核補丁包

下載與自己內核相應的補丁包,以下是下載網址:https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/

這里有各種內核版本的補丁包。

我用的內核版本是4.6.0的,因此找到4.6的目錄下找對應的版本

哎?這里還沒有,older里面看看,果然這才是4.6最全的。選擇一個下載。

2、打補丁

將補丁包解壓到源碼目錄下

打開終端,輸入以下命令打入補丁:

xzcat ../patch-4.6-rt19.patch.xz | patch -p1

或者

patch -p(n) < [補丁包路徑]patch_name

n=0時,從當前目錄查找文件(夾)(直接使用補丁文件里指定的路徑)

n=1時,忽略掉第一層目錄,從當前目錄查找(去掉補丁文件指定路徑最左的第一個斜杠及前面的所有內容)

校驗

編譯內核后,上電啟動系統,uname -a命令查看 有 RT 字樣內核替換成功

打出補丁

patch -p1 -R < ../patch_name

二、編譯RT-test進行Linux實時性測試(cortex9,arm7)

1、下載

git clone git:// git.kernel.org / pub / scm / utils / rt-tests / rt-tests.git

cd rt-tests

git checkout stable / v1.0

2、安裝庫

直接make會報錯

報錯: src/cyclictest/rt_numa.h:29:18: fatal error: numa.h: 沒有那個文件或目錄

解決:

1)安裝apt-file 來找到依賴庫

apt-get install apt-file

apt-file update #更新源

2)尋找 numa.h

apt-file install numa.h

3) 安裝相應的庫

apt-get install libnuma-dev

3、編譯arm平臺的cyclictest

直接make的話編譯出的二進制文件是x86_64的,在zynq7平臺將無法執行。在網上也看別人博客說修改makefile文件中的編譯器選項,我修改之后編譯的仍然是x86_64的。無奈之下,只得將cyclictest源文件拿出來單獨編譯。

4、在yocto下用poky_sdk,autotool編譯

4.1 新建文件夾cyclictest

4.2 在上面下載的rt-tests中找到以下文件,復制到cyclictest文件夾下。

4.3 創建空的README文件,這是GNU編碼標準所要求的:

touch README

4.4 使用autoscan生成一個configure.scan輔助編寫configure.ac

4.5 創建configure.ac文件

AC_INIT(cyclictest, 2.69)

AM_INIT_AUTOMAKE

AC_CONFIG_HEADERS(config.h)

AM_PROG_CC_C_O

AC_PROG_INSTALL

AC_OUTPUT([Makefile])

2.69 就是從4.4步驟得來的。

4.6 創建Makefile.am文件

bin_PROGRAMS = cyclictest

cyclictest_SOURCES = cyclictest.c error.c rt-utils.c rt-sched.c

4.7 修改cyclictest.c,rt-utils.c文件

在頭文件聲明前增加 ? ? ? #define _GNU_SOURCE ? #define __USE_GNU

因為要使用GNU的編譯器,但是在編譯的時候卻發現一直報錯,找不到features.h里面的定義,因此需手動在頭文件聲明之前加上以上內容。

5、獲取跨工具鏈環境設置文件

source /home/jf-yt/poky_sdk/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

6、創建configure腳本:?使用該autoreconf命令生成configure腳本。

autoreconf

該autoreconf工具將正在運行的其他自動工具,如護理?aclocal,?autoconf和?automake。

注意:

如果出現錯誤的?configure.ac,它?autoreconf運行時,指示丟失的文件,使用“-i”選項,從而確保丟失的輔助文件復制到構建主機。

7、交叉編譯項目:此命令使用交叉編譯器編譯項目。該?CONFIGURE_FLAGS?環境變量為GNU配置的最小參數:

$ ./configure $ {CONFIGURE_FLAGS}

8、修改Makefile文件

在CC = ....加入 -lpthread -lrt,分別鏈接線程庫和rt庫。

9、編譯

make

10、驗證二進制文件,運行該命令將打印可以運行二進制文件的體系結構。此體系結構應與已安裝的跨工具鏈支持的體系結構相同。

$ file ./cyclictest

輸出如下

./cyclictest: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=c5d2416a3e22086474128ba1377e142b542a5353, not stripped

果然是ARM架構的,基本可以用了。

總結

以上是生活随笔為你收集整理的rtlinux linux实时补丁,(九)RTLinux补丁以及cyclictest的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。