【发布时间】:2013-09-27 02:09:14
【问题描述】:
我正在修改内核源代码 (/linux/net/mac80211/mesh_hwmp.c) 以向路由帧添加一些签名验证。修改源代码后,是否需要重新编译安装内核才能生效?
以下是我遵循的步骤:
从
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git下载内核下载后,从无线测试
$ cp /boot/config- `uname-r` ./.config987654322@的/boot目录下复制当前配置Ran
make menuconfig并选择了以下功能: 网络 -> 无线 -> 通用 IEEE 802.11 网络堆栈 (mac80211)使用
fakeroot make-kpkg - initrd kernel_image kernel_headers构建它构建内核后,使用命令安装创建的 .deb 包(核心及其头文件)
$ sudo dpkg-i linux-*.deb是否重新启动了系统
如果我对代码 (/net/mac80211/mesh_hwmp.c) 所做的每一次更改都必须进行此操作,那么这是一个耗时的过程。我不确定我是否过度构建内核。如果我只在 mac80211 目录中运行 Makefile 就足够了吗?或者,无论如何我都必须经历这个过程。
【问题讨论】:
-
你是如何配置你的内核的?对于哪个分布?你在用
make-kpkg吗?您是否将 mac80211 驱动程序作为模块加载? -
我在帖子中添加了一些关于我所做的事情的信息。我正在使用现有的 mac80211 驱动程序,但只是对源代码进行了一些更改,以向路由请求和路由回复添加一些身份验证。我使用的是 Ubuntu 12.04 (x86)。
-
debian 软件包构建可能会强制完全重建,而调用 top-level 内核 Makefile 通常不会。但是你必须手动安装结果。如果您只是修改一个模块,您可以使用 make modules 目标并可能在不重新启动的情况下尝试新模块,但在大多数情况下仍应使用顶级 Makefile。
-
我正在使用 linux 内核源“无线测试”。我想查看调试消息,因此我在 menuconfig 中启用了必要的 mac80211 调试设置。在那之后,我做了
make-kpkg跟随dpkg -i linux-*.deb。但是,我仍然没有看到调试消息。这里有什么我明显遗漏的东西吗?
标签: linux build compilation kernel