一、下载源代码和编译软件的准备
下载内核源代码:http://www.kernel.org/
安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。
安装不了,请检查/etc/apt/sources.list 文件。
有关命令:
代码:
$sudo apt-get install build-essential kernel-package libncurses5-dev
二、解压源代码
注意,网上很多教程上说应该解压到 /usr/src,纯属以讹传讹,linux掌门人linus说解压到任何目录上都可以。当然,linus的说法是正确的。我放在自己的主目录下的src目录。
如果你下载源代码是放到自己的主目录下或者运行上面的wget下载的,那么运行下列命令:
代码:
$ cd ~
$ mkdir src && tar xvf linux-5.15.5.tar.xz -C src/
现在,源代码就在 ~/src/linux-5.15.5
进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。
代码:
$ cd ~/src/linux-5.15.5
三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。
相关命令如下:
代码:
$ sudo make mrproper
网上很多教程上说把现在使用的内核的config拷贝过来参考,据实验,是不需要的,ubuntu还有
debian会自动做这步。不过这条命令倒是可以学习一下。当然你可以将以前的配置拷贝过来。
命令:
代码:
cp /boot/config-`uname -r` ./.config
四、开始配置内核选项。
相关命令:
代码:
$sudo make menuconfig
出现错误
LEX scripts/kconfig/lexer.lex.c
/bin/sh: 1: flex: not found
原因:
缺少库
解决:
sudo apt-get install flex
sudo apt-get install bison
出现错误
Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
表示终端窗口太小。解决办法可以是把终端窗口适当的调大(或是直接最大化)就行了。
最后成功进入内核