1. LinuxCNC环境搭建与实时内核配置

LinuxCNC环境搭建与实时内核配置 学习卡片

任务目标

在Ubuntu 20.04/22.04系统上完成LinuxCNC的安装,并配置RTAI实时内核,最终通过启动模拟器验证环境可用。本案例覆盖从内核安装到模拟器启动的完整闭环。

环境与依赖

  • Ubuntu 20.04 LTS(64位)或Ubuntu 22.04 LTS
  • 至少4GB内存、20GB可用磁盘空间
  • BIOS中关闭Secure Boot(RTAI内核需要加载未签名模块)
  • 网络连接(用于下载内核与软件包)

实现步骤

1. 安装RTAI实时内核

LinuxCNC的实时控制依赖RTAI或PREEMPT_RT内核。本案例使用RTAI内核,因其与LinuxCNC的集成最成熟。Ubuntu 20.04使用linux-image-4.19.0-rt-amd64,Ubuntu 22.04使用linux-image-5.15.0-rt-amd64。

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装RTAI内核(Ubuntu 20.04)
sudo apt install linux-image-4.19.0-rt-amd64 linux-headers-4.19.0-rt-amd64

# 若为Ubuntu 22.04,改用:
# sudo apt install linux-image-5.15.0-rt-amd64 linux-headers-5.15.0-rt-amd64

# 重启并选择RTAI内核启动
sudo reboot

重启后在GRUB菜单中选择“Advanced options for Ubuntu”,进入带-rt后缀的内核。登录后验证内核版本:

uname -r
# 预期输出包含 -rt- 字样,例如 4.19.0-rt-amd64

2. 安装LinuxCNC

LinuxCNC官方提供预编译软件源,安装后可直接使用模拟器功能,无需额外编译。

# 添加LinuxCNC软件源(Ubuntu 20.04)
sudo add-apt-repository ppa:linuxcnc/ppa
sudo apt update
sudo apt install linuxcnc-uspace

# Ubuntu 22.04用户请使用:
# sudo add-apt-repository ppa:linuxcnc/ppa-daily
# sudo apt update
# sudo apt install linuxcnc-uspace

安装完成后,LinuxCNC的可执行文件位于/usr/bin/linuxcnc,配置文件示例位于/usr/share/doc/linuxcnc/examples/。

3. 验证实时性配置

确认RTAI内核的实时模块已正确加载,这是模拟器能否以实时模式运行的前提。

# 检查RTAI模块是否加载
lsmod | grep rtai
# 预期输出包含 rtai_hal、rtai_sched 等模块

# 若模块未加载,手动加载:
sudo modprobe rtai_hal
sudo modprobe rtai_sched

4. 启动模拟器验证

LinuxCNC自带模拟器配置(模拟步进电机驱动),无需连接真实硬件即可验证环境完整性。

# 复制示例配置到用户目录
cp -r /usr/share/doc/linuxcnc/examples/sim.axis ~/sim.axis

# 启动模拟器
cd ~/sim.axis
linuxcnc sim.axis.ini

启动后应出现LinuxCNC主界面,包含坐标显示、程序编辑区和手动控制按钮。在命令行输入MDI命令G0 X10 Y10并执行,观察坐标显示是否更新为X=10.000 Y=10.000。

验证方法与判定标准

  • 内核验证:uname -r输出包含-rt,且lsmod | grep rtai能看到rtai_hal模块。
  • 模拟器启动:LinuxCNC界面正常显示,无报错弹窗。
  • 运动指令执行:MDI输入G0 X10 Y10后,坐标显示变为X=10.000 Y=10.000,且无跟随误差报警。
  • 实时状态确认:在LinuxCNC界面点击“显示”→“状态”,确认“实时线程”状态为“运行中”,且CPU占用显示为“0”(表示未超时)。

常见问题

  • 启动时提示“rtapi: no rtai”:说明RTAI模块未加载,执行sudo modprobe rtai_hal后重试。
  • 模拟器界面卡死:检查BIOS中Secure Boot是否关闭,未关闭会导致实时模块加载失败。
  • 坐标不运动:确认在MDI模式下输入,且未按下紧急停止按钮(界面右上角红色按钮需弹出状态)。

完成以上步骤并观察到坐标更新,即证明LinuxCNC环境搭建成功,实时内核配置正确,模拟器可正常运行。