当前位置: 首页 > 科技观察

CentOS7编译安装最新LinuxKernel6.0rc3

时间:2023-03-13 00:17:08 科技观察

安装编译环境CentOS7安装必要的包;yumgroupinstall"开发工具"-y&&yuminstallopenssl-devel-y&&yuminstallrpm-buildredhat-rpm-configasciidochmaccalcperl-ExtUtils-Embedpesignxmlto-y&&yuminstallaudit-libs-develbinutils-develelfutils-develelfutils-libelf-devel-y&&yuminstallncurses-develnewt-develnumactl-develpciutils-develpython-develzlib-devel-yCentOS7要更新gcc版本,必须升级gcc版本。centOS7自带的gcc版本是4.8.5,编译内核会报错;sudoyuminstallcentos-release-scl-y&&sudoyuminstalldevtoolset-8-gcc*-y&&sclenabledevtoolset-8bash永久替换旧的gcc(可选操作);mv/usr/bin/gcc/usr/bin/gcc-4.8.5&&ln-s/opt/rh/devtoolset-8/root/bin/gcc/usr/bin/gcc&&mv/usr/bin/g++/usr/bin/g++-4.8.5&&ln-s/opt/rh/devtoolset-8/root/bin/g++/usr/bin/g++从kernel.org下载最新的LinuxKernel6.0rc3download6.0。rc3的压缩包是203MB。由于国内网络的特殊情况,下载会很慢。请自备加速手段或耐心等待。wgethttps://git.kernel.org/torvalds/t/linux-6.0-rc3.tar.gztarzxvflinux-6.0-rc3.tar.gzcdlinux-6.0-rc3配置config选择以下操作之一配置config文件,不确定就选第一个,有图形化配置界面的。编辑配置文件以选择编译期间所需的内核模块或组件。不知不晓,默认全程。通过菜单配置。makemenuconfig在linux-6.0-rc3目录下输入这条命令,就会进入配置界面。不明白的保持默认配置,按右方向键选择save回车,根据提示保存.config文件。cat.config//检查是否保存正确。根据已有的内核拷贝生成config,或者通过已有的内核参数生成新的配置参数文件.config。请注意,/boot/config-3.10.0-957.el7.x86_64是/boot/目录下的类似目录。可能不同的CentOS7路径名不同。应根据实际机器的目录进行更改。cp/boot/config-3.10.0-957.el7.x86_64./.configmakeoldconfig//这里需要一路回车执行cat.config进行编译。再次提醒你,戴上金箍棒后,你将不再是凡人,执行以下命令,你就是编译Linux内核的人。-j12参数是因为我给虚拟机分配了12个核心,所以这12个核心应该不会闲着。根据自己机器的情况,可以改为-j6、-j8甚至-j100。为自己测试不计后果的改革的后果。编译过程费时费力,取决于编译机的性能。如果1C1G云服务器执行编译,可以先休眠。make-j12all运行上述命令后,如果内核模块没有特殊要求,可以去掉内核模块的调试信息,节省一些硬盘空间。makeINSTALL_MOD_STRIP=1modules_install>/dev/null&&makemodules_install&&makeinstall设置默认的新内核启动。sudoawk-F\''$1=="menuentry"{printi++":"$2}'/etc/grub2.cfg&&sudogrub2-set-default0&&sudogrub2-mkconfig-o/boot/grub2/grub.cfgcompile编译成rpm包,生成单个通用RPM包,可以直接安装在其他CentOS7机器上,省去了上述繁琐的手动编译过程。在当前目录linux-6.0-rc3下执行:yum-yinstallrpm-build&&makerpm-pkg-j32如果需要压缩卷,可以将makerpm-pkg-j32换成makeINSTALL_MOD_STRIP=1rpm-pkg.该命令将执行一段时间。执行完不出意外,系统的~/rpmbuild/RPMS/x86_64/目录下会出现三个rpm安装包。-rw-r--r--。1根根693546008月31日19:46kernel-6.0.0_rc3-1.x86_64.rpm-rw-r--r--。1rootroot179586568Aug3119:48kernel-devel-6.0.0_rc3-1.x86_64.rpm-rw-r--r--。1rootroot1545516Aug3119:47kernel-headers-6.0.0_rc3-1.x86_64.rpm在其他机器上安装(yumlocalinstallkern*-y)这三个rpm包在CentOS7上更新内核。三个包完成后,必须更新启动项。sudoawk-F\''$1=="menuentry"{printi++":"$2}'/etc/grub2.cfg&&sudogrub2-set-default0&&sudogrub2-mkconfig-o/boot/grub2/grub.cfg这个这是我打包的三个rpm包。有兴趣的可以下载安装试试。不做可靠保证,请避免在生产环境中直接使用。