修改/重新加载现有Linux驱动程序的最快方法
我正在尝试了解USB Wi-Fi适配器的现有Linux Wi-Fi驱动程序。虽然我可以阅读C代码,但我也希望能够在驱动程序中的某些关键点插入调试/打印语句,以查看它在执行时的行为。在Linux系统上,修改驱动程序代码后,如何将其加载到内核中,以替换旧的驱动程序?有没有一种方法可以直接“热插拔替代”旧的驱动程序,或者比这更复杂修改/重新加载现有Linux驱动程序的最快方法,linux,driver,Linux,Driver,我正在尝试了解USB Wi-Fi适配器的现有Linux Wi-Fi驱动程序。虽然我可以阅读C代码,但我也希望能够在驱动程序中的某些关键点插入调试/打印语句,以查看它在执行时的行为。在Linux系统上,修改驱动程序代码后,如何将其加载到内核中,以替换旧的驱动程序?有没有一种方法可以直接“热插拔替代”旧的驱动程序,或者比这更复杂 我打算在一个可消耗的虚拟机中执行此操作,因此我不担心弄乱原始驱动程序,因为它很重要 如果驱动程序被编译为一个模块,您只需添加调试打印输出,编译模块,rmmod原始模块,in
我打算在一个可消耗的虚拟机中执行此操作,因此我不担心弄乱原始驱动程序,因为它很重要 如果驱动程序被编译为一个模块,您只需添加调试打印输出,编译模块,
rmmod
原始模块,insmod
您的新模块,并像往常一样启动WLAN连接。如果您想动态测试和编辑:
查找模块名称lsmod
itrmmod
- 编辑源
- 生成文件:
obj-m:=module\u name.o
- 重新编译(在Ubuntu上):
make-C/usr/src/linux头文件-'uname-r'M='pwd'模块
insmod模块_name.ko
mknod
以重新生成它们(请参见mknod man),最后执行chmod
以更正权限