# Ubuntu RT内核下libfranka通信约束违规报错及网卡排查

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-07-23-libfranka-207
> 频道：pitfalls | 更新日期：2026-07-23 | 标签：auto, github-issue, libfranka
> 核心摘要：Ubuntu 24.04 RT内核运行libfranka频繁触发communication_constraints_violation，更换USB-C转网口或排查PCIe/驱动问题可解决。

# Ubuntu RT内核下libfranka通信约束违规报错及网卡排查

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[`communication_constraints_violation` with Ubuntu PREEMPT_RT kernel](https://github.com/frankarobotics/libfranka/issues/207)（GitHub frankaemika/libfranka #207）

**状态**：有绕过办法

## 问题

在Ubuntu 24.04搭配6.8.x-realtime内核运行libfranka 0.9.2时，机器人运动频繁被反射机制中止并报错`communication_constraints_violation`。时序日志显示`receiveRobotState`最大耗时近5ms且标准差超200us，远超1ms控制周期要求。

## 环境

libfranka 0.9.2；Ubuntu 24.04；内核6.8.1-1015-realtime或6.8.1-1031-realtime；网卡Realtek RTL8125 (r8169) 或 Aquantia AQC113 (atlantic)。

## 解决办法

1. 执行`ping <Franka_Control_IP>`测试网络延迟，若平均延迟持续大于1ms则判定为物理链路或驱动实时性问题。
2. 尝试将机器人连接从主板集成LAN口或PCIe独立网卡切换至USB-C转以太网适配器，验证是否因原网卡在RT内核下调度抖动导致丢包。
3. 检查`sudo dmesg`输出，若出现pcieport AER Correctable error或特定网卡模块（如atlantic、r8169）报错，需排查PCIe通道稳定性或更换兼容RT内核的网卡型号。
4. 对比XanMod等其他RT内核表现，若仅Ubuntu官方realtime内核复现该问题，建议暂时迁移至验证过的XanMod RT内核以规避底层调度差异。

讨论原作者：@christian-rauch 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub frankaemika/libfranka #207：`communication_constraints_violation` with Ubuntu PREEMPT_RT kernel](https://github.com/frankarobotics/libfranka/issues/207)