linux-手动下载和安装内核

打印 上一主题 下一主题

主题 1758|帖子 1758|积分 5274

linux-手动下载和安装内核

1、CentOS7安装高版本内核

1.1 下载内核

手动下载和安装内核是一个高级操纵,需要从官方源或其他可信源手动下载和安装内核。
(1)选择合适的内核版本,可以访问官方操纵体系网站或内核开发者网站,以获取可用的内核版本信息。
(2)下载内核源代码: 一旦确定了要安装的内核版本,可以通过以下方式之一获取内核源代码:
官方操纵体系网站提供的下载链接。
内核开发者网站的代码堆栈或下载链接。

  1. wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.x.x.tar.gz
复制代码
1.2 解压源代码

下载完成后,利用以下命令解压源代码压缩包:
  1. tar -xzvf linux-5.x.x.tar.gz
复制代码
1.3 设置内核选项

进入解压后的内核源代码目录,并利用现有的内核设置文件作为基础设置。可以复制体系中 /boot/config-$(uname -r

) 文件到内核源代码目录,并命名为 .config**(可选)**
  1. cp /boot/config-$(uname -r
  2. ) /path/to/linux-5.x.x/.config
复制代码
然后,运行以下命令以进行设置:在设置界面中可以根据需要修改内核选项;保存设置退却出。
  1.   make menuconfig
