当前位置: 首页 > news >正文

ROS2导航系统(Jetson Orin NX)-第一章-底盘松灵Ranger Mini V3.0 gs_usb

一、问题背景

  • 硬件:Jetson Orin NX (JetPack 6.x, 内核 5.15.148-tegra)

  • 设备:USB-CAN 适配器 (ID 1d50:606f)

  • 问题:系统内核默认不包含gs_usb驱动,需要手动编译

二、编译gs_usb模块

2.0 克隆工具仓库并运行下载脚本

cd ~ git clone https://github.com/jetsonhacks/jetson-orin-kernel-builder.git cd jetson-orin-kernel-builder/scripts ./get_kernel_sources.sh

2.1 进入内核源码目录并配置gs_usb

# 将内核源码复制到用户目录,这样就不需要 sudo 了 cp -r /usr/src/kernel/kernel-jammy-src ~/kernel_build_src # 进入源码目录 cd ~/kernel_build_src # 从当前运行的内核导出配置(保证配置与系统一致) zcat /proc/config.gz > .config # 更新配置到当前内核版本 make olddefconfig # 启用 gs_usb 模块(设置为模块,用 m 表示) scripts/config --module CONFIG_CAN_GS_USB # 验证配置是否生效(应该输出 CONFIG_CAN_GS_USB=m) grep CONFIG_CAN_GS_USB .config

2.2 编译gs_usb模块

# 准备编译环境(生成必要的头文件) make modules_prepare # 只编译 USB CAN 目录下的模块(节省时间) make M=drivers/net/can/usb modules

2.3 编译成功标志

# 检查编译出的模块文件 ls -la ~/kernel_build_src/drivers/net/can/usb/gs_usb.ko

输出:gs_usb.ko文件存在

三、安装和加载驱动

# 创建 USB CAN 驱动目录(如果不存在) sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/net/can/usb/ # 复制生成的 .ko 文件到系统模块目录 sudo cp drivers/net/can/usb/gs_usb.ko /lib/modules/$(uname -r)/kernel/drivers/net/can/usb/ # 更新模块依赖关系 sudo depmod # 加载驱动模块 sudo modprobe gs_usb # 验证模块是否加载成功(应该看到 gs_usb) lsmod | grep gs_usb

输出:

gs_usb 24576 0
can_dev 36864 2 mttcan,gs_usb

四、配置 CAN 接口

4.1 查看接口

ip link show | grep can

输出:

2: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10
link/can
9: can1: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10
link/can

系统自带的 CAN 控制器显示为can0

USB-CAN 适配器显示为can1(或can0,取决于硬件)

4.2 启用并配置接口

# 启用 can1(根据实际接口调整) sudo ip link set can1 up type can bitrate 500000 # 验证状态 ip link show can1

输出:state up状态正常

9: can1: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can

4.3 测试通信

# 监听 CAN 数据 candump can1

输出:

can1 221 [8] 00 00 00 00 00 00 00 00
can1 281 [8] 00 00 00 00 00 00 00 00
can1 271 [8] 00 00 00 00 00 00 00 00
can1 241 [8] 00 7E 7E 7E 7E 7E 00 92
can1 251 [8] 00 00 00 04 FF FF FF FC
can1 252 [8] 00 00 00 00 00 00 00 01
can1 262 [8] 01 EB 00 28 1A 40 00 00
can1 253 [8] 00 00 00 01 FF FF FF FC

http://www.jsqmd.com/news/1213299/

相关文章:

  • Tiva TM4C定时器GPTM寄存器实战:从配置到中断与PWM应用
  • 经济研究LaTeX模板终极指南:5分钟搞定专业学术排版
  • 终极解决方案:Keyboard Chatter Blocker - 精准消除键盘连击的免费开源工具
  • 多智能体大语言模型实现一句话生成生产级网页的技术解析
  • Reloaded-II终极指南:5分钟掌握跨平台游戏模组加载框架
  • Adobe-GenP 3.0:三步激活Adobe全家桶的完整指南
  • 人形机器人26小时自主运行:系统集成、能源管理与异常处理全解析
  • Hypermesh如何恢复模型浏览器的树状结构
  • INNOVUS Floorplan核心技术解析与优化实践
  • 终极Unity资源解密方案:AssetStudio如何高效提取加密游戏资产
  • 如何用Telegraf解决企业级监控数据孤岛问题:插件化架构与3个实战场景
  • 2026年7月成都联想笔记本门店地址电话整理|键盘触控板与接口场景到店指南|设备登记要点 - 品牌售后
  • Mixxx免费DJ软件:如何用开源神器打造专业混音工作室
  • GPT-5.6性能解析:多场景效率提升与成本优化指南
  • 3分钟掌握思源宋体CN:开源中文设计字体的完全指南
  • 5个高效技巧:用GanttProject项目管理工具轻松掌控项目进度
  • Royal TSX 5步轻松实现完整中文界面本地化:终极免费汉化包指南
  • 如何快速掌握PCL2:5个步骤打造专属Minecraft启动体验
  • 三极管开关电路原理与设计实践指南
  • 亲身探访北京伯爵官方售后服务中心|全部地址与售后服务热线(2026年7月最新) - 亨得利钟表维修中心
  • 2026年7月成都苹果设备维修网点查询参考|iPhone屏幕触控与资料核对|设备登记要点 - 数码品牌推荐
  • LDO噪声抑制与降噪引脚优化设计
  • 如何在Windows上搭建高性能流媒体服务器?SRS实战指南帮你轻松搞定
  • WarcraftHelper:让经典魔兽争霸3在现代系统上焕发新生的完整解决方案
  • SELinux安全策略与神经网络优化器:复杂系统的约束与引导之道
  • 如何轻松安装Adobe插件:ZXPInstaller终极指南
  • 羊群行为(从众心理)的量化检测:六种方法识别市场过度拥挤信号
  • 从机械键盘连击到精准过滤:KeyboardChatterBlocker的3层智能防护体系
  • ApkTool反编译Android应用全流程详解
  • CoDeF:突破视频处理时序一致性的双场表示架构