本文演示机器系统版本是CENTOS7.3。 查看系统版本信息。
[root@localhost ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.3.1611 (Core) Release: 7.3.1611 Codename: Core [root@localhost ~]# [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# [root@localhost ~]# cat /proc/version Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016 [root@localhost ~]#
安装编译所需软件。
#逐条运行命令 [root@localhost ~]# yum groupinstall "Development Tools" [root@localhost ~]# yum install ncurses-devel [root@localhost ~]# yum install qt-devel
下载最新稳定版本Linux Kernel。本文发表时(2017-03-29)最新稳定内核版本是4.10.6。
[root@localhost ~]# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.10.6.tar.xz [root@localhost ~]# tar -xf linux-4.10.6.tar.xz -C /usr/src/ [root@localhost ~]# ls /usr/src/ debug kernels linux-4.10.6 [root@localhost ~]# cd /usr/src/linux-4.10.6/
#编译时可能会遇到错误 make menuconfig少一个字母n [root@localhost linux-4.10.6]# make menucofig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf scripts/kconfig/conf --silentoldconfig Kconfig *** *** Configuration file ".config" not found! *** *** Please run some configurator (e.g. "make oldconfig" or *** "make menuconfig" or "make xconfig"). *** make[2]: *** [silentoldconfig] 错误 1 make[1]: *** [silentoldconfig] 错误 2 make: *** 没有规则可以创建目标“menucofig”。 停止。 #本机是KDE桌面环境
开始配置和编译内核。
[root@localhost linux-4.10.6]# make menuconfig scripts/kconfig/mconf Kconfig # # using defaults found in /boot/config-3.10.0-514.el7.x86_64 # /boot/config-3.10.0-514.el7.x86_64:621:warning: symbol value 'm' invalid for cpu_FREQ_STAT /boot/config-3.10.0-514.el7.x86_64:861:warning: symbol value 'm' invalid for NF_CT_PROTO_DCCP /boot/config-3.10.0-514.el7.x86_64:863:warning: symbol value 'm' invalid for NF_CT_PROTO_SCTP /boot/config-3.10.0-514.el7.x86_64:864:warning: symbol value 'm' invalid for NF_CT_PROTO_UDPLITE /boot/config-3.10.0-514.el7.x86_64:882:warning: symbol value 'm' invalid for NF_NAT_PROTO_DCCP /boot/config-3.10.0-514.el7.x86_64:883:warning: symbol value 'm' invalid for NF_NAT_PROTO_UDPLITE /boot/config-3.10.0-514.el7.x86_64:884:warning: symbol value 'm' invalid for NF_NAT_PROTO_SCTP configuration written to .config *** End of the configuration. *** Execute 'make' to start the build or try 'make help'. #编译用时与机器配置,选择选项等有关,大约需要十几分钟以上 [root@localhost linux-4.10.6]# make [root@localhost linux-4.10.6]# make modules_install [root@localhost linux-4.10.6]# make install [root@localhost linux-4.10.6]# make clean #更新内核启动参数 [root@localhost linux-4.10.6]# grub2-set-default 0
重启电脑并检查是否安装成功。
[root@localhost ~]# uname -a Linux localhost.localdomain 4.10.6 #1 SMP Wed Mar 29 13:47:22 CST 2017 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.3.1611 (Core) Release: 7.3.1611 Codename: Core [root@localhost ~]#
补充Ubuntu安装最新稳定版内核。
#需要root权限 dell@DELL:/usr/src/linux-4.10.10$ sudo make menuconfig HOSTCC scripts/kconfig/mconf.o In file included from scripts/kconfig/mconf.c:23:0: scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: 没有那个文件或目录 compilation terminated. scripts/Makefile.host:124: recipe for target 'scripts/kconfig/mconf.o' Failed make[1]: *** [scripts/kconfig/mconf.o] Error 1 Makefile:546: recipe for target 'menuconfig' Failed make: *** [menuconfig] Error 2 dell@DELL:/usr/src/linux-4.10.10$ dell@DELL:/usr/src/linux-4.10.10$ sudo
该错误是因为make menuconfig需要安装libncurses5-dev。
dell@DELL:/usr/src/linux-4.10.10$ sudo apt install libncurses5-dev
开始执行make menuconfig 命令。
dell@DELL:/usr/src/linux-4.10.10$ sudo make menuconfig
执行make命令。编译过程报错。
scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: 没有那个文件或目录 compilation terminated. scripts/Makefile.host:107: recipe for target 'scripts/sign-file' Failed make[1]: *** [scripts/sign-file] Error 1 Makefile:560: recipe for target 'scripts' Failed make: *** [scripts] Error 2 dell@DELL:/usr/src/linux-4.10.10$
#解决方法 dell@DELL:/usr/src/linux-4.10.10$ sudo apt install libssl-dev
其他情况和CentOS安装类似,本文不再加以详细讲解。
需要补充一点。
dell@DELL:/usr/src/linux-4.10.10$ sudo grub-set-default 0 dell@DELL:/usr/src/linux-4.10.10$ cat /proc/version Linux version 4.4.0-72-generic (buildd@lcy01-17) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 dell@DELL:/usr/src/linux-4.10.10$ sudo reboot
安装完成后检查版本。
dell@DELL:~$ uname -a Linux DELL 4.10.10 #1 SMP Thu Apr 13 15:54:58 CST 2017 x86_64 x86_64 x86_64 GNU/Linux dell@DELL:~$ cat /proc/version Linux version 4.10.10 (root@DELL) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #1 SMP Thu Apr 13 15:54:58 CST 2017 dell@DELL:~$