当前位置:   article > 正文

Ubuntu20.04 编译替换kernel内核记录_ubuntu kernel source

ubuntu kernel source

1.下载kernel sorce code,从kernel.org上下载或在直接用git clone,或者在国内mirror上(Index of /kernel/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)下载镜像。

2.为了方便,用su切换到root权限,代码放在/usr/src/目录下,解压代码。安装依赖库:

  1. apt install build-essential
  2. apt install gcc
  3. apt install make
  4. apt install openssl
  5. apt install pkg-config
  6. apt install libssl-dev
  7. apt install libncurses5-dev
  8. apt install libc6-dev
  9. apt install libelf-dev
  10. apt install bison
  11. apt install flex

3.配置config:

        a. 打开源码路径:cd /usr/src/linux-xxxx

        b. cp /boot/config-xxxxx .config

        c. make menuconfig-->load-->save

4. 编译内核:make -jN;

注意:这里可能会遇到因为key而编译不过的问题,可以删除下边的两个key值:

  1. CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
  2. CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"

修改为:

  1. CONFIG_SYSTEM_TRUSTED_KEYS=""
  2. CONFIG_SYSTEM_REVOCATION_KEYS=""

5. 编译模块:make modules -j N //N是根据CPU 核数确定,可以加快执行过程。

6.安装模块:

make INSTALL_MOD_STRIP=1 modules_install -j 8

这里的INSTALL_MOD_STRIP=1一定要加上,否则会有initrd.img-xxx文件太大的问题,导致开机一直卡在加载映像到磁盘,无法开机。

7.安装内核:make install

检查以下/boot/initrd.img-xxx大小是否太大,正常一般不超过100M,如果太大就执行步骤6的命令,然后在执行:

mkinitramfs /lib/modules/5.17.xxxx/ -o /boot/initrd.img-5.17xxx

8. 更新grub:update-grub2,注意这里grub会默认选择最新版本的内核,如果更新内核后需要切换到旧版本的内核,需要在启动的过程中选择ubuntu高级选项里边选择之前的版本,如果开机不显示ubuntu高级选项,可以修改/etc/default/grub文件:

  1. # If you change this file, run 'update-grub' afterwards to update
  2. # /boot/grub/grub.cfg.
  3. # For full documentation of the options in this file, see:
  4. # info -f grub -n 'Simple configuration'
  5. GRUB_DEFAULT=0
  6. # GRUB_TIMEOUT_STYLE=hidden ==》增加#,mark掉这一行
  7. GRUB_TIMEOUT_STYLE=menu
  8. GRUB_TIMEOUT=5 ==》修改为5秒

9. 重启电脑,使用uname -a 查看是否替换成功。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/129415
推荐阅读
相关标签
  

闽ICP备14008679号