“Linux drivers 失败”是一个比较宽泛的说法,通常指驱动加载失败、设备不工作、内核报错、编译失败或系统无法识别硬件。下面按常见原因 → 表现 → 解决思路给你一个系统性的总结。
原因
表现
insmod / modprobe 报错:Invalid module format
dmesg 中有:module verification failed
解决
uname -r
确认驱动是用同一内核头文件编译的:
apt install linux-headers-$(uname -r)
或重新编译:
make clean && make
原因
EXPORT_SYMBOL 但模块未加载表现
Unknown symbol in module
解决
modinfo your_driver.ko
查看依赖:
modprobe dependency_module
原因
表现
probe() 未执行ls /sys/bus/platform/devices/ 无设备解决
compatible = "vendor,device";
原因
表现
Key was rejected by service
解决
原因
检查
lspci
lsusb
dmesg | tail
常见错误
probe() 返回错误kmalloc 返回 NULL 未处理定位方法
dmesg
或打开调试:
#define DEBUG
uname -r
dmesg | tail -50
lsmod | grep your_driver
modinfo your_driver
lspci / lsusb
你可以直接告诉我:
dmesg 或 insmod 报错)我可以帮你逐行分析失败原因。