我正在修改内核源代码(/linux/net/mac80211/mesh_hwmp.c),为路由帧添加一些签名认证。在修改源代码之后,我是否必须再次构建并安装内核才能使更改生效?Linux内核源代码修改和重新编译
下面是我遵循的步骤:
下载内核从
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
下载后,在/ boot目录复制当前配置的无线测试
$ cp /boot/config- `uname-r` ./.config
Ran
make menuconfig
并选择了以下功能: 网络 - >无线 - >通用IEEE 802.11网络协议栈(mac8 0211)它使用
fakeroot make-kpkg - initrd kernel_image kernel_headers
构建内核建好后,安装使用命令
$ sudo dpkg-i linux-*.deb
难道重启系统创建的.deb软件包(核心和它的头)
这是一个耗时的过程,如果我必须对代码进行每次更改(/ net/mac80211/me sh_hwmp.c)。我不确定是否通过再次构建内核而过度使用。如果我只是在mac80211目录下运行Makefile(s),这足够了吗?或者,无论如何我都必须经历这个过程。
你是如何配置内核的?为什么分配?你使用'make-kpkg'吗?您是否将* mac80211 *驱动程序作为模块加载? –
我已经添加了一些关于我对我的帖子所做的操作的信息。我正在使用现有的mac80211驱动程序,但仅对源代码进行了一些更改,以便为路由请求和路由回复添加一些身份验证。我使用的是Ubuntu 12.04(x86)。 –
Debian软件包构建可能会强制执行完全重建,而调用**顶层**内核Makefile通常不会。但是,你必须手动安装结果。如果您只修改模块,则可以使用make模块目标,并可能在不重新引导的情况下尝试新模块,但在大多数情况下仍应使用顶层Makefile。 –