b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

centos源码安装内核(centos74内核)

hacker2022-06-09 17:24:26昨日新闻67
本文目录一览:1、CentOS5.5下如何编译安装新内核?

本文目录一览:

CentOS 5.5下如何编译安装新内核?

第一步:下载内核

传送门:地址.笔者下载的是3.2.84版本

第二步:解压编译内核

由于我下的是.tar.xz文件,用tar命令不能直接解压。

1.我的系统里不带xz解压软件,先下载xz-5.0.3.tar.bz2文件并解压安装

tar -jvxf xz-5.0.3.tar.bz2 cd /opt/xz-5.0.3 #进入解压后的文件夹 ./configure make make install

2.解压内核

xz -d linux-3.2.84.tar.xz tar -xvf linux-3.2.84.tar

3.如果是第一次编译内核,并没有上次残留的文件可以跳过该步骤(最好仔细看下指令对应的功能)

make mrproper make clean 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块 make mrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件 make distclean mrproper删除的文件, 加上编辑备份文件和一些补丁文件。

4.搭建编译内核所需要的环境

yum -y install gcc yum install ncurses ncurses-devel yum install openssl-devel

5.进入内核解压文件夹配置内核参数

由于我是个小白不会选,为了方便,直接用make localmodconfig命令,这个命令是以本来的.config文件为基础去选,可以参考论文:嵌入式linux系统的裁剪优化和测试技术.然后我就一直回车直到结束。然后再输入make menuconfig命令进入图形选择菜单,将kenel hacking中的Sample..选项去掉(具体那一项我忘了,尴尬),退出保存。然后编辑.config文件中的“CONFIG_SYSFS_DEPRECATED”,默认该选项为not set,被注释掉的,将其改为y,即修改为“CONFIG_SYSFS_DEPRECATED=y”,之后可能还要修改,后面再说。

6.编译新内核

make bzImage make modules make modules_install

7.安装内核

8.编译安装可能出现的情况

应该是没什么问题, 不过也不排除会出现下面的情况:make:警告:检测到时钟错误。您的创建可能是不完整的。 解决办法:find . -type f -exec touch {} \; 重新编译下就好了。

9.处理下img中的东西(我说不清楚= =)

1)解压initrd文件

# cp /boot/initrd-3.2.84.img /tmp # cd /tmp/ # ls initrd-2.6.30.4.img # mkdir newinitrd # cd newinitrd/ # zcat ../initrd-2.6.30.4.img | cpio -i

释放之后看到如下内容

# ls bin dev etc init lib proc sbin sys sysroot

2)编辑init,删掉其中重复的四行中的两行 echo “Loading dm-region-hash.ko module” insmod /lib/dm-region-hash.ko echo “Loading dm-region-hash.ko module” insmod /lib/dm-region-hash.ko 3)重新打包initrd

# find . | cpio -c -o ../initrd 11538 blocks # cd .. # gzip -9 initrd initrd.img # ls initrd-2.6.30.4.img initrd initrd.img

这里面的initrd.img就是重新打包后的文件。 4)把initrd.img复制到/boot下 命令:#cp initrd.img /boot 5)修改grub.config,在/etc文件夹下 把initrd-3.2.84.img改为initrd.img就可以了 6)reboot重启 记得选择自己的内核!别错过啦!

以上内容就是小编为大家带来的关于CentOS 5.5下编译安装新内核的方法了,希望可以帮助到大家!

如何在CentOS/RHEL上安装或升级新的内核版本

1、对于CentOS/RHEL系统,尽量使用yum方式或RPM包安装/升级内核,需要注意的是红帽的Red Hat Linux服务需要订阅。

2、使用安装新内核而不是直接升级内核,安装新内核不会覆盖旧内核,而升级会导致新内核直接替换旧内核,可能会导致系统无法启动,安装也可以让我们在升级后有回滚的选择。

3、一般地,对于大多数Linux分发版,使用yum/dnf和分发版布官方的存储库来升级内核,这种方式只能升级到该分发版的存储库提供的最新版本,而不是Linux内核组织发布的最新内核。

4、如果想迅速并且安全地使用最新内核,对于CentOS/RHEL系统并不支持yum的方式直接安装或升级。那么此时我们可以使用ELRepo(第三方存储库)进行内核安装升级。

5、下载新内核的源码包进行编译安装,这种方式有助于我们更细致地学习内核底层知识,但在生产环境中不推荐编译安装。

6、尽量使用最新的Linux发行版,新的Liunx发行版包含该发行版维护的新内核,如果有必要,那么请使用如yum upgrade或者yum update来更新你的系统。对于Ubuntu、Debian等发行版,使用apt-get update方式来更新。

CentOS 7 怎样安装或升级最新的内核

一、使用 elrepo 的rpm包升级

查看当前系统内核版本 uname -r

1. 导入key

