在需要内核支持较多的外设和功能时,内核可能变得很大,此时可以编译大内核:
# make bzImage
编译的时间与机器的硬件条件及内核的配置等因素有关,以笔者的64MB内存的赛扬300为例,编译内核一次大致需要20多分钟。所获得的内核的位置在/usr/src/linux/arch/i386/boot目录下,当然这里假设用户的CPU是x86型的。
如果选择了可加载模块,编译完内核后,要对选择的模块进行编译:
# make module (编译选择的模块) # make module-install (将编译后的模块转移到系统标准位置)
模块在系统中的标准目录位于/lib/modules/x.y.z,后面的x.y.z是版本号,为安全起见,在运行# make modules-install之前最好对/lib/modules进行备份。模块通常是带有扩展名.o的文件,使用命令# lsmod可以对当前内核的模块进行列表。
软件下载与解包
选择相对快速并且具有权威性的站点下载最新的内核源代码包,例如条件允许的话可以到下面的站点下载:ftp://sunsite.unc.edu/pub/linux/kernel
国内Linux用户可以到下面的站点下载:
http://studio.openunix.org http://www.clinuxworld.com
注意,如果升级版本的跨度很大,并且预计会配置外部模块时,还要下载最新的模块工具modules-x.y.z.tar.gz。
Linux系统的核心代码存放于目录/usr/src/linux,实际上,该目录是一个链接,指向当前所用的核心版本的目录,例如如果当前使用的版本是2.0.34,则该核心的实际目录应该是:/usr/src/linux- 2.0.34。而新下载的内核中的目录是linux,这样,直接在/usr/src下解包会导致原来的内核目录被覆盖。所以稳妥的做法是,首先删除链接 linux,然后解包、更名、重新链接。
在解包前要确认在/usr/src目录下没有叫linux的目录,或者不再想保留该目录。
另外,随着Linux内核功能的增强及对更多外设的支持,文件包也越变越大,当前最新的稳定版2.2.14内核压缩包的大小约为14MB,但实际上解压缩及编译等环节,要求/usr/src目录所在的分区的空闲空间大于60MB字节。
启用新内核
将编译好的新内核拷贝到系统目录/boot下,例如
# cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage-2.2.14
然后,编辑系统引导配置文件/etc/lilo.conf,仿照原有选项添入新内核选项,给它起一个明显好记的标签(label),记住此时最好保留原有内核以及相应的选项,这样不用害怕升级失败而机器启动不了,至少还可以使用旧的内核引导自己的计算机。保存编辑后退出,此时要记住运行命令:# lilo,更新系统引导映象,这样对lilo.conf的修改才能起作用。
重启机器后,在LILO的提示符下按“Tab”键,则应该看到加入的新内核选项。
对于当前国内进行汉化后的Linux版本,由于其中的几个主要版本是在内核中进行,例如冲浪平台的Xteam Linux、蓝点Bluepoint Linux等,所以使用这些发行版本的用户如果按照上面的步骤进行内核升级则会导致汉化失败、系统运行不稳定等后果。用户需要等待厂家发行新内核的汉化包,然后到厂家指定的下载站点下载,按照其中的说明进行升级。
(参考链接: http://linux.ccidnet.com/art/741/20070105/994723_1.html)
|