我正在尝试了解用于USB Wi-Fi适配器的现有Linux Wi-Fi驱动程序。虽然我可以读取C代码,但我还希望能够在驱动程序的某些关键位置插入调试/打印语句,以查看它在执行时的行为方式。在Linux系统上,在修改驱动程序代码之后,如何以一种替换旧驱动程序的方式将其加载到内核中?有没有办法将“热插拔替代”直接覆盖旧驱动程序,还是比它更复杂?
我打算在一个可扩展的虚拟机中执行此操作,因此我并不担心弄乱原始驱动程序,因为它的重要性。
答案 0 :(得分:1)
如果将驱动程序编译为模块,您只需添加调试打印输出,编译模块,rmmod
原始模块,insmod
新模块并启动WLAN像往常一样连接。
答案 1 :(得分:0)
如果您想即时测试和编辑:
lsmod
找到模块名称rmmod
它obj-m := module_name.o
make -C /usr/src/linux-headers-'uname -r' M='pwd' modules
insmod module_name.ko
如果它是设备模块,您可能想要在/ dev中使用任何设备,然后执行mknod
重新创建它们(请参阅mknod man),最后再chmod
来更正权限。