RHEL6.1编译内核-kernel-3.0.4
发表于133 天前⁄Linux基础⁄评论数
21⁄ 被围观 4,077 views+
文章目录[隐藏]
·1、到www.kernel.org上下载相应的内核源码包
·2、确认你的系统中已经具备了编译软件的基本条件,也就是要安装makegcc gcc-c++ ncurses-devel和库工具等等
·3、解压内核源码包
·4、配置内核编译参数
·5、编译内核
·6、安装编译好的内核与模块
·7、查看或修改GRUB菜单(为了确认你是不是真的把内核安装好了)
·8、重新启动系统,测试新内核的工作情况
关于内核的其他相关内容,请大家在羽飞博客上自己查询,本文章以实战为主。
下面具体来看一下,在HREL6.1上如何重新编译内核,并升级到3.0.4的详细步骤:
1、到www.kernel.org上下载相应的内核源码包
[root@yufei kernel]#wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2
--2011-09-0610:41:45-- http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2
Resolvingwww.kernel.org... 130.239.17.5, 149.20.4.69, 199.6.1.165, ...
Connecting towww.kernel.org|130.239.17.5|:80... connected.
HTTP request sent,awaiting response... 200 OK
Length: 76759291 (73M)[application/x-bzip2]
Saving to: “linux-3.0.4.tar.bz2”
100%[=======================================================>]76,759,291 207K/s in 6m 44s
2011-09-06 10:48:32(185 KB/s) - “linux-3.0.4.tar.bz2” saved [76759291/76759291]
2、确认你的系统中已经具备了编译软件的基本条件,也就是要安装make gcc gcc-c++ ncurses-devel和库工具等等
3、解压内核源码包
[root@yufei kernel]#tar jxvf linux-3.0.4.tar.bz2 -C /usr/src/
注意,如果说你的系统时间不对的话,可能会提示时间相关的错误,所以要先确认一下你的系统时间。
4、配置内核编译参数
3.0.4的内核文件解压出来是494M
[root@yufei kernel]#cd /usr/src/
[root@yufei src]# du-sh *
4.0K debug
46M kernels
494M linux-3.0.4
[root@yufei src]# cdlinux-3.0.4/
[root@yufeilinux-3.0.4]# make menuconfig
HOSTCCscripts/basic/fixdep
HOSTCCscripts/kconfig/conf.o
*** Unable to find the ncurses libraries orthe
*** required header files.
*** 'make menuconfig' requires the ncurseslibraries.
***
*** Install ncurses (ncurses-devel) and tryagain.
***
make[1]: ***[scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig]Error 2
如果出现上面的错误,记得要安装ncurses-devel,如果你设置了本地源的话,就很简单了。
[root@yufeilinux-3.0.4]# yum install ncurses-devel
然后再执行就能显示界面了。否则你在终端始终执行不了的。
注:上面是文本方式的介面,也就是tui如果说,在X界面上的话,可以用make xconfig(同样需要gt-devel来支持)
上面就是创建.config这个内核的配置文件,但用make menuconfig是利用新内核所固有的默认配置基础上所进行的调整,如果说要在原来系统内核的基础上进行修改的话,那么就需要用到make oldconfig这个命令
为了能在原来的基础上快速的来配置参数,我们可以直接用系统中的,然后在其上面进行少量的修改
[root@yufeilinux-3.0.4]# cp /boot/config-2.6.32-131.0.15.el6.x86_64 .config
[root@yufeilinux-3.0.4]# make oldconfig
所以这里需要大家了解一下makemenuconfig与make oldconfig的区别,他们都是针对.config这个文件来讲的。
(1). 如果.config不存在,运行makemenuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。
(2). 如果.config存在,运行make menuconfig时的缺省设置即是当前.config的设置,若对设置进行了修改,.config将被更新。
(3). arch/arm/defconfig是一个缺省的配置文件,make defconfig时会根据这个文件生成当前的.config。
(4). arch/arm/configs文件夹中有许多命名为xxx_defconfig的配置文件,如果运行make xxx_defconfig,当前.config文件会由xxx_defconfig文件生成。
(5). make oldconfig的作用是备份当前.config文件为.config.old,如若make config/menuconfig设置不当可用于恢复先前的.config。
所以说,根据上面的内容,可以得出这样一个结论。为了使用新的内核功能,当然是用make menuconfig根据新内核默认的配置。如果说,你是在原来内核基础上,增加内核的某个功能的话,就可以用make oldconfig来进行局部的配置了。
我们只增加一个功能,就是增加对NTFS读写功能。他的位置如下图
退出记得保存文件啊,随后会给出相应的提示
*** End of theconfiguration.
*** Execute 'make' tostart the build or try 'make help'.
5、编译内核
[root@yufeilinux-3.0.4]# make bzImage
这里需要一段时间,取决于你的系统性能。
此处省略无数字节……
BUILDarch/x86/boot/bzImage
Root device is (8, 3)
Setup is 14908 bytes(padded to 15360 bytes).
System is 3819 kB
CRC 3fbfb9f7
Kernel:arch/x86/boot/bzImage is ready (#1)
[root@yufeilinux-3.0.4]# make modules
这里也是需要一段时间
此处省略无数字节……
IHEXfirmware/edgeport/down3.bin
IHEX2FW firmware/whiteheat_loader.fw
IHEX2FW firmware/whiteheat.fw
IHEX2FW firmware/keyspan_pda/keyspan_pda.fw
IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
注:上面这两步,可以用make直接代替,省时少力。但这样如果有问题的话,可能就不好排除了,
6、安装编译好的内核与模块
(1)安装模块
[root@yufeilinux-3.0.4]# make modules_install
这里也是需要一段时间,这一步就是把编译好的modules拷贝到/lib/modules/相应的内核目录里面
此处省略无数字节……
DEPMOD3.0.4
/usr/src/linux-3.0.4/scripts/depmod.sh:line 43: 17955 Killed"$DEPMOD" "$@" "$KERNELRELEASE"
make: ***[_modinst_post] Error 137
注意:上面出现了错误
这是由于SWAP不足造成的,所以要适当增加内存或者是SWAP的大小,因为我是虚拟机做的实验,以前是256M内存,我调整到512M,swap我从256M最后调整到了1.5个G才解决了上面的错误
关于增加SWAP的方法,请大家搜索羽飞博客里面的相关文章,我这里来介绍一个简单的。
[root@yufeilinux-3.0.4]# dd if=/dev/zero of=/swap2 bs=1M count=1500
[root@yufeilinux-3.0.4]# mkswap /swap2
[root@yufeilinux-3.0.4]# swapon /swap2
这样简单的三步就增加了SWAP了,而且在下次启动的时候,SWAP还是原来的。
最后再执行
[root@yufeilinux-3.0.4]# make modules_install
此处省略无数字节……
DEPMOD3.0.4
就没有错误了。
(2)安装系统的核心
[root@yufeilinux-3.0.4]# make install
sh/usr/src/linux-3.0.4/arch/x86/boot/install.sh 3.0.4 arch/x86/boot/bzImage \
System.map"/boot"
ERROR: modinfo: couldnot find module vmware_balloon
这里有个提示,就没有找到相应的模块,这个我们先不管了,继续下面的内容
注意:如果说你想知道make install做了哪些事的话,你可以通过/usr/src/linux-3.0.4/arch/x86/boot/install.sh这个文件来了解。
7、查看或修改GRUB菜单(为了确认你是不是真的把内核安装好了)
[root@yufeilinux-3.0.4]# cat /boot/grub/grub.conf
里面多了新内核的选项
8、重新启动系统,测试新内核的工作情况
注意,在启动的时候,需要自己进来一下选择,否则默认还是以前的内核启动哦。除非你在上一步把默认启动项给改了。
[root@yufei ~]# uname-r
3.0.4
如果说,你只是为了玩,那么想把自己编译的内核删除,那么请用下面的方法
[root@yufei ~]# rm -fr/boot/System.map-3.0.4
[root@yufei ~]# rm -fr/boot/vmlinuz-3.0.4
[root@yufei ~]# rm -fr/boot/initramfs-3.0.4.img
[root@yufei ~]# rm -fr/lib/modules/3.0.4
[root@yufei ~]# vim/boot/grub/grub.conf
把增加的给删除了并调整一下默认的启动项为0,也就是第一项
然后再把你解压出来的包给删除就OK了。
最后总结一下编译内核的步骤
tar jxvflinux-3.0.4.tar.bz2 -C /usr/src/
cd/usr/src/linux-3.0.4/
make menuconfig
make bzImage
make modules
或者用make直接代替上面两步
echo $?
为了确保没有错误,可以用上面的命令来查看是否有错误,如果是0的话,就表示没有错误或警告了
make modules_install
make install
分享到:
相关推荐
rhel-server-6.1-x86_64-dvd.iso rhel-server-6.2-x86_64-dvd.iso rhel-server-6.3-x86_64-dvd.iso rhel-server-6.4-x86_64-dvd.iso rhel-server-6.5-x86_64-dvd.iso rhel-server-6.6-x86_64-dvd.iso rhel-server-...
rhel-server-5.1-x86_64-dvd.iso rhel-server-5.2-x86_64-dvd.iso rhel-server-5.3-x86_64-dvd.iso rhel-server-5.4-x86_64-dvd.iso rhel-server-5.5-x86_64-dvd.iso rhel-server-5.6-x86_64-dvd.iso rhel-server-...
标题中的"rhel-baseos-9.0-beta-0-x86_64-dvd.iso.rar"揭示了我们要讨论的核心内容:Red Hat Enterprise Linux(RHEL)的第9.0版本的BaseOS(基础操作系统)镜像文件。这个版本处于Beta测试阶段,目标平台为64位x86...
标题中的"rhel7.2内核补丁kernel-3.10.0-327.62.1"指的是Red Hat Enterprise Linux (RHEL) 7.2操作系统的内核更新补丁,版本号为3.10.0-327.62.1。RHEL是一款企业级的Linux发行版,它提供了稳定和安全的平台用于...
compat-oracle-rhel4-1.0-5.i386.rpm
资源是Redhat7.4镜像文件的云盘链接,包括rhel-server-7.4-x86_64-boot.iso和rhel-server-7.4-x86_64-dvd.iso 仅供学习交流,严禁用于商业用途,请于24小时内删除
cuda-repo-rhel7-11-0-local-11.0.2_450.51.05-1.x86_64
rhel-server-7.1-x86_64-dvd.iso文件
RHEL5.1-Server-20071017.0-i386-DVD.iso
资源是Redhat7.1镜像文件的云盘链接,包括rhel-server-7.1-x86_64-boot.iso、rhel-server-7.1-x86_64-dvd.iso和supp-server-7.1-rhel-7-x86_64-dvd.iso 仅供学习交流,严禁用于商业用途,请于24小时内删除
资源是Redhat7.3镜像文件的云盘链接,包括rhel-server-7.3-x86_64-boot.iso和rhel-server-7.3-x86_64-dvd.iso 仅供学习交流,严禁用于商业用途,请于24小时内删除
资源是Redhat7.2镜像文件的云盘链接,包括rhel-server-7.2-x86_64-boot.iso和rhel-server-7.2-x86_64-dvd.iso 仅供学习交流,严禁用于商业用途,请于24小时内删除
rhel-server-7.0-x86_64-dvd.iso 网盘下载地址 【付费下载之后的用户,可留言获取更多下载资源】
rhel-server-6.3-i386-dvd.iso 网盘下载地址 确保资源可用
IBM system x3530 M4 C105 raid 驱动linux 64位版 ,适用于redhat 6
2. **ko_version.txt**:这是一个文本文件,可能包含了内核对象(Kernel Object)的版本信息。在Linux系统中,ko代表内核模块,此文件可能记录了驱动程序对应的内核版本,帮助系统识别和加载正确的驱动。 3. **SRPM...
rhel-server-7.0-x86_64-dvd 操作系统 网盘下载地址 确保资源可用
- **内核模块**:可动态加载和卸载的功能模块,用于扩展内核功能而无需重新编译整个内核。 #### Device Management (设备管理) - **udev**:一个用户空间守护进程,用于动态地管理设备节点。 - **/dev**:存放所有...
rhel-server-6.3-i386-dvd.iso 自己收藏了Linux(小红帽)系统的几个ios镜像文件。直接下载安装在虚拟机上。方便大家学习 文件里包含了下载地址。
rhel-server-6.7-x86_64-dvd.iso 64位网盘下载,安装客户端,即可下载,百度网盘下载 rhel-server-6.7-x86_64-dvd.iso 64位网盘下载