网站首页 > 资源文章 正文
硬件环境:Raspberry Pi 3 Model B
主 机:CentOS 7
树莓派支持的传统的Linux系统Raspbian是没有任何硬实时的支持,因此将树莓派核心板用于实现工业控制器时,一定需要对标准的Linux进行升级改造来提高其实时性,通过集成PREEMPT-RT实时内核补丁,将树莓派上标准的控制最差的响应延时从不确定的>200us(通常在200-500us,但随着处理器负荷提高,偶发性的响应延迟将达到ms级别以上)控制在确定的<120us以内
*本次配置和编译内核是在运行Linux的主机(x86 / x64)上执行的,而不是在Raspberry Pi上执行的。在Raspberry Pi上仅实现部署。
1.树莓派安装Raspbian
下载地址:https://www.raspberrypi.org/downloads/raspbian/
为了调试方便,选择的是desktop的版本,实际部署时,选择Lite版会更节省内存。
$ sudo dd bs=4m if=2018-11-13-raspbian-stretch-full.img of=/dev/rdisk2
2.在home目录下创建一个子目录
$ mkdir ~/rpi-kernel
$ cd ~/rpi-kernel
$ mkdir rt-kernel
3.克隆实时内核补丁和编译环境
$ git clone https://github.com/raspberrypi/linux.git -b rpi-4.14.y-rt
$ git clone https://github.com/raspberrypi/tools.git
4.配置环境变量
$ export ARCH=arm
$ export CROSS_COMPILE=~/rpi-kernel/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-
$ export INSTALL_MOD_PATH=~/rpi-kernel/rt-kernel
$ export INSTALL_DTBS_PATH=~/rpi-kernel/rt-kernel
5.构建内核配置
$ export KERNEL=kernel7
$ export INSTALL_MOD_PATH=~/rpi-kernel/rt-kernel
$ export INSTALL_DTBS_PATH=~/rpi-kernel/rt-kernel
$ cd ~/rpi-kernel/linux/
$ make bcmrpi_defconfig
6.检查修改配置
$ sudo yum install ncurses-devel
$ make menuconfig
启用CONFIG_PREEMPT_RT_FULL:Kernel Features → Preemption Model (Fully Preemptible Kernel (RT)) → Fully Preemptible Kernel (RT)
启用Enable HIGH_RES_TIMERS: General setup → Timers subsystem → High Resolution Timer Support
设置CONFIG_HZ为1000Hz: Kernel Features → Timer frequency = 1000 Hz
*如果找不到该CONFIG_PREEMPT_RT_FULL选项,则说明内核库没有切换分支,仍在master分支上。
*CONFIG_HZ默认情况下设置为100 Hz。如上文所述,如果需要较低的延迟,可以将其更改为1000Hz。选择1000 Hz而不是100 Hz将加快调度间隔,并且由于延迟会降低,因此响应速度会更快。IRQ的调度间隔也减少了。
7.编译内核
$ sudo yum install glibc.i686
$ yum whatprovides libstdc++.so.6
$ sudo yum install libstdc++-4.8.5-39.el7.i686
$ sudo yum install zlib-1.2.7-18.el7.i686
$ make -j4 zImage
$ make -j4 modules
$ make -j4 dtbs
$ make -j4 modules_install
$ make -j4 dtbs_install
$ mkdir $INSTALL_MOD_PATH/boot
$ ./scripts/mkknlimg ./arch/arm/boot/zImage $INSTALL_MOD_PATH/boot/$KERNEL.img
8.编译完成,迁移内核
$ cd $INSTALL_MOD_PATH
$ tar czf ../rt-kernel.tgz *
通过ssh协议将压缩文件迁移至tmp文件夹下
9.安装内核
$ cd tmp
$ tar xzf rt-kernel.tgz
$ cd boot
$ sudo cp -rd * /boot/
$ cd ../lib
$ sudo cp -dr * /lib/
$ cd ../overlays
$ sudo cp -d * /boot/overlays
$ cd ..
$ sudo cp -d bcm* /boot/
10.重新启动Raspberry Pi
检测内核是否正常运行
$ uname -r
4.14.52-rt34-v7+
- 上一篇: 乌班图MATE 16.04 LTS发布 支持树莓派
- 下一篇: 树莓派官方保护壳问世:小巧别致
猜你喜欢
- 2024-11-23 Raspberry Pi OS现上线64位镜像版本
- 2024-11-23 树莓派官方保护壳问世:小巧别致
- 2024-11-23 乌班图MATE 16.04 LTS发布 支持树莓派
- 2024-11-23 机器人梦系列-树莓派资源整理汇总
- 2024-11-23 要不要入手?5美元计算机 适于编程!
- 2024-11-23 使用树莓派让老打印机也能网络打印
- 2024-11-23 CrowPi2树莓派4学习套件评测第1部分–开箱和首次启动
- 2024-11-23 6步傻瓜式点击在树莓派上安好Win11
- 2024-11-23 树莓派安装Apache2遇到问题与解决方法
- 2024-11-23 使用树莓派做两轮自平衡车(二)——获取角度
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)