Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

菜鸟redhat9调试笔记之一(编译内核)

[复制链接]
cqfanli 发表于 2003-7-31 16:58:34 | 显示全部楼层 |阅读模式
菜鸟redhat9调试笔记之一(编译内核)   

--------------------------------------------------------------------------------

franktom

我是菜鸟,经常自以为是,所以写的不对的地方请高手指点

5月31
今天是周末,心情比较好,所以决定研究linux的内核编译,之所以想要内核编译,一方面是想要使服务器更加稳定,快速,另外一个原因是我在使用过程中,当要mount NTFS分区的时候,老是提示我内核不支持,我知道RH9的内核是支持NTFS的,所以决定好好编译一下内核,虽然以前我编译内核从来没有成功过。

废话少说,开始编译,菜鸟们看好了,这可是我的调试手记!

1。要编译内核,首先要到合适的编译路径,一般路径都在/usr/src/linux,RH9的路径是在/usr/src/linux-2.4,只有在这个路径你的make config/make menuconfig/make xconfig命令才会生效。
否则不在这个路径编译,会提示make: *** No rule to make target 'config' , stop的错误提示,菜鸟们经常会犯这个错误哦!

2。因为我是菜鸟,所以今天告诉大家的编译方法还是比较保守的,高手就不用看了,首先我们在编译之前最好运行这个命令: make mrproper 如果你以前编译过内核,那这个命令就可以删除以前的建构的痕迹。相信大多数菜鸟是没有编译过的,所以一般不用运行,但是你要是想第2次或第3次编译(我就编译了好多次),那就这个命令就非常有用了。

3。make oldconfig ,大家可能觉得很奇怪我怎么用这个命令,之所以用这个命令,是因为我是菜鸟,前几次自定义的编译内核都没有成功引导系统,无意中发现这个命令,这个命令会读取系统默认的内核,然后生成.config文件,那以后配置编译就在默认的基础上添加/删除就行,不会因为漏掉什么配置而使系统不能引导,相信我没错,如果你是高手的话,那就免了。

4。make menuconfig 开始配置,把你认为不需要的东西都不要编译到内核,比如什么业余电台,scsi,I20,IrDA,isdn,bluetooth,反正要删除的东西你要有绝对把握哦,多删了造成系统不能引导可不要来找我。当然不会忘了加上ntfs的支持,在file systems这一项里,顺便把codepage 936也编译进内核,后面会用到的。保存为.config后退出。

5。make dep 设置依赖关系

6。make clean 准备要建构的源码树

7。make bzImage 建构内核 漫长的时间,去做家务吧

8。make modules 配置模块,也比较漫长,我都把家里的活干完了,还没编译好

9。make modules_install 使用配置的模块

10。make install 把新的内核和相关文件复制到正确的目录,并修改grub.conf文件(我是用grub引导)在grub菜单会添加一个新的内核启动选项,当然你也可以自己修改。


好了重新启动reboot,看看你的新内核能否顺利引导,好棒哦!系统引导后,用free -m一看,内存从原来的56M占用,降到了25M,变化好大哦,在看一下top,cpu idle居然100%,进入xwindows,时间都不到20秒,够快吧!

别忘了正事!看能否加载nfts分区?

mkdir /mnt/ntfs

mount /dev/hdb5 /mnt/ntfs 系统提示
NTFS:Warning! NTFS volume versiion 十Win2K+ : Mounting read-only

ok,果然顺利加载,看来编译是成功的!,下面问题又出来了,进入/mnt/ntfs目录一看,出现一大堆??的文件,使用zhcon都不行,印象中好像都是中文,难道对中文不支持,不至于吧!马上上网寻找资料,哦原来还有参数
重新加载

mount -o iocharset=cp936 /dev/hdb5 /mnt/ntfs

看看,现在不是??,但是是乱码,没关系,加载zhcon,再看,ok了重要显示中文了,知道了吧,为什么一开始要大家把codepage 936编译进去的原因。


现在问题又出来了,我总不能每次手动加载windows分区吧,有个办法,修改/etc/fstab

我的fstab修改如下:

LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/hdb5 /mnt/ntfs ntfs iocharset=cp936 0 0
/dev/hdb1 /mnt/c vfat rw,iocharset=cp936 0 0
/dev/hdb6 /mnt/d vfat rw,iocharset=cp936 0 0

其中rw参数是读写的意思,默认是只读,ntfs最好是只读,要是写比较危险。

好了再重启看看,是否系统能正常加载windows分区了,呵呵,应该是没有问题的。

希望这篇菜作对广大菜鸟有所提示
 楼主| cqfanli 发表于 2003-7-31 16:59:09 | 显示全部楼层
先说了来,编译内核和修改fstab文件是非常的动作,自己可以小心哦!
回复

使用道具 举报

zhangweibo 发表于 2004-1-8 10:11:48 | 显示全部楼层
哈哈,在这里居然看到我菜鸟时的作品,有点意外,当初也是随便写写,没想到还在流传

[ Last edited by zhangweibo on 2004-1-8 at 10:13 AM ]
回复

使用道具 举报

Crossday 发表于 2004-1-9 10:37:20 | 显示全部楼层
Originally posted by zhangweibo at 2004-1-8 10:11 AM:
哈哈,在这里居然看到我菜鸟时的作品,有点意外,当初也是随便写写,没想到还在流传

[ Last edited by zhangweibo on 2004-1-8 at 10:13 AM ]

不断成长啦~
回复

使用道具 举报

AQI163 发表于 2004-11-14 21:16:08 | 显示全部楼层
2.6内核吧.

if 2.4 kernel

can not make install
回复

使用道具 举报

platinum 发表于 2004-11-14 21:28:23 | 显示全部楼层
Originally posted by AQI163 at 2004-11-14 21:16
2.6内核吧.

if 2.4 kernel

can not make install

不是不能,是有BUG,需要
make mrproper
cp configs/xxxxx .config
make oldconfig

然后
make menuconfig(修改选项)
make bzImage
make modules
make modules_install
make install

就可以了

编译内核的步骤很简单,难就难在make menuconfig这一步,关键是怎么选
回复

使用道具 举报

AQI163 发表于 2004-11-14 21:41:24 | 显示全部楼层
e!!!!!!!!i making 4.0.20-i kernel now

cp configs/xxxx .config

i don't know this..

contine trying.. bad english.haha.
回复

使用道具 举报

platinum 发表于 2004-11-14 23:00:22 | 显示全部楼层
xxxx.config就是适合你系统的基本kernel配置文件

比如对于AS3-U2来说,一个双CPU的系统,PC32位机器
cp configs/kernel-2.4.21-i686-smp.config .config
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 11:32 , Processed in 0.023982 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表