linux内核之源码编译

linux内核之源码编译


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

文章目录

  • linux内核之源码编译
    • 1.下载linux内核
    • 2.安装所需前置软件
    • 3.解压源码
    • 4.清理内核源目录
    • 5.配置内核参数
    • 6.编译内核
    • 7.安装内核和模块
    • 8.启用内核作为引导
    • 9.结果
    • 10.其他

环境:
系统:Ubuntu 20.04
内核版本:5.4.0-26-generic
升级的内核版本:5.4.50

1.下载linux内核

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.50.tar.xz

wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.4.50.tar.xz

2.安装所需前置软件

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

centos可参考(未验证)

sudo yum install gcc bc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel

注意:至少需要12GB的磁盘空间来完成内核的编译过程
linux内核之源码编译_第1张图片

3.解压源码

tar xvJf linux-5.4.50.tar.xz

使用cd linux-5.4.50进入目录

4.清理内核源目录

make mrproper
make clean

5.配置内核参数

编译内核的方式:

  • make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
  • make xconfig(基于图形窗口模式的配置界面,xwindow下推荐使用)
  • make oldconfig(只在原来内核配置上略作修改)
  • make config(基于文本的最为传统的配置界面,不推荐使用)

最终都会生成.config文件
linux内核之源码编译_第2张图片
linux内核之源码编译_第3张图片
小技巧:
在正式编译内核之前,必须配置需要包含哪些模块。
有个一个好的办法就是直接复制当前系统的内核配置文件,然后使用menuconfig命令来进行修改部分所需参数。这样可以最大程序兼容原有参数。(高度定制化可以忽略该步骤,直接进行内核参数配置)

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

6.编译内核

CPU intel i5-6500使用4线程虚拟机大约需要80分钟左右

make -j8

7.安装内核和模块

安装模块(大约需要5分钟)

sudo make modules_install

安装内核(大约需要3分钟)

sudo make install

8.启用内核作为引导

将内核启用来作为引导

sudo update-initramfs -c -k 5.4.50

更新 grub

sudo update-grub

重启系统可以选择新安装的内核

9.结果

linux内核之源码编译_第4张图片
linux内核之源码编译_第5张图片
linux内核之源码编译_第6张图片

10.其他

问题1:重启出错 end Kernel panic - not syncing: System is deadlocked on memory

解决:
由于虚拟机内存不足导致(原来设置2GB),调整成4GB后成功启动


License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033


Reference:
1.https://www.linux.com/topic/desktop/how-compile-linux-kernel-0/

你可能感兴趣的:(Linux内核,linux,内核,kernel,linux,kernel,linux源码编译)