在 Linux 下“找 drivers 源码”通常有几种场景,下面按最常见需求给你系统说明。
lsmod
或查看某个设备:
lspci -k
lsusb -t
例如:
lspci -k | grep -A3 -i net
会显示类似:
Kernel driver in use: e1000e
Linux 所有 driver 都在:
linux/
└── drivers/
例如 e1000e:
drivers/net/ethernet/intel/e1000e/
git clone https://github.com/torvalds/linux.git
或指定版本:
git clone --depth 1 --branch v6.1 https://github.com/torvalds/linux.git
apt source linux-image-$(uname -r)
或:
sudo apt install linux-source
cd /usr/src/linux-source-*
grep -rl "e1000e" drivers/
find drivers -name Makefile | xargs grep e1000e
modinfo e1000e
输出中有:
filename: /lib/modules/.../e1000e.ko
drivers/net/
drivers/usb/
drivers/gpu/drm/
支持按函数、符号搜索,非常方便。
❌ 驱动不在 /lib/modules/*.ko 的“源码”里
✅ .ko 是编译结果,源码在内核 tree 的 drivers/
❌ 不是所有驱动都在内核
✅ 有些在:
你可以告诉我:
uname -a)我可以直接告诉你源码路径 + 关键文件 + 入口函数。