扑街
级别:管理员 威望:4 经验:134 货币:6128 体力: 来源:青山精神病院 总发帖数:2271 注册日期:2001-07-23
|
|
查看 邮件 主页 QQ 消息 引用 复制 下载
Linux 核心重编与升级
1. Linux核心提供什么功能
Linux 核心是一个档案(/boot/vmlinuz
for most case)
核心支援各项电脑硬体配备,让所有程式可以透过核心与电脑硬体沟通。
有效率的核心必须与电脑状况(硬体周边)配合
核心提供周边硬体驱动程式:网路卡、音效卡、SCSI卡等
通讯协定:TCP/IP、PPP、Router等
核心提供档案系统支援:ext2、umsdos、iso9660...
核心提供记忆体管理、多CPU平行处理....
2.Linux核心重编(Make
Kernel)与升级有何不同
核心重编利用原始码重新编译,目的在打造一个新核心(不一定是新版)
核心升级利用新版本原始码,以编译方式,产生一个新版的核心
核心升级必须经过核心重编的程序
3.Linux核心何时需要重编
为核心瘦身,去除原有核心支援但用不到的功能时
新增原有核心不支援的功能(包括模组)时
修正旧有核心错误(例如核心无法开机)时
核心升级时
4.Linux核心何时需要升级
旧版核心可能错误的修正(Bug Fix)
新周边设备或系统功能无法由旧版核心取得支援时
核心版本落后太多时
5.新版Linux核心何处取得
官方(Official)Kernel ftp Site ftp://ftp.kernel.org
Linux HeadQuarters http://www.linuxhq.com
国内收集kernel网站 ftp://ftp.mgt.ncu.edu.tw/Linux/kernel
ftp://ftp.nsysu.edu.tw/Linux/metalab.unc.edu/kernel.org/pub/linux/kernel
ftp://ftp.ccu.edu.tw/pub3/linux/kernel.org-pub/linux/kernel
6.Linux核心版本编号所代表的意义
Linux核心版本编号格式为:major.minor.patchlevel major :
主要版本编号,极少变动 minor : 次要版本编号,这是Linux核心版本的血统 patchlevel :
目前核心(次要)版本的修补编号
"uname -a" 可以读取目前新的版本及核心重编的时间 Linux
nmc.nchu.edu.tw 2.2.15 #1 Wed May 31 10:56:54 CST 2000 i586 unknown
代表核心版本为2.2.15,核心重编的时间为10:56:54 05/30/2000
单号的次要版本表示测试版,双号代表正式(稳定)版本
7.Linux核心升级方式有哪些
直接由新版本核心原始档,重编核心 优点:直接升级至该核心版本
缺点:你必须较多时间下载整个核心的原始档(压缩过2.2.15的核心原始档约16MB大小) 适合作较大幅度的版本提升,例如
2.2.6 --> 2.2.15
修补核心原始档(Patch)
利用这种方式升级,你所需要修补的次数为新版本与旧版本的版本修补次数编号差。例如:由2.2.12升级至2.2.15,你必须下载patch-2.2.13、patch-2.2.14及patch-2.2.15,并逐一修补后,再行编译核心。修补的方式如下(:
####首先你必须将patch file复制至/usr/src中 #cd /usr/src #gzip -cd
patch-2.2.13.gz | patch -p0 #gzip -cd patch-2.2.14.gz | patch
-p0 #gzip -cd patch-2.2.15.gz | patch -p0 接著你就可以开始重编核心了。
优点:Patch File一般比全部核心原始档小很多(每一个Patch大小由数百KB到1 MB左右不等),下载较快。
缺点:版本差距过大不适合以此方式升级。
8.重编核心
前置作业
备份旧有核心 #cp /boot/vmlinuz /boot/vmlinuz.2.2.12
取得新核心压缩档(ex.linux-2.2.15.tar.gz),或修补程式档(Patch)(ex.patch-2.2.13.gz,
patch-2.2.14.gz, & patch-2.2.15.gz)
备份/usr/src/linux
一般linux只是一个符号链结,你可以直接将之移除
将压缩档在/usr/src下解开 #tar zxvf
linux-2.2.15.tar.gz #mv linux linux-2.2.15 #ln -s
linux-2.2.15 linux
Change Directory To /usr/src/linux
重编核心的步骤 (以2.2.12升级至2.2.15为例)
1.make
mrproper 在linux目录下执行"make
mrproper",此一步骤目的在清除不稳定目的档(.o),确保核心重编时顺利成功。这个步骤在修补核心(patch)后重编核心时,为重要且必要。
2.make config (make menuconfig, make xconfig)
这是重编核心时极重要的一个步骤,你必须针对系统现况,回答上百个问题,错误的选项可能导致核心无法使用。
选像设定方式有三种:"make config"、"make menuconfig"及"make xconfig";"make
config"采交谈式一问一答;"make menuconfig"在文字模式下,采选单方式设定核心选项;"make
xconfig"则是在图形模式(X-Window)下的选单设定模式。
当你完成冗长的设定程序之后,如果未指定设定内容储存档名,你的设定将会被储存在./usr/src/linux/arch/i386/defconfig中,下次重编核心时,这就是你的预设(default)选项来源。
3.make dep 这个步骤帮你设定所的附设档案,确保include file的相依关系。
4.make clean 清除旧系统核心与driver,如果你第一次重编核心,你可以略过这个步骤。
5.make zImage 编制一个新的核心,如果你的心核心大小超过640KB,你必须改用"make
bzImage"。 如果你希望编制新核心的过程中,顺带制作一个开机片,你可使用"make zdisk" or "make
bzdisk"(if new kernle is larger than 640KB)。
这个步骤所需时间约20~40分钟不等(or
longer),端视你系统CPU与RAM数量而定。编译成功后,新核心位置在/usr/src/linux/arch/i386/boot/zImage
or /usr/src/linux/arch/i386/boot/zbImage。
6.改变系统使用之核心
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.2.15
#cd /boot #ln -s /boot/vmlinuz-2.2.15 /boot/vmlinuz
###请确定你原有核心以备份。(如前置作业所述)
如果你为使用lilo开机,你必须在编译核心时制作开机片,或直接用"dd"将核心载入磁片中,以便开启新系统。
7.编译系统模组 #make modules #make modules_install
你必须执行此一步骤,否则你的心核心将无法使用你的旧模组。新的模组将会被安装至/lib/modules/2.2.15目录下。
8.更新System.map #cp /usr/src/linux/System.map
/boot/System.map-2.2.15 #rm /boot/System.map #ln -s
System.map-2.2.15 System.map
每一版本的系统核心都有其特有的系统功能映射档System.map,以定义该版核心的所有功能资讯。
9.编辑lilo.conf,保留旧核心开机选项
没有人可以保证编辑的新核心一定可以开启系统,保留旧核心开机选项是一个保险做法。你的lilo.conf修改之后大约会像以下的内容:
boot=/dev/hda map=/boot/map install=/boot/boot.b
prompt timeout=50 default=linux
image=/boot/vmlinuz label=linux read-only
root=/dev/hda1
image=/boot/vmlinuz-2.2.12-20
label=linux.old read-only root=/dev/hda1
执行过lilo -v -v -v之后你就可以准备重新开启新核心了。(By Reboot System)
10.uname -a 检查新核心版本。(After Reboot) [root@nmc
~]# uname -r 2.2.15 --> Kernel is now 2.2.15
嘎嘎,对任何一种LINUX都有用&内核几多都一样~!
[ 此消息由 19821119 在
2002-10-13.18:49:30 编辑过 ] |
---------------------------------------------------------- 今生无缘,泪如雨下,我试着忘记红尘中你留下的故事,可数日以来我始终无法走出你曾给我的感情世界,我深知让往事随风不是说说那么容易的.
天空下我们彼此站成了两个无法相溶的世界我却又总想忍住悲伤,而思念像穿透了灵魂一般不可抑制  |
编辑 删除 发表于
2002-10-13.18:02:06 |
IP: 已记录 | |
|