Linux内核安装Xilinx CAN驱动遇依赖问题求助
解决方案:Xilinx CAN模块加载失败(未知符号/modprobe找不到)
1. 缺失CAN核心依赖模块
你遇到的未知符号均为CAN子系统的核心API,说明编译内核时CAN核心模块未勾选或未编译。需在menuconfig中确保以下选项开启:
CONFIG_CAN(CAN总线基础支持,必须开启,可设为模块m或内置y)CONFIG_CAN_DEV(CAN设备驱动核心,xilinx_can的直接依赖)CONFIG_CAN_RAW(RAW CAN协议支持,可选但为常用功能)
进入menuconfig的路径:Device Drivers -> CAN bus subsystem support,将上述选项至少设置为m(编译为模块)或y(编译进内核)。
2. 内核模块未完成系统级安装
modprobe提示找不到模块,是因为编译生成的xilinx_can.ko未复制到系统模块目录/lib/modules/6.6.23-v8-16k+/。正确安装步骤:
- 内核编译完成后,执行
make modules_install,自动将所有编译好的模块复制到对应内核版本的系统目录 - 执行
depmod -a,更新模块依赖数据库,让modprobe能识别新模块
3. 验证内核版本一致性
若运行内核与编译模块的内核源码版本/配置不一致,也会触发符号错误。用uname -r确认当前运行内核版本,对比编译时.config文件中的CONFIG_LOCALVERSION字段,确保完全匹配。
4. 临时手动加载依赖(仅测试用)
若不想重新编译内核,可先手动加载CAN核心模块(前提是这些模块已编译生成):
insmod ./can.ko insmod ./can-dev.ko insmod ./xilinx_can.ko
需按依赖顺序加载核心模块,再加载xilinx_can,但此为临时方案,建议优先完成系统级安装。
内容的提问来源于stack exchange,提问作者tuatara
相关产品推荐
相关产品推荐

