Chinaunix首页 | 论坛 | 博客
  • 博客访问: 252156
  • 博文数量: 52
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 08:39
文章分类
文章存档

2011年(4)

2010年(5)

2009年(6)

2008年(37)

我的朋友

分类: LINUX

2008-04-19 11:39:09

首先列出来redhat下把2.4.20升级到了2.4.26的步骤索引:
[root@localhost src]# tar vxfj linux-2.4.26.tar.bz2
[root@localhost src]# ln Cs linux2.4.26 linux
[root@localhost src]# cd /usr/src/linux
[root@localhost linux]# cp /boot/config-2.4.20-8 .config
[root@localhost linux]# make menuconfig
[root@localhost linux]# make dep
[root@localhost linux]# make clean
[root@localhost linux]# make bzImage
[root@localhost linux]# make modules
[root@localhost linux]# make modules_install
[root@localhost linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.26
[root@localhost linux]# cp .config /boot/config-2.4.26
[root@localhost linux]# cp System.map /boot/System.map-2.4.26
[root@localhost linux]# mkinitrd /boot/initrd-2.4.26.img 2.4.26
[root@localhost linux]# cd /boot
[root@localhost boot]# rm -f System.map vmlinuz
[root@localhost boot]# ln -s System.map-2.4.26 System.map
[root@localhost boot]# ln -s vmlinuz-2.4.26 vmlinuz
[root@localhost boot]# cd grub
[root@localhost grub]# vi grub.conf
[root@localhost grub]# reboot
这是我在redhat下编译内核的过程,这段时间以来我们几个做毕业设计的同学都练习着编译内核,我是在redhat下把2.4.20升级到了2.4.26,按照网上给出的步骤,一步步小心的编译,最终内核版本成功升级到2.4.26,我的计算机是笔记本,usb接口,前两次编译的时候没有配置好,在查阅资料后,第三次在make
menuconfig中设置了usb鼠标的内核加载,这样就OK了.由于redhat9内核版本是2.4的,不支持windows下ntfs的访问,后来用make config第四次编译了内核,添加了访问ntfs文件系统和允许修改ntfs文件系统两个模块.这里我把内核编译过程中遇到的一些命令的意义该列出来.
 
大体可以分成下面几个步骤:配置内核,编译内核,安装模块,启动设置,重启.

首先进入/usr/src/linux/目录,输入"make menuconfig"命令行,会出现一个界面,这就是内核配置工具,
在每个选项前都有个括号,但有的是中括号[],有的是尖括号<>,用空格键选择可以发现,中括号要么时空,要么时"*";而尖括号里可以是空,"*"和"M",这表示前者对应的项要不不要,要么做在核心里;后者则多一样选项:可以做成模块(可加载模块:它是一段未被直接连接到内核的代码块.可以单独编译它们,并可在任何时候将其加载到正在运行的内核中或从内核中卸载.由于它的灵活性,如今已成为编写某特定内核属性的首方法.一些流行的设备驱动也采用可加载模块的形式.).
然后到了编译内核的阶段,make clean:在编译内核之前(最好在配置内核之前),记得删除/usr/src/linux目录下的陈旧目标文件(.o结尾)和从属文件,这并不是完全必要的,但执行命令之后就消除了一种系统出错的可能.

make dep:它的意思是依赖性检查--建立所有的从属文件中所调用的头文件的全路径名,也就是检查这些包含文件是否存在于制定的目录下.这一般不需要太长的时间.

make bzImage:它会编译内核,大约需要10分钟到半小时,然后将内核编译后生成的映像文件"zImage"存放在/arch/i386/boot目录下.这是一个新的压缩后的内核.

make modules和make modules_install:如果配置内核其中的一部分属性为可加载模块,那么必须使用这
两个命令来编译并安装可加载驱动模块.make modules将编译所有的模块并更新./linux/modules目录.在该目录下,会出现许多符号连接,指向内核目录下相应的目标文件.make_modules_install将把所有新建的模块copy到/lib/modules/kernel_release/目录下.只要我们引导这个支持可加载模块的内核,内核就能随意装载或卸载内核.编译结束后系统将显示zImage文件存放的位置.

当上面的编译工作都顺利完成后,我们就可以在/lib/modules目录下看到2.4.26.接下来是启动的设置,用mkinitrd生成initrd.img,它的作用就是给内核提供启动所需要的驱动.

安装redhat9时选择的是grub,所以修改的是grub.conf里的设置.一般在这里不要把映像名写错,root指定的盘符位置也不要弄错,可以用df命令查看一下.

最后再检查一下grub.conf里的内容,然后reboot.
阅读(1429) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~