rpm --import

2. 安装 elrepo 的yum源

rpm -Uvh

3. 安装内核

在yum的elrepo源中,有最新版本内核。直接yum安装即可。

yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

5. 设置系统启动顺序

查看系统启动项:

cat /boot/grub2/grub.cfg |grep menuentry

可以发现有最新版本的内核,此时可以设置最新版本内核为默认启动:

grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'

此时,查看默认启动的系统版本grub2-editenv list:

显示为'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'

6. reboot,重启之后再次查看 uname -r

二、使用源码编译安装升级

1 下载内核源码

下载网址为

wget xxx

2 解压并进入源码目录

3 更新系统并安装依赖软件

#yum update

#yum upgrade

#yum groups install Development Tools

#yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

4 将当前内核配置文件拷贝到当前目录

本来是应该执行make menuconfig来自定义内核配置的,生成配置文件.config; 但是可以直接使用原来系统的内核配置,也就是拷贝/boot目录下的配置文件到当前目录。

cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config

5 使用当前内核的配置

#sh -c 'yes "" | make oldconfig' #centos 6

#sh -c 'y "" | make oldconfig' #centos 7

6 编译安装

#make bzImage

#make modules

#make modules_install

#make install

7 设置系统启动顺序

查看系统启动项:

cat /boot/grub2/grub.cfg |grep menuentry

可以发现有最新版本的内核,此时可以设置最新版本内核为默认启动:

grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'

此时,查看默认启动的系统版本grub2-editenv list:

显示为'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'

8 reboot,重启之后再次查看 uname -r

centos编译安装内核有什么区别

1. 下载内核

内核官网获得了(不让加链接,搜索linux内核官网 )

tar.xz 是完整的内核包

pgp 是.tar.sign后缀的文件,用于校验类似于MD5

patch 是补丁包

2. 解压文件,现在一般采用 .tar.xz 的压缩格式(压缩率最高,但是压缩时间较长)。

/usr/src 一般而言、我们制做linux内核的时候源码一般放在这个路径下,

可以使用 # tar -Jxvf linux-3.13.2.tar.xz -C /usr/src/ 把文件解压到 /usr/src/ 中(在root用户下才有效)

3. 如果是第一次编译内核,并没有上次的残留文件可以可以跳过

# make mrproper

这个步骤

注意:make clean 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块

make mrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件

make distclean mrproper删除的文件, 加上编辑备份文件和一些补丁文件。

4. 接下来是 make config 。

具体参照 《make config 的几种类型》

一般采用 # make menuconfig 的方式

此处需要两个包,选择最简单的yum安装

# yum -y install gcc 和

# yum install ncurses ncurses-devel。

具体选项的作用参考 《Linux-3.10-x86_64 内核配置选项简介 》

对新的内核功能选择,并生成一个 .config 的文件

5. 编译内核

# make 和 # make modules_install (此处命令必须进入/usr/src/linux-x-x-x/才有效,否则会报错)

注意:2.6内核作了优化,不必显示的执行make dep 和make bzImage,只需要直接执行

make 就行,系统会自动完成make dep 和 make bzImage 所做的工作。

6. 安装内核

# make install

7. 修改默认启动的内核(把光标处的default值改成0,就为默认启动,编译成功后默认为1)

# vim /boot/grub/grub.conf

用 cat /boot/grub/grub.conf 验证并测试

# cat /boot/grub/grub.conf

看是否添加成功

8. 重启机器,查看效果

默认的内核就是刚才编译成功的。。。

如何在 CentOS 7 中安装或升级最新的内核

步骤 1:检查已安装的内核版本

让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:

# uname -sr

在 CentOS 7 上检查内核版本

如果我们现在进入 ,在撰写本文时,我们看到最新的内核版本是 4.10.1(其他版本可以从同一网站获得)。

还要考虑的一个重要的事情是内核版本的生命周期 – 如果你当前使用的版本接近它的生命周期结束,那么在该日期后将不会提供更多的 bug 修复。关于更多信息,请参阅 内核发布 [2] 页。

步骤 2:在 CentOS 7 中升级内核

大多数现代发行版提供了一种使用 yum 等包管理系统 [3] 和官方支持的仓库升级内核的方法。

但是,这只会升级内核到仓库中可用的最新版本 – 而不是在可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

要在 CentOS 7 上启用 ELRepo 仓库,请运行:

# rpm --import

# rpm -Uvh

在 CentOS 7 启用 ELRepo

仓库启用后,你可以使用下面的命令列出可用的内核相关包:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

yum – 找出可用的内核版本

接下来,安装最新的主线稳定内核:

# yum --enablerepo=elrepo-kernel install kernel-ml

在 CentOS 7 中安装最新的内核版本

最后,重启机器并应用最新内核,接着运行下面的命令检查最新内核版本:

uname -sr

验证内核版本

