You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22上lcm-spy无法显示LCM发布消息的排查求助

Ubuntu 22上lcm-spy无法显示LCM消息的排查思路
  • 检查网络多播配置
    Ubuntu 22默认网络配置可能禁用了多播,而LCM默认依赖多播传输消息。执行ip link show查看网卡状态,确认MULTICAST标记已启用;若未启用,运行sudo ip link set dev <网卡名> multicast on开启。同时检查防火墙规则:执行sudo ufw allow 64500/udp(LCM默认端口为64500),或临时关闭ufw测试:sudo ufw disable,验证是否能接收消息。

  • 验证LCM版本差异
    执行lcm-spy --version对比Ubuntu 18和22上的LCM版本,若版本差异较大,可能存在兼容性问题。尝试从源码编译安装与Ubuntu 18一致的LCM版本,替换apt安装的版本后再测试。

  • 检查Java环境兼容性
    lcm-spy依赖Java环境,Ubuntu 22默认Java版本为OpenJDK 17,而Ubuntu 18通常为OpenJDK 8,版本差异可能导致异常。安装OpenJDK 8并切换默认版本:

    sudo apt install openjdk-8-jdk
    sudo update-alternatives --config java
    

    选择OpenJDK 8后重新运行lcm-spy。

  • 确认LCM消息类型加载
    运行lcm-spy -v( verbose模式),查看终端输出是否有消息类加载报错(如找不到类、版本不兼容)。若存在此类提示,重新编译消息类并确保classpath指向的Jar文件与当前Java版本匹配。

  • 测试基础LCM通信
    用LCM自带工具排查底层通信是否正常:

    1. 终端运行lcm-logger记录所有LCM消息
    2. 另一个终端发布测试消息(可用lcm-gen生成的工具或自定义简单发布程序)
    3. 停止日志后查看生成的日志文件:若日志有消息,说明问题出在lcm-spy的Java/GUI层;若日志无消息,说明底层网络或LCM安装存在问题。
  • 检查LCM配置文件
    查看~/.lcm/config配置文件,确认多播地址、端口与Ubuntu 18一致;若无配置文件,手动创建指定默认参数:

    [network]
    udp_multiaddr = 239.255.76.67
    udp_port = 64500
    
  • 验证用户权限
    尝试用sudo lcm-spy运行,若能正常接收消息,说明普通用户缺乏网络多播权限。可调整Java程序网络权限,或修改用户的网络组权限。

内容的提问来源于stack exchange,提问作者dk523

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:02:08