在 Linux 系统中,“查找 drivers(驱动)”常见于几种场景:查找内核已加载的驱动、查找内核源码中的驱动代码、查找某个硬件对应的驱动模块、或者查找系统中可用的驱动文件。下面按不同需求给你一套实用方法。
lsmod
或
cat /proc/modules
lsmod | grep usbhid
modinfo usbhid
可以看到:
.ko 文件位置)Linux 驱动通常以内核模块(.ko)形式存在。
/lib/modules/$(uname -r)/kernel/drivers/
find /lib/modules/$(uname -r) -name "*usb*"
modinfo -n e1000
lspci -k
示例输出中会有:
Kernel driver in use: i915
Kernel modules: i915
lsusb -t
或
usb-devices
lsblk -d -o NAME,TRAN,KNAME,MODEL
如果你在看 Linux 内核源码:
drivers/
例如:
drivers/net/drivers/usb/drivers/gpu/drm/find drivers -name "*e1000*"
grep -r "DeviceName" drivers/
make tags
然后用 Vim / VS Code 跳转定义。
如果是 ARM / 嵌入式 Linux:
find arch/arm/boot/dts -name "*board*"
驱动匹配通常在:
compatible = "vendor,device";
sudo modprobe e1000 # 加载
sudo modprobe -r e1000 # 卸载
查找“我的网卡用了什么驱动”:
lspci -k | grep -A3 Ethernet
查找驱动文件位置:
modinfo -n <驱动名>
如果你能告诉我:
我可以给你更精确的命令或示例。