步骤 3:设置 GRUB 默认的内核版本

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

GRUB_TIMEOUT=5

GRUB_DEFAULT=0

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"

GRUB_DISABLE_RECOVERY="true"

接下来运行下面的命令来重新创建内核配置。

# grub2-mkconfig -o /boot/grub2/grub.cfg

在 GRUB 中设置内核

重启并验证最新的内核已作为默认内核。

Booting Default Kernel Version in CentOS 7

在 CentOS 7 中启动默认内核版本

恭喜你!你已经在 CentOS 7 中升级内核了!

总结

在本文中,我们解释了如何轻松升级系统上的 Linux 内核。我们还没讲到另外一个方法,因为它涉及从源代码编译内核,这可以写成一本书,并且不推荐在生产系统上这么做。

虽然它是最好的学习体验之一,并且允许细粒度配置内核,但是你可能会让你的系统不可用,并且可能必须从头重新安装它。 收起

centos 6 如何安装内核源码包

(1) http 安装 centos 6.2

假设: 1 本机有grub , 将 iso 中isolinux中的 boot.cat grub.conf isolinux.bin vmlinuz

boot.msg initrd.img isolinux.cfg splash.jpg vesamenu.c32 拷贝到 本机的/boot中

2 将centos 6.2的光盘复制到 http服务下例如 /var/www/html 下面,将光盘的iso也复制到这个目录下,有时安装过程可能需要iso中的东西,centos会自动从iso文件中寻找

安装步骤:

1 进入grub的命令行模式,然后

grub root (hd0, 0 ) #选择boot所在的分区作为根,根据自己的情况来定

grub kernel vmlinuz

grub initrd initrd.img

grub boot #启动

2 选择url安装,配置ip神马的就行了

(2) 修改源

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

vim /etc/yum.repos.d/CentOS-Base.repo

1.[base]

2.name=CentOS-$releasever - Base

3.#mirrorlist=;arch=$basearchrepo=os 4.baseurl= 5.gpgcheck=1 6.gpgkey= 7.

8.#released updates

9.[updates]

10.name=CentOS-$releasever - Updates

11.

12.#mirrorlist=;arch=$basearchrepo=updates 13.

14.baseurl= 15.

16.gpgcheck=1 17.

18.gpgkey= 19.

20.#additional packages that may be useful

21.

22.[extras]

23.

24.name=CentOS-$releasever - Extras

25.#mirrorlist=;arch=$basearchrepo=extras 26.

27.baseurl= 28.

29.gpgcheck=1 30.

31.gpgkey= 32.

33.#additional packages that extend functionality of existing packages

34.

35.[centosplus]

36.

37.name=CentOS-$releasever - Plus

38.

39.#mirrorlist=;arch=$basearchrepo=centosplus 40.

41.baseurl= 42.

43.gpgcheck=1 44.

45.enabled=1 46.

47.gpgkey= 48.

49.#contrib - packages by Centos Users

50.

51.[contrib]

52.

53.name=CentOS-$releasever - Contrib

54.

55.#mirrorlist=;arch=$basearchrepo=contrib 56.baseurl= 57.

58.gpgcheck=1 59.

60.enabled=1 61.

62.gpgkey= #yum clean all // 清除缓存

#yum update

#yum install xxx

下载源码包:

wget

rpm -ivh xx.rpm

cd rpmbuild/SPECS 此rpmbuild是安装后在当前文件夹下的一个文件夹

rpmbuild -bp --target=`uname -m` kernel.spec 此rpmbuild是命令

之后 rpmbuild里有 BUILD,里面就是源代码了

yumdownloaer 的使用。

Ncurses 提供字符终端处理库,包括面板和菜单。

yum install ncurses-devel

yum 中的几个变量

$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据RedHat-release包进行判断。

$arch,cpu体系,如i686,athlon等

$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。

对yum.conf设定完成,我们就可以好好体验yum带来的方便了。

开机自动启动配置文件,一段时间不用都忘了 /etc/rc.local

本篇文章来源于 Linux公社网站() 原文链接:

发表评论

评论列表

  • 怎忘晚鲸(2022-06-10 05:19:10)回复取消回复

    -3.10-x86_64 内核配置选项简介 》对新的内核功能选择,并生成一个 .config 的文件5. 编译内核# make 和 # make modules_install (此处命令必须进入/usr/src/linux-x-x-x/才有效,否则会

  • 假欢怎忘(2022-06-10 04:04:50)回复取消回复

    认启动的系统版本grub2-editenv list:显示为'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'8 reboot,重启之后再次查看 unam

  • 笑羞容(2022-06-09 23:32:53)回复取消回复

    编译生成文件, 还有内核配置文件, 再加上各种备份文件make distclean mrproper删除的文件, 加上编辑备份文件和一些补丁文件。4. 接下来是 make config 。具体参照 《