1. 目的
咱们知道在控制系统中,定期执行是个很重要的玩意儿,单片机里好搞定,一个定时器就解决了,但是现在的控制器越来越复杂,有些涉及一些复杂运算的内容单片机解决不了了,另外一些很棒的库也很有诱惑力,高性能操作系统作为运算核心还是一个大趋势,但是这些个操作系统基本都没有实时性且很贵,因此搞个带实时操作系统的树莓派还是挺不错的选择。官方的系统没有直接提供实时核心,我们需要自己搞个,放心,不麻烦。
2. 环境
系统:2021-03-04-raspios-buster-armhf
板子:Raspberry Pi 4
3. 具体操作
我们选择比较方便的在板编译内核,这真的很方便啊。
首先安装必备的工具,在终端输入:
sudo apt-get install bc
sudo apt-get install libncurses-dev libssl-dev
sudo apt-get install build-essential kmod cpio flex cpio bison
在https://github.com/raspberrypi/linux中下载linux-rpi-4.19.y-rt,解压出来。
在终端中进入刚解压出来的文件夹,输入:
export KERNEL=kernel7l
make bcm2711_defconfig
make menuconfig
会看到这么一个框:
进入General setup->Preemption Model选择Fully Preemptible Kernel (RT)。
完成后就开始编译了
make -j4 zImage modules dtbs
然后安装
sudo make modules_install
添加相关核心文件进boot
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
添加核心
sudo chmod a+x scripts/mkknlimg
sudo scripts/mkknlimg arch/arm/boot/zImage /boot/kernel-rt.img
在/boot/config.txt的最后一行添加kernel=kernel-rt.img
ok,完了,重启pi。
在终端输入
uname -a
看到这个就ok了!
参考资料
https://blog.csdn.net/jueyisan/article/details/101013705
https://zhuanlan.zhihu.com/p/358151393