linux-手动下载和安装内核
linux-手动下载和安装内核1、CentOS7安装高版本内核
1.1 下载内核
手动下载和安装内核是一个高级操纵,需要从官方源或其他可信源手动下载和安装内核。
(1)选择合适的内核版本,可以访问官方操纵体系网站或内核开发者网站,以获取可用的内核版本信息。
(2)下载内核源代码: 一旦确定了要安装的内核版本,可以通过以下方式之一获取内核源代码:
官方操纵体系网站提供的下载链接。
内核开发者网站的代码堆栈或下载链接。
https://i-blog.csdnimg.cn/direct/57c800e47ac245ce994313f258b2eecb.png#pic_center
wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.x.x.tar.gz
1.2 解压源代码
下载完成后,利用以下命令解压源代码压缩包:
tar -xzvf linux-5.x.x.tar.gz
1.3 设置内核选项
进入解压后的内核源代码目录,并利用现有的内核设置文件作为基础设置。可以复制体系中 /boot/config-$(uname -r
) 文件到内核源代码目录,并命名为 .config**(可选)**
cp /boot/config-$(uname -r
) /path/to/linux-5.x.x/.config
然后,运行以下命令以进行设置:在设置界面中可以根据需要修改内核选项;保存设置退却出。
make menuconfig
报错1:
# make menuconfig
HOSTCCscripts/basic/fixdep
/bin/sh: gcc: command not found
make: *** Error 127
make: *** Error 2
make: *** Error 2
解决办法:安装gcc
# yum -y install gcc
报错2:
# make menuconfig
HOSTCCscripts/basic/fixdep
*
* Unable to find the ncurses package.
* Install ncurses (ncurses-devel or libncurses-dev
* depending on your distribution).
*
* You may also need to install pkg-config to find the
* ncurses installed in a non-default location.
*
make: *** Error 1
make: *** Error 2
make: *** Error 2
解决办法:安装ncurses-devel
# yum -y install ncurses-devel
报错3:
# make menuconfig
UPD scripts/kconfig/mconf-cfg
HOSTCCscripts/kconfig/mconf.o
HOSTCCscripts/kconfig/lxdialog/checklist.o
HOSTCCscripts/kconfig/lxdialog/inputbox.o
HOSTCCscripts/kconfig/lxdialog/menubox.o
HOSTCCscripts/kconfig/lxdialog/textbox.o
HOSTCCscripts/kconfig/lxdialog/util.o
HOSTCCscripts/kconfig/lxdialog/yesno.o
HOSTCCscripts/kconfig/confdata.o
HOSTCCscripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
/bin/sh: flex: command not found
make: *** Error 127
make: *** Error 2
make: *** Error 2
解决办法:安装 flex
# yum -y install flex
报错4:
# make menuconfig
LEX scripts/kconfig/lexer.lex.c
YACC scripts/kconfig/parser.tab.
/bin/sh: bison: command not found
make: *** Error 127
make: *** Error 2
make: *** Error 2
解决办法:安装 bison
# yum -y install bison
报错5:
# make menuconfig
YACC scripts/kconfig/parser.tab.
HOSTCCscripts/kconfig/lexer.lex.o
HOSTCCscripts/kconfig/menu.o
HOSTCCscripts/kconfig/parser.tab.o
HOSTCCscripts/kconfig/preprocess.o
HOSTCCscripts/kconfig/symbol.o
HOSTCCscripts/kconfig/util.o
HOSTLDscripts/kconfig/mconf
***
*** Compiler is too old.
*** Your GCC version: 4.8.5
*** Minimum GCC version: 5.1.0
***
scripts/Kconfig.include:44: Sorry, this compiler is not supported.
make: *** Error 1
make: *** Error 2
make: *** Error 2
解决办法:安装更高版本GCC
#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
#yum install devtoolset-10-runtime-10.0-0.el7.x86_64.rpm -y
#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
#yum install devtoolset-10-binutils-2.35-5.el7.2.x86_64.rpm -y
#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
#yum install devtoolset-10-gcc-10.2.1-11.1.el7.x86_64.rpm -y
#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
#yum install devtoolset-10-libstdc++-devel-10.2.1-11.1.el7.x86_64.rpm -y
#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
#yum install devtoolset-10-gcc-c++-10.2.1-11.1.el7.x86_64.rpm -y
#scl enable devtoolset-10 bash
https://i-blog.csdnimg.cn/direct/7a1995aaac3f48b793fa01c3b2960823.png#pic_center
https://i-blog.csdnimg.cn/direct/bcb55ce28fcd4b9cb26e6cde41687ade.png#pic_center
https://i-blog.csdnimg.cn/direct/c98468edff3245338a57f6c1079cddbe.png#pic_center
1.4 编译内核
make -j 8
报错1:
scripts/sign-file.c:25:10: fatal error: openssl/opensslv.h: No such file or directory
#include <openssl/opensslv.h>
^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** Error 1
make: *** Waiting for unfinished jobs....
HOSTCCscripts/genksyms/parse.tab.o
HOSTCCscripts/genksyms/lex.lex.o
DESCEND objtool
HOSTLDscripts/genksyms/genksyms
make: *** Error 2
make: *** Waiting for unfinished jobs....
<stdin>:1:10: fatal error: libelf.h: No such file or directory
解决办法:
yum install elfutils-libelf-devel openssl-devel -y
1.5 安装内核模块
编译完成后,可以安装内核及其模块:
make modules_install
报错1:
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
sed: can't read modules.order: No such file or directory
make: *** Error 2
解决方案:
这个报错原因是 `CONFIG_X86_X32 enabled but no binutils support`,选择重新编译binutils或者禁用CONFIG_X86_X32,我选择禁用,编辑.config文件,将CONFIG_X86_X32=y改为CONFIG_X86_X32=n。重新运行`make -j4`,不再报此处错误。
报错2:
make: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'. Stop.
解决方案:
编辑.config文件,修改CONFIG_SYSTEM_TRUSTED_KEYS
修改CONFIG_SYSTEM_TRUSTED_KEYS,将其赋空值。
修改前:原变量有值
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
修改后:将该变量赋空值,将该项原有内容删掉即可,如下:
CONFIG_SYSTEM_TRUSTED_KEYS=""
修改CONFIG_SYSTEM_REVOCATION_KEYS(可选),如果CONFIG_SYSTEM_REVOCATION_KEYS的值不为空的话,也将其赋空值。
修改前:原变量有值
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"
修改后:将该变量赋空值
CONFIG_SYSTEM_REVOCATION_KEYS=""
1.6 安装内核
make -j 8
install 1.7 重启体系:选择新的内核启动
reboot
1.8 验证新内核
体系重启后,运行以下命令验证新内核是否见效:
uname -r
ed-certs.pem"
修改后:将该变量赋空值
CONFIG_SYSTEM_REVOCATION_KEYS=“”
#### 1.6 安装内核```shellmake -j 8
install 1.7 重启体系:选择新的内核启动
reboot
1.8 验证新内核
体系重启后,运行以下命令验证新内核是否见效:
uname -r
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]