Linux-升级内核

Linux-升级内核,第1张

Update Centos Kernel 3.10 to 5.13 latest

How to Upgrade the Linux Kernel on CentOS 7

CentOS7 Docker容器无法ping通宿主机ip问题解决记录 - 平台梦

Centos7升级内核 - 野草博客

Linux 内核升级_Andy杨的博客-CSDN博客_linux内核升级工具

升级 CentOS7.9 的内核版本 - 爱吃桔子的程序羊

注: kernel-lt-5.4.191.x86_64.tar.gz 为kernel离线rpm文件的压缩包

1。将下载的新内核(比如linux-2.6.17.tar.bz2)拷贝到 /usr/src, 然后在/usr/src本地解压,生成新目录linux-2.6.17;2.#cd linux-2.6.17编辑Makefile 找到EXTRAVERSION:EXTRAVERSION = -xhawk(你自己给新内核取的名字) (注意前面的“-” 符号)3。拷贝/boot/下的1个config文件到/usr/src/linux-2.6.17/(解压的新内核目录),更名为.config。4。#make clean &&make mrproper5. #make xconfig6. load 刚拷贝过来的/usr/src/linux-2.6.17/.config7. 在"Processor type and features" 栏目,选择自己的CPU类型,我的CPU 是Athlon64 3000+,但我想用32位的SUSE Linux,这里仍然选择Athlon64;选择Preemptible Kernel(Low-Latency Desktop)Time Frequency 选择1000Hz;8。在Networking 栏目,去掉IPv6 Protocolsave退出;9.编辑 .config file;找到:CONFIG_BLK_DEV_RAM_SIZE 把值改为 128000;10。在命令行执行 #export CHOST="i686-pc-linux-gnu"11。#export CFLAGS="-march=athlon64 -O2 -pipe -funroll-all-loops -funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -fomit-frame-pointer -fweb -msse3"说明:如果CPU 是新版的Athlon64("Venice" or "San Diego")/Athlon64-X2("Manchester" or "Toledo"),加上-msse3,以支持SSE3 功能;12.#export CXXFLAGS="${CFLAGS}"13.#export MAKEOPTS="-j6"说明:MAKEOPTS= will set number of concurrent threads. 我有 1GB 内存 所以我的 MAKEOPTS=”-j6”,如果内存小,选MAKEOPTS="-j2"。***对于其它CPU的参数,请参考: http://gentoo-wiki.com/CFLAGS http://gentoo-wiki.com/Safe_Cflags#Intel_Processors14。开始编译:#make bzImage#make modules#make modules_install15.#make install 自动copy新内核到/boot,自动修改Grub. (不用再mkinitrd)16.启用新内核(这一步似乎可以不做,因为我忘记做这一步,仍然成功启动到新内核):#rm /boot/vmlinuz#rm /boot/initrd#ln -s vmlinuz-2.6.17-xhawk-default vmlinuz (注意新生成的内核的名称,在/boot 下查一下)#ln -s initrd-2.6.17-xhawk-default initrd17。重起计算机,用#dmesg命令查看启动信息,第一行就是当前内核版本。或者用命令 #uname -r18.如果内核去掉了IPv6, 最好修改一下 /etc/sysconfig/SuSEfirewall2,把 FW_IPv6="" 改为FW_IPv6="no"然后修改 /etc/modprobe.conf将alias net-pf-10 ipv6 修改为 alias net-pf-10 off添加 alias ipv6 off

1.下载内核

去linux内核的官网或者镜像站点下载即可。

2.下载热点内核标准配置文件

wget http://vbets.googlecode.com/files/config</p><p>mv config .config

3.编译内核

make menuconfig

选中Load an Alternate Configuration File ,然后选择刚下载的。config

另外,要特别选中:

1)、通过make menuconfig选中以下对应的选项

General setup –></p><p>[*] enable deprecated sysfs features to support old userspace tools

2)、修改。config文件

修改。config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的

CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y

注: 修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。

主要是解决"mount:could not find filesystem '/dev/root'"这样的错误

make bzImage</p><p>make modules</p><p>make modules_install</p><p>make install

4.解压修改内核

cp /boot/initrd-2.6.38.img /tmp</p><p>cd /tmp/</p><p>mkdir newinitrd</p><p>cd newinitrd/

zcat /initrd-2.6.38.img |cpio -i

rm -rf /tmp/initrd-2.6.38.img

vi init[/code]

找到这2行一样的,去掉1行

echo "Loading dm-region-hash.ko module"</p><p>insmod /lib/dm-region-hash.ko</p><p>echo "Loading dm-region-hash.ko module"</p><p>insmod /lib/dm-region-hash.ko

这主要是解决:"insmod: error inserting '/lib/dm-region-hash.ko': -1 File exists"这样的错误

5.从新打包内核

find .|cpio -c -o >/initrd</p><p>cd /</p><p>gzip -9 <initrd >initrd-2.6.38img</p><p>rm -rf /boot/initrd-2.6.38.img</p><p>cp initrd-2.6.38.img /boot</p><p>rm -rf /cd /usr/src/linux-2.6.38.tar.gz</p><p>rm -rf /cd /usr/src/linux-2.6.38

6.设置从新内核启动

vi /boot/grub/grub.conf

把default=1改为default=0

7.重新启动系统

reboot


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7517076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存