001 如何获取、编译、安装Linux内核源代码

目录

 

一、环境准备

二、获取源代码

三、编译

四、安装

五、配置开启启动项

六、安装过程中遇到的问题


一、环境准备

1、VMware Workstation虚拟机

2、虚拟机中安装 Ubuntu-20.04.1 操作系统 (内核版本为 5.4.0)

二、获取源代码

1、www.kernel.org

2、下载后源代码为 linux-5.8.7.tar.xz 格式压缩包,存放于/home/ubuntu/Desktop/Linux目录下,通过下面两条命令解压

       cd  /home/ubuntu/Desktop/Linux

       xz -d linux-5.8.7.tar.xz     (生成linux-5.8.7.tar)

       tar -xvf linux-5.8.7.tar      (生成linux-5.8.7目录)

三、编译

1、环境准备(由于在安装Ubuntu系统时,使用了最小化安装,所以编译时会缺少一些软件包)

sudo apt install make gcc libncurses-dev flex bison libssl-dev libelf-dev

2、配置内核(以下操作均在 /home/ubuntu/Desktop/Linux/linux-5.8.7 目录下完成)

(1) 保持源码干净

           make mrproper 

           此操作会将历史编译过程中配置的内核功能配置文件清除掉,只有第一次执行内核编译前才进行此操作,其它情                            况若需要清除前一次编译过程的残留数据,只需用下面的命令:
                  make clean
                  此命令仅删除编译过程产生的中间文件和目标文件,而不会删除历史配置。

(2)设置内核功能选项

          在正式编译内核之前,我们首先必须配置需要包含哪些模块。

          拷贝当前内核的配置文件,然后使用可靠的 menuconfig 命令来做任何必要的更改。

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

                 之后执行命令  make menuconfig 可在字符界面中显示功能配置的图形界面,如下图。

                 根据上图中功能提示配置需要的功能,本次实验中采用的是默认的配置,通过键盘上的左右键选择<Save>保存配置,                   得到新内核的配置文件,如下图。使用键盘上的左右键选择<OK>按钮,通过键盘上的回车键确认保存配置。

3、编译内核和模块

(1)清除之前编译出的中间文件和目标文件

         make clean

(2)编译内核

          make bzImage  或者  make bzImage -jn

          -jn 意思是并发执行,可以提高速度,一般情况 下n不要大于CPU核数

          例: -j4 表示同时编译的任务数。如果操作系统中有4个CPU核心,可通过-j4加快编译的速度。

(3)编译内核模块

          make modules

四、安装

1、安装内核模块

          make modules_install

2、安装内核

          make install

五、配置开启启动项

修改 Ubuntu 操作系统的默认启动项,使系统重启后进入新编译的linux-5.8.7内核。

1、输入下列命令将内核作为引导,将数字更改为自己编译的版本号

      sudo update-initramfs -c -k 5.8.7

2、更新启动项列表

      update-grub2

3、修改默认启动菜单的配置文件

      sudo vim /etc/default/grub

      注释 GRUP_TIMEOUT_STYLE=hidden 列。
             修改 GRUB_TIMEOUT 的值为10 。(可修改为其它数值)

      GTUB_DEFAULT=0,表示从第一个内核启动(linux-5.8.7位于第一个)。

      保存修改,重启系统,可看到启动菜单项。选择advanced,进入后选择刚编译安装好的内核进入即可。

3、确认内核

      uname -r 

      查看 当前运行内核版本 是否与 安装的内核版本 一致。

六、安装过程中遇到的问题

1、虚拟机分配内存过小,导致出现如下图错误

      not syncing: System is deadlocked on Memory

 

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值