一个Linux爱好者的2.6.11内核编译过程

星期天呀,呵呵,10:30起床,好像有一点早,昨天晚上玩游戏玩到3点钟,好累呀 。打开电脑,先玩一会游戏在说 。11:00,不玩了,开始干正事了 。先换到linux下去 。本来想用虚拟机的,但是我做的ftp不能用,而且还可能好慢的 。我的电脑是没有上网的,在我的2003下架了个ftp,想让虚拟机来访问,可是虚拟机和我的电脑连不上,好郁闷 。
(1)安装module-init-tools-3.0.tar.gz:
# tar -zxvf module-init-tools-3.0.tar.gz
# cd module-init-tools-3.0
# ./configure --prefix=/sbin
# make
# make install
# ./generate-modprobe.conf /etc/modprobe.conf
不知道为什么,我用module-init-tools-3.1时make出错 。如果改用3.0的就没事了 。
(2)安装modutils-2.4.25-8.9.i386.rpm:
# rpm -Uvih modutils-2.4.25-8.9.i386.rpm
对modutils进行升级 。
(3)安装新内核:
将新内核copy到/usr/src下,
#tar xzvf linux-2.6.11.tar.gz -----解压缩.
II. 将名为linux的符号链接删掉,这时旧版本内核的符号链接.
#ln -s linux-2.6.11 linux ------建立linux-2.6.11的符号链接linux.
设置内核.
# cd /usr/src/linux
# make mrproper -----删除不必要的文件和目录.
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
它们的目的是一样的,那就是生成一个.config文件
这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置 。如果你不能使用Xwindow,那么就使用make menuconfig好了 。界面虽然比上面一个差点,总比make config的要好多了 。
选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
如果使用的是make xconfig,使用鼠标就可以选择对应的选项 。如果使用的是 make menuconfig,则需要使用空格键进行选取 。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号 。用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M" 。这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块 。而圆括号的内容是要你在所提供的几个选项中选择一项 。
附内核配置选项说明(这是我在网上找到的,还可以,有些也是不一样的,给你一个参考)
代码成熟度选项:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
打开使用开发中、不完全的代码/驱动会让内核配置多出很多选项,由于我们需要使用一些正在开发中的功能,因此必需打开这一选项 。
通用设置选项,
General setup --->
() Local version - append to kernel release
这里填入的是64字符以内的字符串,你在这里填上的字符口串可以用uname -a命令看到 。
[*] Support for paging of anonymous memory (swap)
这是使用交换分区或者交换文件来做为虚拟内存的,当然要选上了 。
[*] System V IPC
表示系统5的Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来
[*] POSIX Message Queues
这是POSIX的消息队列,它同样是一种IPC 。建议你最好将它选上
[*] BSD Process Accounting

推荐阅读