详细打印信息
[1961.522872] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
[ 1961.522880] in_atomic (): 1, irqs_disabled (): 0, non_block: 0, pid: 13778, name: trae-cn
[ 1961.522883] preempt_count: 1, expected: 0
[ 1961.522886] RCU nest depth: 0, expected: 0
现象:在GUI界面点击启动软件,没有任何响应
这条 sleeping function called from invalid context(spinlock_rt.c)是 PREEMPT_RT 实时内核的告警:某个驱动在原子上下文里调用了可睡眠锁,触发进程是 trae-cn(IDE)。这类告警本身一般不会直接"杀死"应用,软件点了没响应更可能是程序自身报错或已有实例卡住,建议按下面排查:
- 别从 GUI 点,改在终端手动启动软件,看真实报错(GUI 点击时 stdout/stderr 是看不到的,缺库、权限、显示环境问题一跑就现形):
/path/to/你的程序 # 或桌面图标对应的启动命令
- 确认进程是不是已经拉起来卡死了——上次实例残留时,再点图标不会有反应:
ps aux | grep 软件名
# 有残留就 kill 掉对应 pid 再启动
- 看内核完整日志,别只盯这一条,确认有没有 segfault / OOM 或其他驱动报错:
dmesg | tail -100
补充:论坛上有过一个类似案例(X5 RT 内核下电源管理驱动非法调用睡眠锁导致系统级卡死:https://forum.d-robotics.cc/t/topic/34463)。如果你这边终端手动启动也无响应、dmesg 里这条 BUG 反复刷并且伴随整机/SSH 卡死,那基本可以确定是内核驱动问题而非你的软件——这种情况请把镜像版本号和串口完整日志贴出来,方便推给内核团队定位是哪个驱动触发的。