1

我正在修改内核源代码(/linux/net/mac80211/mesh_hwmp.c)以向路由帧添加一些签名身份验证。修改源代码后,是否必须重新构建和安装内核才能使更改生效?

以下是我遵循的步骤:

  1. 从下载内核git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

  2. 下载后,在wireless-testing的/boot目录下复制当前配置$ cp /boot/config- `uname-r` ./.config

  3. Ranmake menuconfig并选择了以下功能:网络->无线->通用IEEE 802.11网络堆栈(mac80211)

  4. 使用它构建它fakeroot make-kpkg - initrd kernel_image kernel_headers

  5. 构建内核后,使用命令安装创建的 .deb 包(核心及其头文件) $ sudo dpkg-i linux-*.deb

  6. 是否重新启动了系统

如果我对代码 (/net/mac80211/mesh_hwmp.c) 所做的每一次更改都必须进行此操作,那么这是一个耗时的过程。我不确定我是否过度构建内核。如果我只在 mac80211 目录中运行 Makefile 就足够了吗?或者,无论如何我都必须经历这个过程。

4

1 回答 1

0

当前配置是否来自/boot发行版默认配置?如果是这样,它可能包含成百上千个您永远不需要的模块。这样做一次,安装并启动内核。然后,确保您加载了您感兴趣的模块(例如启用 wifi、插入 USB 设备)并make localmodconfig在您的内核源代码树中运行(详情请参阅make help)。根据需要启用更多配置,并将其用于开发。

您可能还会发现sudo make INSTALL_MOD_STRIP=1 modules_install install在许多发行版上安装内核都是正确的,并且您将避免与创建包相关的任何问题,强制重建。缺点是您必须手动/boot/lib/modules.

于 2015-12-30T12:34:18.447 回答