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

树莓派4B Ubuntu20.04下MCP2515 CAN扩展板无法运行问题咨询

树莓派4 Ubuntu 20.04 MCP2515 CAN扩展板识别失败问题解答

问题属性

这是树莓派4运行Ubuntu 20.04系统的已知通用问题,核心触发原因有两点:

  1. Ubuntu for 树莓派的启动配置文件路径和Raspbian不同,用户误改无效配置文件
  2. 默认系统镜像未预装SPI、CAN外设所需的额外内核模块,且SPI驱动加载时机早于时钟驱动初始化,导致dmesg返回-517探针延迟错误,模块加载失败

解决方案

按以下步骤操作即可修复:

  • 第一步:安装依赖内核模块包
    执行命令:
    sudo apt update && sudo apt install -y linux-modules-extra-raspi raspberrypi-kernel-headers
  • 第二步:修改正确的启动配置文件
    Ubuntu for 树莓派的有效启动配置文件为/boot/firmware/config.txt,先删除你之前在/boot/config.txt中添加的无效配置,再编辑/boot/firmware/config.txt,在文件末尾添加如下内容:
dtparam=spi=on
dtoverlay=spi0-hw-cs
dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25

注意:不需要手动添加dtoverlay=spi-bcm2835配置,Ubuntu内核已内置该驱动的加载逻辑,手动添加反而会触发加载顺序冲突

  • 第三步:配置内核模块开机自动加载
    编辑/etc/modules文件,在末尾添加两行内容:
spi-bcm2835
mcp251x
  • 第四步:重启验证配置
    执行sudo reboot重启系统,重启后先执行lsmod | grep spi,如果能看到spi_bcm2835模块输出,说明SPI驱动加载正常;再执行ip link show can0,如果返回can0接口信息,说明CAN扩展板已经识别成功。
  • 第五步:启用CAN接口(可选)
    如果需要启用can0接口使用,执行如下命令配置波特率并启用:
    sudo ip link set can0 up type can bitrate 500000
    波特率可根据你的CAN总线需求调整,常用值包括250000、500000、1000000
    配置完成后执行ifconfig can0即可看到正常的接口信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:45:03