現今的社會Linux已經無所不在,小從手機大到超級電腦都有Linux的蹤跡,這意思是,Linux 一開始並非針對 real-time 需求去打造的。在對Linux的需求無止盡的提昇下,支援real-time已經是不可忽略,目前的作法是在kernel原始碼加入real-time修補碼。本文介紹在petalinux 2018.3下加入PREEMPT-RT修補碼,使Xilinx的ZYNQ或ZYNQ ultrascale+ MPSOC有支援real-time的linux kernel。使用的工具是Xilinx的petalinux 2018.3。
一、petalinux 2018.3使用的kernel版本是4.14,下載該版本的PREEMPT-RT修補碼檔案並解壓縮
$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14-rt1.patch.gz $ gzip -d patch-4.14-rt1.patch.gz
二、用Vivado建立Zynq或MPSOC硬體,將硬體資訊匯出成HDF檔
三、用petalinux的命令petalinux-create建立一個petalinux專案,並進入該專案所在目錄
#For Zynq$ petalinux-create -t project -n Petalinux --template zynq#For MPSOC$ petalinux-create -t project -n Petalinux --template zynqMP$ cd Petalinux
四、匯入硬體資訊到petalinux專案
$ petalinux-config --get-hw-description=<Path of folder which has a HDF>
五、將PREEMPT-RT修補碼檔案patch-4.14-rt1.patch拷貝到<plnx-proj-root>/project-spec/meta-user/recipes-kernel/linux/linux-xlnx目錄,如果linux-xlnx目錄不存在就自行建立
$ cp patch-4.14-rt1.patch <plnx-proj-root>/project-spec/meta-user/recipes-kernel/linux/linux-xlnx
六、在<plnx-proj-root>/project-spec/meta-user/recipes-kernel/linux/linux-xlnx_%.bbappend加入下面的內容
SRC_URI_append = " file://patch-4.14-rt1.patch"FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
七、用petalinux的命令petalinux-config -c kernel致動”Fully Preemptible Kernel(RT)”來使用real-time功能
八、用petalinux的命令petalinux-build編譯整個petalinux專案
$ petalinux-build
九、用petalinux的命令petalinux-boot啟動QEMU模擬器執行編譯好的embedded linux,再執行”uname -r”確認real-time修補碼有加入
$ petalinux-boot --qemu --kernel
嗯 嗯嗯!real-time修補碼確認有編譯進kernel了,接下來就是測試到底有多real-time了。
联系客服