马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
5) USB的支持
推荐使用默认的配置
1. 通用系统选项
1) System V IPC and Sysctl support
System V是Linux进程通信的机制。Sysctl允许你动态操作多个内核参数,所以选上它们
图15 System V & Sysctl
1) 控制台的支持
Linux系统中当然不能缺少功能强大的控制台了,如果将来你想自定义一个个性的控制台,推荐下面的选项:
图16 控制台驱动程序的配置
1) 字符设备的支持
在控制台中,大多数用户都需要用一个虚拟终端访问系统,并需要打印机的支持。那么选择该项。
图17 字符设备 1) 文件系统的支持
对于一般的桌面用户FAT NTFS ext2 ext3算是最常用的文件系统了,所以只要让内核支持这些就可以了。像下面这样:
图18 对Windows文件系统的支持
图19 虚拟文件系统的支持
图20 ext文件系统的支持 另外还有一点要说明的是,如果这不是你第一次配置内核,在执行上面的任何一种配置工具前,一定要先执行make mrproper,对源代码目录进行清理工作,否则编译会出现问题。
编译内核
配置完后,我们就要进行编译工作了,如果想让编译出来的代码更加优化,建议各位去修改一下Makefile中的CFLAG参数,当然这要根据你的计算机而定,这里给出一个Pentium4的参考方案 CFLAGS=”-O2 -march=pentium4 –mfpmath=sse –malign-double –mmmx –msse –msse2 –pipe /
-fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays”图21 修改Makefile文件
修改完成后,编译就很简单了 make –j2 一个命令就搞定了,连带模块和系统内核的编译全都由这个命令来完成。-j选项的含义就是开启并行编译内核的任务的数目,分配原则基本上是一个CPU可以分配两个任务,由于在编译文件时对硬盘的I/O会影响编译时间,所以开启2个任务可以加快整个内核的编译过程。由于内核源代码之间并不存在依赖,所以并行编译并不会带来任何麻烦。另外和2.4版的内核相比,在编译内核前,我们不再用执行make dep,也不用区分什么bzImage,modules等问题,默认的Makefile规则会为我们处理,我们只要简单的执行make就OK了 。 最后说点编译的小技巧: 如果你不想看到编译内核时的很多输出,但仍想关注警告和错误,你可以把输出重定向到一个文件里 make > your_own_dir_and_file。 这样,当你想关心一下编译过程的是后,去看那个文件就是了。其实 一般情况下,我们不许要关心那些警告和错误,把它们重定向到 /dev/null就OK了。 make > /dev/null 而且如果你在变异过程中看到很多的warning并不用担心,这并不会影响内核的使用,只是代码不规范造成的问题,如果真的遇到了错误,make会为你显示***这样开头的内容。
安装内核
在执行安装前,我们要切换到root用户,在控制台上执行su命令。下面就是整个安装过程。 首先,我们可以执行make modules_install 命令来安装模块,这个命令会把所有你编译的模块复制到/lib/<your kernel version>目录中去。 对于内核本身的安装,我们可以有两个不同的方法,一个简单,但是做完之后我们学不到什么东西,另一个稍显麻烦,但是我们却可以有所收获。先来看第一个,懒人方法 还是在源代码目录下执行 make install 这个命令就为我们全权代理了安装新内核的所有步骤,执行完后,就可以重新启动,感受一下自己的新内核了。 但是,make install都为我们做了什么呢?第二种方法就是自己来手动安装内核,步骤有三,而这正是make install的工作。 1. 复制生成的内核镜像到/boot 在你编译好内核后,在目录arch/i386/boot/中会有一个名为bzImage的文件躺在那里,这就是我们说的被压缩的可引导的内核镜像,把它复制到/boot目录中,并重新命名为vmlinuz-<your kernel version>,在我们的例子中就是vmlinuz-2.6.11.9 cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.11.
2. 生成initrd-<your kernel version>.img文件 这个文件的作用是临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。用命令
mkinitrd initrd-2.6.11.9 2.6.11.9可以为我们的系统生成一个initrd-2.6.11.8.img的文件,把这个文件也复制到/boot目录下。要说明的是mkinitrd是Redhat特有的命令。其它发行版上应该有相应的生成这个文件的命令。
3. 配置grub 到这里,整个内核的安装就结束了,下面要做的就是让机器能够引导新内核,打开/boot/grub/grub.conf,加上下面的代码: title Magic Linux (2.6.11.9) # 这是你的Linux发行版的名字 root (hd0,10) # 我把/boot放在了/dev/hda11上所以是(hd0,10) kernel /vmlinuz-2.6.11.9 ro root=/dev/hda13 # 这里的root指的是/目录所在的分区,我安装的 # 时候放到了/dev/hda13中 splash=silent initrd /initrd-2.6.11.9.img 如果你的硬盘上还有Windows那么,加入下面的代码 title dos
rootnoverify (hd0,0) # 注意,这是你的windows安装在C盘的时候的情形
# 具体要根据你的情况而定
makeactive
chainloader +1
保存并退出 执行reboot,重新启动,如果一切正常,应该能看到2.6.11.9的启动选项了。 最后,我们通过这个编译的过程可以看到,操作系统的内核其实和应用程序没什么不同,也是一种软件,我们可以在系统中编译很多版本的内核。建议各位保留一个安全稳定的内核供使用,之后自己可以任意发挥自己的想象去试验内核的选项,只有这样才能编译出最适合自己需求的内核。
该贴已经同步到 crazylinux的微博 |