复制代码
  1. 报错1:
  2. [root@localhost linux-5.15.14]# make menuconfig
  3.   HOSTCC  scripts/basic/fixdep
  4. /bin/sh: gcc: command not found
  5. make[2]: *** [scripts/basic/fixdep] Error 127
  6. make[1]: *** [scripts_basic] Error 2
  7. make: *** [__sub-make] Error 2
  8. 解决办法:安装gcc
  9. [root@localhost linux-5.15.14]# yum -y install gcc
  10. 报错2:
  11. [root@localhost linux-5.15.14]# make menuconfig
  12.   HOSTCC  scripts/basic/fixdep
  13. *
  14. * Unable to find the ncurses package.
  15. * Install ncurses (ncurses-devel or libncurses-dev
  16. * depending on your distribution).
  17. *
  18. * You may also need to install pkg-config to find the
  19. * ncurses installed in a non-default location.
  20. *
  21. make[2]: *** [scripts/kconfig/mconf-cfg] Error 1
  22. make[1]: *** [menuconfig] Error 2
  23. make: *** [__sub-make] Error 2
  24. 解决办法:安装ncurses-devel
  25. [root@localhost linux-5.15.14]# yum -y install ncurses-devel
  26. 报错3:
  27. [root@localhost linux-5.15.14]# make menuconfig
  28.   UPD     scripts/kconfig/mconf-cfg
  29.   HOSTCC  scripts/kconfig/mconf.o
  30.   HOSTCC  scripts/kconfig/lxdialog/checklist.o
  31.   HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  32.   HOSTCC  scripts/kconfig/lxdialog/menubox.o
  33.   HOSTCC  scripts/kconfig/lxdialog/textbox.o
  34.   HOSTCC  scripts/kconfig/lxdialog/util.o
  35.   HOSTCC  scripts/kconfig/lxdialog/yesno.o
  36.   HOSTCC  scripts/kconfig/confdata.o
  37.   HOSTCC  scripts/kconfig/expr.o
  38.   LEX     scripts/kconfig/lexer.lex.c
  39. /bin/sh: flex: command not found
  40. make[2]: *** [scripts/kconfig/lexer.lex.c] Error 127
  41. make[1]: *** [menuconfig] Error 2
  42. make: *** [__sub-make] Error 2
  43. 解决办法:安装 flex
  44. [root@localhost linux-5.15.14]# yum -y install flex
  45. 报错4:
  46. [root@localhost linux-5.15.14]# make menuconfig
  47.   LEX     scripts/kconfig/lexer.lex.c
  48.   YACC    scripts/kconfig/parser.tab.[ch]
  49. /bin/sh: bison: command not found
  50. make[2]: *** [scripts/kconfig/parser.tab.h] Error 127
  51. make[1]: *** [menuconfig] Error 2
  52. make: *** [__sub-make] Error 2
  53. 解决办法:安装 bison
  54. [root@localhost linux-5.15.14]# yum -y install bison
  55. 报错5:
  56. [root@localhost linux-5.15.14]# make menuconfig
  57.   YACC    scripts/kconfig/parser.tab.[ch]
  58.   HOSTCC  scripts/kconfig/lexer.lex.o
  59.   HOSTCC  scripts/kconfig/menu.o
  60.   HOSTCC  scripts/kconfig/parser.tab.o
  61.   HOSTCC  scripts/kconfig/preprocess.o
  62.   HOSTCC  scripts/kconfig/symbol.o
  63.   HOSTCC  scripts/kconfig/util.o
  64.   HOSTLD  scripts/kconfig/mconf
  65. ***
  66. *** Compiler is too old.
  67. ***   Your GCC version:    4.8.5
  68. ***   Minimum GCC version: 5.1.0
  69. ***
  70. scripts/Kconfig.include:44: Sorry, this compiler is not supported.
  71. make[2]: *** [menuconfig] Error 1
  72. make[1]: *** [menuconfig] Error 2
  73. make: *** [__sub-make] Error 2
  74. 解决办法:安装更高版本GCC
  75. [root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-runtime-10.0-0.el7.x86_64.rpm --no-check-certificate
  76. [root@localhost ~]#yum install devtoolset-10-runtime-10.0-0.el7.x86_64.rpm -y
  77. [root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-binutils-2.35-5.el7.2.x86_64.rpm --no-check-certificate
  78. [root@localhost ~]#yum install devtoolset-10-binutils-2.35-5.el7.2.x86_64.rpm -y
  79. [root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-gcc-10.2.1-11.1.el7.x86_64.rpm --no-check-certificate
  80. [root@localhost ~]#yum install devtoolset-10-gcc-10.2.1-11.1.el7.x86_64.rpm -y
  81. [root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-libstdc++-devel-10.2.1-11.1.el7.x86_64.rpm --no-check-certificate
  82. [root@localhost ~]#yum install devtoolset-10-libstdc++-devel-10.2.1-11.1.el7.x86_64.rpm -y
  83. [root@localhost ~]#wget http://buildlogs-seed.centos.org/c7-devtoolset-10.x86_64/cbs/devtoolset-10-gcc-c++-10.2.1-11.1.el7.x86_64.rpm --no-check-certificate
  84. [root@localhost ~]#yum install devtoolset-10-gcc-c++-10.2.1-11.1.el7.x86_64.rpm -y
  85. [root@localhost localhost-6.0.16]#scl enable devtoolset-10 bash
复制代码



1.4 编译内核

  1. make -j 8
复制代码
  1. 报错1:
  2. scripts/sign-file.c:25:10: fatal error: openssl/opensslv.h: No such file or directory
  3. #include <openssl/opensslv.h>
  4.           ^~~~~~~~~~~~~~~~~~~~
  5. compilation terminated.
  6. make[2]: *** [scripts/sign-file] Error 1
  7. make[2]: *** Waiting for unfinished jobs....
  8.   HOSTCC  scripts/genksyms/parse.tab.o
  9.   HOSTCC  scripts/genksyms/lex.lex.o
  10.   DESCEND objtool
  11.   HOSTLD  scripts/genksyms/genksyms
  12. make[1]: *** [scripts] Error 2
  13. make[1]: *** Waiting for unfinished jobs....
  14. <stdin>:1:10: fatal error: libelf.h: No such file or directory
  15. 解决办法:
  16.   yum install elfutils-libelf-devel openssl-devel -y
复制代码
1.5 安装内核模块

编译完成后,可以安装内核及其模块:
  1. make modules_install
复制代码
  1. 报错1:
  2. arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
  3. sed: can't read modules.order: No such file or directory
  4. make: *** [Makefile:1479: __modinst_pre] Error 2
  5. 解决方案:
  6. 这个报错原因是 `CONFIG_X86_X32 enabled but no binutils support`,选择重新编译binutils或者禁用CONFIG_X86_X32,我选择禁用,编辑.config文件,将CONFIG_X86_X32=y改为CONFIG_X86_X32=n。重新运行`make -j4`,不再报此处错误。
  7. 报错2:
  8.   
  9. make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'. Stop.
  10. 解决方案:
  11. 编辑.config文件,修改CONFIG_SYSTEM_TRUSTED_KEYS
  12. 修改CONFIG_SYSTEM_TRUSTED_KEYS,将其赋空值。
  13. 修改前:原变量有值
  14. CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
  15. 修改后:将该变量赋空值,将该项原有内容删掉即可,如下:
  16. CONFIG_SYSTEM_TRUSTED_KEYS=""
  17. 修改CONFIG_SYSTEM_REVOCATION_KEYS(可选),如果CONFIG_SYSTEM_REVOCATION_KEYS的值不为空的话,也将其赋空值。
  18. 修改前:原变量有值
  19. CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"
  20. 修改后:将该变量赋空值
  21. CONFIG_SYSTEM_REVOCATION_KEYS=""
复制代码
1.6 安装内核

  1. make -j 8
  2. install
复制代码
1.7 重启体系:选择新的内核启动

  1. reboot
复制代码
1.8 验证新内核

体系重启后,运行以下命令验证新内核是否见效:
  1. uname -r
复制代码
ed-certs.pem"
修改后:将该变量赋空值
CONFIG_SYSTEM_REVOCATION_KEYS=“”
  1. #### 1.6 安装内核```shellmake -j 8
  2. install
复制代码
1.7 重启体系:选择新的内核启动

  1. reboot
复制代码
1.8 验证新内核

体系重启后,运行以下命令验证新内核是否见效:
  1. uname -r
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表