Chinaunix首页 | 论坛 | 博客
  • 博客访问: 206476
  • 博文数量: 60
  • 博客积分: 2142
  • 博客等级: 大尉
  • 技术积分: 560
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-13 00:08
文章分类

全部博文(60)

文章存档

2010年(2)

2009年(7)

2008年(30)

2007年(21)

我的朋友

分类: LINUX

2007-12-04 10:03:33

到,下载最新内核源码,拷贝到/usr/src下解压,注意一些软连接的更改,包括/usr/include 下的asm,system.map等到新内核源码的软连接的修改,以免在内核编译到/usr/include下找不到正确文件。首先去除一些以前生成的.o文件,(如果一个源码被多次编译后,会在同源码同一级目录里产生一些旧的.o文件,影响下一次编译),使用 make mrproper 即可删除旧文件,然后到内核文件下make xconfig 或者make menuconfig (make menuconfig需要ncurse包make xconfig也需要,好象是tk,忘记了,一般都安装了,如果没有您可没法运行的哦.什么你不知道什么是ncurse和tk是什么?去去搜索一下吧)选取要编译到内核或模块文件后,然后make dep确定模块间的依赖性,然后make clean 清除一些不必要的文件,那些乱七八糟的东东是可能会导致您在编译过程中出现错误的哦,一定要做,开始make bzImage,生成内核镜像,还有make initrd生成一些驱动的镜像,(这些之后分别要拷到/boot 下做vmlinuz和initrd的软连接源文件,
#cp /usr/src/linux-2.4.22/arch/i386/boot/bzImage /boot/vmlinuz-2.4.22),可以在命令之后加"&"让程序在后台执行或加">/dev/null",这样接下来就可以编译模块了,
#make modules这个步骤就是把您在make menuconfig里边所选择为M的东东,全部编译成模块并放在/usr/src/linux-2.4.22/下…
#make modules_install[/color]
hoho, 这里可是安装module的步骤了,您所选择的模块编译完成后都放在/usr/src/linux-2.4.22某子目录下,哪个子目录您看一下就知道 了,make modules之后会有提示的..我也忘记了,呵呵:),这多不好,而insmod以及相关指令都是从/lib/modules/linux- 2.4.22下取module的啊,这个指令就是把编译好的mod放到/lib/modules下去的哦,如果开始没有Linux-2.4.22目录, (也就是说您是第一次编译2.4.22的内核),那么这条指令就会自动创建该目录,如果已经有了。那就会把编译后的内核放进该目录 …您以后要把mod调进kernel的时候(insmod,modprobe)都从这里寻找.o的哦…
如果你用的是SCSI硬盘并且采用的是ext3分区格式的话,请注意,您一定要制作initrd.img(因为SCSI卡的驱动包括 在这个里边),如果你使用的是IDE硬盘,您可以跳过这一步,当然,您要是有耐心的话,这里学习一下也没什么坏处哦
mkinitrd可以制作 initrd.img,一般是这么使用的,如果想具体了解的话,可以man mkinitrd,如果只想搞个initrd.img出来的话,那就mkinitrd /boot/initrd-custom.img 2.4.22就在/boot目录下创建了一个initrd-custom.img文件,也就是初始化镜像…(initialed ramdisk)…里边主要有一些驱动,因为放在内核中就显得过大,所以编译进initrd.img,在启动中释放…而这个2.4.22就表示 /lib/modules下面的2.4.22目录了…
到这里,[color=olive]以下就有两种做法哦…[/color]
[color=olive]一  手动更新System.map文件[/color]
它是当前正在运行的kernel的fuctions的说明,如果您编译内核后不更新System.map,如果碰到问题.,Trouble shooting就很困难了哦,您可有可能遇见很多烦人的信息哦,所以我们还是手动更新一次哦,也蛮简单的…
#cp /usr/src/linux-2.4.22/System.map /boot/System.map 
系统会提示您: 
Overwrite the ‘boot/System.map’
敲入Y,回车
[color=olive]二 make install[/color]
说 到make install我们这里又有点话要说哦,make install就相当于一个自动化的过程啦,因为其他东东它都会帮您做好的,如果您确实比较懒,或者已经对前边的步骤已经很没耐心了,您就直接执行此步骤 吧…当然您可以很快做好新系统了,而且可以重新从新内核启动哦,但是您可能对这中间发生的事情就不明白了哦,小时侯上课的时候老师谈什么要授之以渔,而不 要授之以鱼,没办法。您要是觉得麻烦,俺就省了,俺手还觉得累,呵呵:)
还是谈谈这个过程吧,这期间,系统会把您的当前release版本号后面加上一个custom然后写到grub.conf里边去,重新启动后您就可以看到2.4.22custom的选单了 …
至于这个文件名是怎么决定出来的呢?您可以看一看/usr/src/linux-2.4.22哦,里边有个Makefile,您试一下
#head –n 5 Makefile
完成后需要修改grub引导记录信息,将内核指定为新编译的内核,驱动和一些初始化的initrd也需要重新指定;
重启后,即可使用新内核的特性了。
阅读(1660) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~