赞
踩
uname -r
- https://www.kernel.org/pub/linux/kernel/
- https://www.kernel.org/pub/linux/kernel/projects/rt/
下载linux-6.6.15.tar.xz和patch-6.6.15-rt22.patch.gz
1.解压内核然后解压补丁,版本不同的话可以使用 TAB 键来补全
- tar -xzvf linux-xxxx.tar.gz
- cd linux-xxxxx
- gzip -cd ../patch-xxx-rtxxx.patch.gz | patch -p1 --verbose
2.安装依赖
sudo apt install gcc make libncurses5-dev openssl libssl-dev build-essential pkg-config libc6-dev bison flex libelf-dev dwarves -y
3.进入 config 交互界面调整下面设置,SAVE 后 EXIT
- make menuconfig
- General Setup -> Preemption Model 设置为 Fully Preemptible Kernel(RT)
- General Setup -> Timers subsystem -> Timer tick handling 设置为 Full dynticks system
- General Setup -> Timers subsystem 开启 High Resolution Timer Support
- Processor type and features -> Timer frequency 设置为 1000 HZ
4.然后编辑 .config
并修改以下内容(一定要记得是修改不是添加!!!!)
sudo gedit .config
- CONFIG_SYSTEM_TRUSTED_KEY=""
- CONFIG_SYSTEM_REVOCATION_KEYS=""
- make menuconfig(然后直接退出)
5.编译
make -j $(nproc)
6.安装kernel modules
sudo make modules_install -j $(nproc)
7.安装 kernel boot.img
sudo make install
8.查看当前所有已安装内核
cat /boot/grub/grub.cfg | grep "menuentry 'Ubuntu"
9.更新GRUB并重启
- sudo update-grub
- reboot
10.更新grub后重启查看下内核是否更新了
- sudo update-grub
- uname -r
如果遇到:loading linux xxx.. 错误:无效的shim签名 loading initial ramdisk 错误您需要先加载内核
解决方案:禁用安全引导(Secure Boot):进入BIOS设置,找到安全引导相关的选项,将其禁用。
1.git 仓库源码安装
git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
2.进入git仓库
cd rt-tests
3.安装依赖并使用make编译
- sudo apt-get install apt-file
- sudo apt-file update
- sudo apt-file search numa.h
- sudo apt-get install libnuma-dev
- make
4.测试
sudo ./cyclictest -t1 -p 80 -n -i 10000 -l 10000
比如在我的电脑上,我使用这个命令测试的结果如下:
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 7.30 3.08 1.17 1/1055 3389
T: 0 ( 5592) P:80 I:10000 C: 10000 Min: 2 Act: 3 Avg: 3 Max: 10
输出结果含义:
T: 0 序号为0的线程
P: 0 线程优先级为0
C: 9397 计数器。线程的时间间隔每达到一次,计数器加1
I: 1000 时间间隔为1000微秒(us)
Min: 最小延时(us)
Act: 最近一次的延时(us)
Avg:平均延时(us)
Max: 最大延时(us)
所以我们当前的机器上最小延时为2,平均为3,最大的为 10。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。