1

我正在尝试了解 USB Wi-Fi 适配器的现有 Linux Wi-Fi 驱动程序。虽然我可以阅读 C 代码,但我还希望能够在驱动程序的某些关键位置插入调试/打印语句,以查看它在执行时的行为。在 Linux 系统上,修改驱动程序代码后,如何将其加载到内核中以替换旧驱动程序?有没有办法直接在旧驱动程序上“热插拔替代”它,还是比这更复杂?

我打算在一个消耗性虚拟机中执行此操作,所以我不担心会弄乱原始驱动程序,因为它很重要。

4

2 回答 2

1

如果驱动程序被编译为模块,您需要做的就是添加调试打印输出,编译模块、rmmod原始模块、insmod新模块并像往常一样启动 WLAN 连接。

于 2012-07-31T10:25:35.277 回答
1

如果您想即时测试和编辑:

  • lsmod查找模块名称
  • rmmod
  • 编辑源
  • Make sur 你有一个 Makefile :obj-m := module_name.o
  • 重新编译(在 Ubuntu 上):make -C /usr/src/linux-headers-'uname -r' M='pwd' modules
  • insmod module_name.ko

如果它是一个设备模块,您可能想要 rm /dev 中的任何设备,然后mknod重新制作它们(参见 mknod man),最后chmod更正权限。

于 2013-06-05T18:08:27.983 回答