Abh*_*yak 4 linux ubuntu real-time cgroups
我需要在 Ubuntu RT Linux 上运行实时应用程序,并且正在阅读有关使 Linux 充当 RT 系统的方法,我学到了两种方法来做到这一点
CONFIG_RT_GROUP_SCHED
内核中的启用标志。我已经尝试过第一种方法为 Ubuntu 安装 RT Linux 补丁
然而,除了uname -r
表明#1 SMP PREEMPT RT
我没有其他证据证明它实际上是一个 RT 系统,因此想尝试第二种方法。CONFIG_RT_GROUP_SCHED
在内核中启用标志并查看其性能。
我读到我们可以通过以下命令确认内核是否已经具有该标志:
# zcat /proc/config.gz | grep RT_GROUP
CONFIG_RT_GROUP_SCHED=y
Run Code Online (Sandbox Code Playgroud)
但是,我的系统在 proc 中甚至没有 config.gz 文件,所以我相信我的内核没有启用此功能。我对 Linux 内核比较陌生,所以这可能很天真,但如何在内核中启用它?
步骤 1 \n从https://www.kernel.org/pub/linux/kernel/
下载 Linux 内核。为了这个 PoC,我们从上面的链接下载了内核。linux-4.16.18.tar.gz
步骤 2 \n解压缩内核
\n\n$ tar -xzvf linux-4.16.18.tar.gz\n
Run Code Online (Sandbox Code Playgroud)\n\n步骤3
\n\n移动到内核源目录
\n\n$ cd linux-4.16.18\n
Run Code Online (Sandbox Code Playgroud)\n\n步骤4
\n\n安装内核构建依赖项
\n\n$ sudo apt install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache bison flex\n
Run Code Online (Sandbox Code Playgroud)\n\n步骤5
\n\n运行内核配置
\n\n$make menuconfig\n
Run Code Online (Sandbox Code Playgroud)\n\n步骤6
\n\n进入General setup
\xe2\x94\x80> Control Group Support
\xe2\x94\x80> CPU controller
\xe2\x94\x80>Group scheduling for SCHED_RR/FIFO
配置如下所示:
转至General setup
\xe2\x94\x80>Kernel .config support
并启用.config
对/proc/config.gz
步骤7
\n\n编译内核
\n\n$ make -j20\n
Run Code Online (Sandbox Code Playgroud)\n\n制作模块并安装
\n\n$ sudo make modules_install -j20\n$ sudo make install -j20\n
Run Code Online (Sandbox Code Playgroud)\n\n步骤8
\n\n打开grub.cfg
文件以验证内核是否已安装
$ vim /boot/grub/grub.cfg\n
Run Code Online (Sandbox Code Playgroud)\n\n查找菜单项menuentry \'Ubuntu, with Linux linux-4.16.18\'
如果它不是您的默认内核,则将该GRUB_DEFAULT=0
值更改为您的内核
步骤9
\n\n重新启动您的系统
\n\nsudo reboot
步骤10
\n\n通过以下命令验证系统:
\n\n# zcat /proc/config.gz | grep RT_GROUP\n\nCONFIG_RT_GROUP_SCHED=y\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
7708 次 |
最近记录: |