Linux内核下载及编译
下载Linux内核
可以从官网下载linux内核,也可以通过第三方网站进行下载。
官网网址:https://www.kernel.org/。
由于官网可能存在被墙的原因,所以下在很慢,这里也提供一个更加便捷的下载地址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/。
根据自己的需求下载相应的版本,我这里下载在的是“linux-5.19.tar.gz”版本。
解压linux内核
使用以下命令进行加压下载的linux内核压缩包:
tar -zxvf linux-5.19.tar.gz
解压后使用ls
命令展示文件夹类存在的文件。
在清理多余的中间配置文件,使用make distclean
命令。清理后文件夹内部信息将会发生变化。
选择参考配置文件
使用以下命令选择配置文件,便于后续config配置:
cp /boot/config-5.15.0-46-generic .config
具体操作如下图所示:
配置内核
在使用make
命令前,需要先安装一些相关的依赖库,便于后续的运行。主要需要执行以下命令:
sudo apt-get update
sudo apt install make
sudo apt-get install gcc
sudo apt-get install libncurses5-dev
sudo apt-get install flex
sudo apt-get install bison
使用“make manuconfig“进行打开可视化终端,按照自己的需要进行更改参数设置。如果不需要更改,则保存退出就可以继续执行后面操作。
编译内核
执行make bzImage
命令,需要较长的时间(1~2小时左右,耐心等待)。
其中可能会出现scripts/sign-file.c:25:10: fatal error: openssl/opensslv.h: 没有那个文件或目录
等问题。于是执行以下命令安装相关的依赖,应该一次性全部安装完相关的所有依赖,要不然耗时更长。
sudo apt-get install libssl-dev
sudo apt-get install libelf-dev
sudo apt-get install dwarves
sudo apt-get install zstd
如果中间出现以下等错误:make[1]: *** 没有规则可制作目标“[debian](https://so.csdn.net/so/search?q=debian&spm=1001.2101.3001.7020)/canonical-certs.pem”,由“certs/x509
,那么打开**.config**文件,如下方所是,删除部分内容:如删除“debian/canonical-certs.pem”和“debian/canonical-revoked-certs.pem”内容,修改为下下图形式。
修改完毕后在次执行“make bzImage
”命令将进行编译内核。
最终内核编译成功将会出现以下信息。
编译内核模块
使用以下命令进行编译linux内核模块:
make modules
将会开始进行编译内核模块,大致需要(2~3小时)。
编译成功后将会出现以下信息:
安装内核模块
使用以下命令进行安装内核模块,大概耗时10分钟:
make modules_install
完成安装后,编译好的内核模块会从源码目录复制到/lib/modules/
目录下:
到此,嵌入式Linux内核便下载在编译成功了。
后续也可以通过参考文献[1]将编译好的Linux进行安装和部署。
Reference
[1]https://blog.csdn.net/qq_44631615/article/details/118305753#commentBox