“Linux 驱动找不到”是一个很常见但原因很多的问题。下面我从常见原因 → 排查思路 → 示例给你系统梳理一下,方便你对照。
N(未选中)M(模块),但:
make modules_installmodprobe✅ 检查:
zcat /proc/config.gz | grep <驱动名>
# 或
grep <驱动名> .config
即使驱动存在,也可能没自动加载。
✅ 查看是否已加载:
lsmod | grep xxx
✅ 手动加载:
modprobe xxx
# 或
insmod xxx.ko
ARM / 嵌入式 Linux 常见问题
compatible 字符串不匹配✅ 检查:
ls /sys/bus/platform/devices/
cat /sys/bus/platform/devices/xxx/uevent
✅ dmesg:
dmesg | grep -i "probe\|compatible"
vendor:idcompatible不匹配时:
✅ 查看:
uname -a
modinfo xxx.ko
模块通常应在:
/lib/modules/$(uname -r)/kernel/
✅ 更新依赖:
depmod -a
✅ 更新:
update-initramfs -u
1. uname -r
2. lsmod | grep 驱动
3. modprobe 驱动
4. dmesg | tail
5. ls /sys/bus/*/devices/ | grep 设备
6. 查设备树 / udev
如果你愿意,我可以更精确判断:
你可以直接贴:
dmesg | tail -20
lsmod
我可以帮你一步步定位。