我正在尝试了解USB Wi-Fi适配器的现有Linux Wi-Fi驱动程序。虽然我可以阅读C代码,但我也希望能够在驱动程序中的某些临界点插入调试/打印语句,以查看它在执行时的行为。在Linux系统上,修改驱动程序代码后,如何将其加载到内核中,以替换旧的驱动程序?有没有一种方法可以直接在旧驱动程序上“热插拔替换”它,或者比这更复杂?
我打算在一个可扩展的虚拟机中做这件事,所以我不担心弄乱原来的驱动程序,因为它很重要。
发布于 2012-07-31 18:25:35
如果驱动程序被编译为一个模块,所有你需要做的就是添加你的调试打印输出,编译模块,rmmod原始模块,insmod你的新模块,并像往常一样启动无线局域网连接。
发布于 2013-06-06 02:08:28
如果您想要动态测试和编辑:
lsmod要找到namermmod it的模块,请编辑obj-m := module_name.omake -C /usr/src/linux-headers-'uname -r' M='pwd' modulesinsmod module_name.ko如果它是一个设备模块,你可能想在/dev中对任何设备执行rm命令,然后执行一个mknod命令来重写它们(参见mknod ),最后执行chmod命令来纠正权限。
https://stackoverflow.com/questions/11735000
复制相似问题