![我如何重新编译内核?](https://linux22.com/image/964875/%E6%88%91%E5%A6%82%E4%BD%95%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%91%E5%86%85%E6%A0%B8%EF%BC%9F.png)
我从无线开发人员那里了解到,我必须运行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
答案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
参考有帮助