Kali Linux Revealed




Download 11,68 Mb.
Pdf ko'rish
bet139/174
Sana15.01.2024
Hajmi11,68 Mb.
#137314
1   ...   135   136   137   138   139   140   141   142   ...   174
Bog'liq
Kali-Linux-Revealed-2021-edition

The Debian Kernel
Handbook
The Debian kernel team maintains the
Debian Kernel Handbook
(also available in the
debian-kernel-handbook
package) with comprehensive documentation about most
kernel-related tasks and about how official Debian kernel packages are handled. This
is the first place you should look into if you need more information than what is
provided in this section.
è
https://kernel-team.pages.debian.net/kernel-handbook/
9.2.1. Introduction and Prerequisites
Unsurprisingly, Debian and Kali manage the kernel in the form of a package, which is not how ker-
nels have traditionally been compiled and installed. Since the kernel remains under the control of
the packaging system, it can then be removed cleanly, or deployed on several machines. Further-
more, the scripts associated with these packages automate the interaction with the bootloader
and the initrd generator.
The upstream Linux sources contain everything needed to build a Debian package of the kernel
but you still need to install the build-essential package to ensure that you have the tools required to
build a Debian package. Furthermore, the configuration step for the kernel requires the libncurses5-
dev package. Finally, the fakeroot package will enable creation of the Debian package without need-
ing administrative privileges.
apt install build-essential libncurses5-dev fakeroot
9.2.2. Getting the Sources
Since the Linux kernel sources are available as a package, you can retrieve them by installing the
linux-source-version package. The
apt-cache search ^linux-source
command should list the
latest kernel version packaged by Kali. Note that the source code contained in these packages
238
Kali Linux Revealed


does not correspond precisely with that
published by Linus Torvalds and the kernel developers
4
;
like all distributions, Debian and Kali apply a number of patches, which might (or might not) find
their way into the upstream version of Linux. These modifications include backports of fixes/fea-
tures/drivers from newer kernel versions, new features not yet (entirely) merged in the upstream
Linux tree, and sometimes even Debian or Kali-specific changes.
The remainder of this section focuses on the 4.9 version of the Linux kernel, but the examples can,
of course, be adapted to the particular version of the kernel that you want.
In this example, we assume that the linux-source-4.9 binary package has been installed. Note that
we install a binary package containing the upstream sources but do not retrieve the Kali source
package named linux.
apt install linux-source-4.9
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
bc libreadline7
Suggested packages:
libncurses-dev | ncurses-dev libqt4-dev
The following NEW packages will be installed:
bc libreadline7 linux-source-4.9
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 95.4 MB of archives.
After this operation, 95.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
[...]
ls /usr/src
linux-config-4.9
linux-patch-4.9-rt.patch.xz
linux-source-4.9.tar.xz
Notice that the package contains
/usr/src/linux-source-4.9.tar.xz
, a compressed archive of
the kernel sources. You must extract these files in a new directory (not directly under
/usr/src/
,
since there is no need for special permissions to compile a Linux kernel). Instead,
~/kernel/
is
more appropriate.
mkdir ~/kernel; cd ~/kernel
tar -xaf /usr/src/linux-source-4.9.tar.xz
9.2.3. Configuring the Kernel
The next step consists of configuring the kernel according to your needs. The exact procedure
depends on the goals.
4
https://www.kernel.org/
239
Chapter 9 — Advanced Usage


The kernel build depends on a kernel configuration file. In most cases, you will most likely keep
as close as possible to that proposed by Kali, which, like all Linux distributions, is installed in the
/boot
directory. In this case, rather than reconfiguring everything from scratch, it is sufficient to
make a copy of the
/boot/config-
version
file. The version should be the same as that version of
the kernel currently used, which can be found with the
uname -r
command. Place the copy into
a
.config
file in the directory containing the kernel sources.
cp /boot/config-4.9.0-kali1-amd64 ~/kernel/linux-source-4.9/.config
Alternatively, since the kernel provides default configurations in
arch/
arch
/configs/*_
defconfig
, you can put your selected configuration in place with a command like
make
x86_64_defconfig
(in the case of a 64-bit PC) or
make i386_defconfig
(in the case of a 32-bit
PC).
Unless you need to change the configuration, you can stop here and skip to section 
9.2.4
, “
Com-
piling and Building the Package
” [page 241]. If you need to make changes or if you decide to
reconfigure everything from scratch, you must take the time to configure your kernel. There are
various dedicated interfaces in the kernel source directory that can be used by calling the
make
target
command, where target is one of the values described below.
make menuconfig
compiles and launches a text-mode kernel configuration interface (this is
where the libncurses5-dev package is required), which allows navigating the many available ker-
nel options in a hierarchical structure. Pressing the Space key changes the value of the selected
option, and Enter validates the button selected at the bottom of the screen; Select returns to the
selected sub-menu; Exit closes the current screen and moves back up in the hierarchy; Help will
display more detailed information on the role of the selected option. The arrow keys allow mov-
ing within the list of options and buttons. To exit the configuration program, choose Exit from
the main menu. The program then offers to save the changes that you have made; accept if you
are satisfied with your choices.
Other interfaces have similar features but they work within more modern graphical interfaces,
such as
make xconfig
, which uses a Qt graphical interface, and
make gconfig
, which uses GTK+.
The former requires libqt4-dev, while the latter depends on libglade2-dev and libgtk2.0-dev.

Download 11,68 Mb.
1   ...   135   136   137   138   139   140   141   142   ...   174




Download 11,68 Mb.
Pdf ko'rish