我如何重新编译内核?

我如何重新编译内核?

我从无线开发人员那里了解到,我必须运行make menuconfig命令来更改无线驱动程序的某些配置(启用/禁用某些配置)。更改后,我是否必须重新编译内核以使更改生效?如果必须,如何编译?

答案1

首先你需要获取内核源代码。请查看»在 Ubuntu 中获取内核源代码« 的答案。它向您显示从何处获取源代码。如果您使用命令apt-get source linux-source,您将得到一个 tar.gz 文件。您可以双击它来解压或使用命令行:

tar xfz linux.tar.gz

您可能还需要其他几个软件包。此命令将安装所有需要的软件包:

sudo apt-get install git kernel-package fakeroot build-essential ncurses-dev

现在你应该进入内核源代码所在的目录。如果你使用 下载了它,git它们可能位于子目录中linux。否则它们将被复制到/usr/src

下一步您应该将现有的内核配置文件复制到源树:

cp /boot/config-$(uname -r) .config

现在你可以执行

make menuconfig

并输入您的更改。另请参阅网站GitKernelBuild在 Ubuntu wiki 中获取更多建议。保存更改后,您可以编译新内核:

CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

如果你输入,ls ..你会看到一些.deb文件。你可以安装它们并使用你的新内核。

答案2

你可以看这里有关 Debian 特定方式的更多说明。

要构建内核,请执行以下两个命令:

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

之后--append-to-version=您可以编写任何有助于您识别内核的字符串,但它必须以减号 (-) 开头并且不能包含空格。

本网站有更多通用的说明,看起来更加熟悉:

开始编译创建压缩内核映像,输入:

make

开始编译内核模块:

make modules

答案3

在 20.04 上重新编译当前 5.4.0 内核

准备

$ sudo apt install build-essential bison flex gcc-9 g++-9 libncurses libncurses-dev libssl-dev 

接下来将下载当前内核源

$ sudo apt install linux-source  

进入内核源文件目录并解压

$ cd /usr/src/linux-source-5.4.0/   
$ sudo tar xvfj linux-source-5.4.0.tar.bz2   
$ cd linux-source-5.4.0 

配置内核

$ sudo make menuconfig

如果你愿意,可以进行更改,保存并退出,
在“-j”选项后使用你的线程数进行编译

$ sudo make -j2 deb-pkg LOCALVERSION=-cust

安装

$ sudo apt install ../linux-*cust*.deb

参考有帮助

相关内容