在 Debian 系统里“调试驱动(drivers)”通常涉及 内核模块(kernel modules / .ko)、硬件驱动、以及 日志与内核接口。下面按常见场景给你一套实用调试思路。
Debian 的驱动一般是:
iwlwifi、nouveau、r8169)先确认:
lspci -k
lsusb -t
modinfo <驱动名>
lsmod | grep <驱动名>
手动加载/卸载:
sudo modprobe <驱动名>
sudo modprobe -r <驱动名>
查看依赖:
modprobe --show-depends <驱动名>
dmesg -T
dmesg -w
过滤某驱动:
dmesg | grep <驱动名>
sudo journalctl -k
sudo journalctl -k | grep <驱动名>
很多驱动支持 debug 参数:
modinfo <驱动名> | grep parm
示例(以 iwlwifi 为例):
sudo modprobe iwlwifi debug=0x40000
临时写参数(sysfs):
echo 1 | sudo tee /sys/module/<驱动名>/parameters/debug
Debian 内核通常支持 dynamic_debug:
sudo mount -t debugfs none /sys/kernel/debug
开启某文件调试:
echo 'file <driver_file.c> +p' | sudo tee /sys/kernel/debug/dynamic_debug/control
查看输出:
dmesg -w
ls /sys/class/
ls /sys/bus/
cat /proc/modules
例如网卡:
ethtool -i eth0
make KCFLAGS="-g"
printk(KERN_DEBUG "driver: debug info\n");
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
uname -r)/lib/firmware)lsmod 看是否有重复)ethtoollspci -vvusbmonperfbpftrace / eBPFstrace(用户态)如果你能告诉我:
我可以直接给你“对症”的调试命令。