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

如何在Mendel Linux中启用CAN驱动适配Coral开发板

Coral Dev Board Mendel系统CAN驱动编译不生效解决方案

配置不生效是两个核心问题导致的:一是改了错误的defconfig文件,二是defconfig里混入了其他平台的CAN驱动,导致配置阶段CAN子系统被自动屏蔽。

修正配置路径

  • 不要修改内核源码根目录下的通用defconfig,Coral Dev Board对应的Mendel系统使用的是平台专属配置文件:
    • 内核版本4.14的旧版Mendel路径为linux-imx/arch/arm64/configs/imx_v8_defconfig
    • 内核版本4.19+的新版Mendel路径为linux-imx/arch/arm64/configs/garden_defconfig
  • 把你之前添加的CAN配置项里无关平台的驱动删掉:CONFIG_CAN_AT91(Atmel平台)、CONFIG_CAN_RCAR(瑞萨平台)、CONFIG_CAN_XILINXCAN(赛灵思平台)这三个驱动在i.MX8M平台上硬件依赖不满足,会导致内核配置时直接禁用整个CAN子树,最终保留的有效配置如下:
CONFIG_CAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_BCM=y
CONFIG_CAN_DEV=y
CONFIG_CAN_MCP251X=y
CONFIG_CAN_GS_USB=y

校验Kconfig配置

  • 你补充的source "drivers/net/can/Kconfig"需要添加在linux-imx/drivers/net/Kconfig文件的最末尾,不要插入到现有配置块中间。
  • 补完后在内核源码根目录执行配置菜单命令:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
  • 依次进入Device Drivers -> Network device support目录,确认能看到CAN bus subsystem support选项,手动勾选你需要的CAN驱动后保存配置,再执行savedefconfig命令生成正确的配置文件,覆盖回之前的平台专属defconfig路径,避免手动编写配置出现语法错误。

编译与验证

  • 编译前先执行make ARCH=arm64 mrproper清理之前错误配置生成的中间缓存,再使用Mendel官方提供的build_kernel.sh脚本编译内核,不要直接裸跑make指令,避免编译配置不匹配。
  • 如果驱动选择编译为模块(配置项选m),编译完成后需要将对应.ko文件拷贝到开发板/lib/modules/$(uname -r)目录下,执行depmod -a更新模块依赖后重启;如果选择直接编译进内核(配置项选y),直接打包镜像烧录即可。
  • 开发板启动后插入CAN硬件,执行dmesg | grep can,能看到对应驱动加载日志即为成功,后续可通过ip link命令配置CAN总线参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:48:22