Kali Linux的可定制性一直扩展到Linux内核。
根据您的要求,您可能希望添加库存Kali Linux内核中未包含的驱动程序,补丁或内核功能。以下指南将介绍如何快速修改和重新编译Kali Linux内核以满足您的需求。请注意,默认情况下,Kali Linux内核中已经存在全局无线注入补丁。
安装构建依赖项
首先安装所有用于重新编译内核的构建依赖项。
1 | apt install build-essential libncurses5-dev fakeroot unxz |
下载 Kali Linux 内核源代码
本节的其余部分重点介绍4.9版本的Linux内核,但是示例当然可以根据所需的特定内核版本进行调整。我们假设已安装linux-source-4.9二进制软件包。请注意,我们安装了包含上游源代码的二进制软件包,但没有检索名为linux的Kali源代码软件包。
1 | apt install linux-source-4.9 |
请注意,该软件包包含/usr/src/linux-source-4.9.tar.xz,这是内核源代码的压缩存档。您必须将这些文件解压缩到新目录中(而不是直接在/ usr / src /下,因为不需要特殊权限来编译Linux内核)。相反,〜/ kernel /更合适。
1 | mkdir ~/kernel; cd ~/kernel |
配置内核
重新编译内核的最新版本(可能带有附加补丁程序)时,配置很可能会尽可能与Kali提出的配置保持接近。在这种情况下,将/ boot / config-version文件(版本是当前使用的内核的版本,可以通过uname -r命令找到)复制到本地,而不是从头开始重新配置所有内容。包含内核源代码的目录中的配置文件。
1 | cp /boot/config-4.9.0-kali1-amd64 ~/kernel/linux-source-4.9/.config |
如果需要进行更改,或者决定从头开始重新配置所有内容,则必须花时间配置内核。这可以通过调用make menuconfig命令来完成。
1 | make menuconfig |
使用menuconfig设置内核构建的详细信息不在本指南的范围之内。有关在Linux.org 上配置内核构建的详细教程。
建立内核
准备好内核配置后,一个简单的make deb-pkg将生成多达5个Debian软件包:包含内核映像和相关模块的linux-image- *版本* linux-headers- **version,其中包含构建所需的头文件。外部模块linux-firmware-image- *version,其中包含一些驱动程序所需的固件文件(当从Debian或Kali提供的内核源进行构建时,可能会缺少此软件包),linux-image- **version -dbg,其中包含内核映像及其模块和linux-libc-dev*的调试符号,其中包含与某些用户空间库(例如GNU glibc)相关的标头。Linux内核映像是一个大型构建,需要花费一些时间才能完成。
1 | make clean |
安装修改后的内核
构建成功完成后,您可以继续安装新的自定义内核并重新引导系统。请注意,特定的内核版本号会有所不同-在我们的示例中,是在Kali 2016.2系统上完成的,为4.9.2。根据要构建的当前内核版本,您将需要相应地调整命令。
1 | dpkg -i ../linux-image-4.9.0-kali1-custom_4.9.2-1_amd64.deb |
系统重新引导后,新内核应已运行。如果出现问题并且内核无法成功引导,您仍然可以使用GrUB菜单从原始的原始Kali内核引导并解决问题。