重建内核模块(驱动程序)并进行调试

重建内核模块(驱动程序)并进行调试

过去一天,我一直在尝试重建启用了调试功能的 iwlwifi 模块。重建方法是使用 .config 参数 CONFIG_IWLWIFI_DEBUG=y 进行构建。如果我要构建新内核,这将很容易,但我想继续使用已安装的 ubuntu 内核。目前,我并不关心安装模块。我只想查看 .ko 文件的构建情况,对其进行 insmod 操作,并检查 /sys/modules/iwlwifi/parameters/debug,如果模块是为调试而构建的,则该文件应该存在。ubuntu 官方的执行方法是什么?

到目前为止,这就是我正在做的事情:

我的内核是 4.15.0-43-generic,头文件已经安装在 /usr/src/linux-headers-4.15.0-43-generic

  1. 使用 apt-get 安装 /usr/src/linux-source-4.15.0 并将其解压到 ~/

  2. 在 ~/linux-4.15.0/.config 和 /usr/src/linux-headers-4.15.0-43-generic/.config 中设置 CONFIG_IWLWIFI_DEBUG=y 因为我不确定会使用哪一个。

  3. 在 ~/linux-4.15.0/drivers/net/.../iwlwifi 中,我运行 make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

  4. ko 模块已构建,但它们不支持调试

答案1

事实证明我需要在 headers 目录中运行 make 脚本。它失败退出,但我猜它会先对构建参数执行所需的操作。

相关内容