1. LinuxCNC安装与实时内核配置

LinuxCNC安装与实时内核配置 学习卡片

任务目标

在Ubuntu系统上完成LinuxCNC及其实时内核的安装与配置,最终通过模拟器(Simulator)验证系统可稳定运行。本案例以Ubuntu 22.04 LTS + LinuxCNC 2.9.x(官方预编译实时内核版本)为基准环境。

环境与依赖

  • 操作系统:Ubuntu 22.04 LTS(64位),需干净安装或可重装系统
  • 实时内核:linux-image-rt-amd64(Ubuntu官方PREEMPT_RT内核,LinuxCNC 2.9支持)
  • 软件源:LinuxCNC官方PPA(ppa:linuxcnc/ppa)
  • 硬件要求:x86_64 CPU,建议≥4GB内存;模拟器模式不要求并行端口或运动控制硬件

安装步骤

以下命令在终端中依次执行。实时内核与LinuxCNC必须来自同一软件源体系,避免版本冲突。

# 1. 更新系统并安装实时内核
sudo apt update
sudo apt install linux-image-rt-amd64

# 2. 重启并选择实时内核启动
sudo reboot
# 重启后执行 uname -r 确认内核包含 -rt 标识

# 3. 添加LinuxCNC官方PPA并安装
sudo add-apt-repository ppa:linuxcnc/ppa
sudo apt update
sudo apt install linuxcnc-uspace

# 4. 将用户加入必要组(避免权限问题)
sudo adduser $USER dialout
sudo adduser $USER kmem

安装完成后注销并重新登录,使组权限生效。

实时性验证

使用LinuxCNC自带的实时性测试工具,确认内核满足运动控制所需的硬实时要求:

# 运行实时性测试(需在终端中保持运行至少5分钟)
latency-test

# 观察指标:
# - Base thread:最大值应 < 50微秒(通常 < 20微秒)
# - Servo thread:最大值应 < 100微秒
# - 若出现持续尖峰或超限,说明实时内核未正确加载或系统存在干扰源

判定标准:测试运行5分钟以上,两个线程的最大抖动值均未超过上述阈值,且无持续周期性尖峰,即视为实时性合格。

模拟器运行验证

模拟器模式不连接实际硬件,用于验证LinuxCNC软件栈完整性:

# 启动步进电机模拟器配置
linuxcnc /usr/share/linuxcnc/examples/sim.axis.ini

# 预期结果:
# - LinuxCNC主界面正常打开,无报错弹窗
# - Axis界面显示X/Y/Z三轴坐标
# - 在MDI命令行输入 "G0 X10 Y10" 并回车,各轴坐标应平滑移动至目标位置
# - 坐标显示与运动命令一致,无卡顿或异常退出

若模拟器能完成上述操作并稳定运行10分钟不崩溃,即判定安装配置成功。

常见问题排查

  • 实时内核未生效:执行 uname -r 检查输出是否包含 -rt 后缀;若无,需在GRUB启动菜单中手动选择实时内核条目。
  • latency-test 报错 "Cannot lock memory":确认已注销并重新登录,且当前用户属于 kmem 组。
  • 模拟器启动失败:检查 ~/.linuxcnc/linuxcnc.log 日志文件,常见原因为显卡驱动或音频服务干扰实时线程,可在BIOS中禁用板载声卡后重试。

以上步骤完成后,系统即具备运行LinuxCNC模拟器的完整实时环境。后续案例将基于此环境进行运动控制配置与调试。