|
|
我是MDK10.1 查看/usr/src 有如下文件夹 linux@, Rpm
我到网站下载了 BZ2 包的 2.6.10 ,自己建立了一个 文件夹 /src/2.6.10(参考一个帖子) ,然后又 mv到了/usr/src下,开始安装,
make mrproper
make menuconfig
make
make install 就出错了,
错误:[root@localhost linux-2.6.10]# make install
CHK include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
CHK usr/initramfs_list
Kernel: arch/i386/boot/bzImage is ready
sh /usr/src/linux-2.6.10/arch/i386/boot/install.sh 2.6.10 arch/i386/boot/bzImage System.map ""
/lib/modules/2.6.10 is not a directory.
mkinitrd failed:
(mkinitrd -v -f /boot/initrd-2.6.10.img --ifneeded 2.6.10)) at /usr/lib/libDrakX/bootloader.pm line 121.
make[1]: *** [install] Error 2
make: *** [install] Error 2
我参考的帖子;《按部就班编译核心》
lnuxer开始对尚处在测试中的2.6内核产生了兴趣,确实它非常具有吸引力,众多的特性让人眼花潦乱。我也从2.4全面转到了2.6内核之下,享受着新特性带来的新鲜体验。
不过不少兄弟在编译新内核时或多或少的遇到了一些问题,看来新娘的盖头也不是那么容易揭开的:)
因此我打算写一些文章来介绍编译新内核时的一些应该注意的地方,以减少兄弟们在编译新内核时的麻烦。由于>
我的水平十分有限,写这样的文章实在是勉为其难。文中肯定有错误疏失之处,还请兄弟们多多包涵:)
第一部分,准备:
要使用新的内核首先当然要取得新内核的源码,内核的官方网站是http://www.kernel.org 在上面可以得到最新>
的内核。2.6的更新是相当快的,你可以在命令行下使用finger @kernel.org命令来快速得到当前最新的内核列表
。在这篇文章中我将以2.6.0-test6为准。
下载了内核源码之后,我们要使用tar jxvf linux-2.6.0-test6.tar.bz2来提取源码,如果你下载的是以tgz结尾
的压缩包就使用zxvf参数来解压。我强烈建议你不要使用 /usr/src/linux这个目录来存放源码,因为使用这个目
录你需要手工在/usr/include目录下作一些符号链接,这实在不是一个好主意。所以我建议你为源码单独建一个>
目录,这里我们的目录是/src/linux-2.6.0-test6。
要编译与正常运行新的内核你需要升级一些软件包,这些信息在源码目录下的Documentation/Changes文件中,请
根据你的实际情况选择升级。这其中我强调一下你应该升级Module-Init-Tools,不要被你当前系统中depmod -V>
输出的版本号迷惑(在RH9中它的输出是2.4.22,感觉好象要比Changes中所要求的要高,实际上它们使用不同的版>
本规则)。新的 Module-Init-Tools在下面的网址中取得:http: //www.kernel.org/pub/linux/kernel/people/r
usty/modules/
我使用的是0.9.14。如果你下载的是源码使用如下步骤进行编译
./configure --prefix=/
make moveold 这一步会将你以前的insmod, modprobe, rmmod和 lsmod重命名为insmod.old, modprobe.old, rmmod.old lsmod.old。
make
make install
然后使用 ./generate-modprobe.conf /etc/modprobe.conf
将原来的/etc/modules.conf转换到/etc/modprobe.conf
如果你使用devfs系统你还需要复制modprobe.devfs 到/etc目录下。
当你升级完相关软件包之后,准备工作就算完成了,下面我们将进入到编译阶段。
第二部分 编译:
2.6的build系统与2.4有很大的不同,实际上是更加简单与方便了。第一步我们要进入源码目录
cd /src/linux-2.6.0-test6
make mrproper
这时我们就已经在源码目录下了,make mrproper是用来清除一些老的配置文件、过时的已编译文件,打补丁遗留>
的备份文件等工作的。如果你是从官方网站下载并且是第一次编译这一步可以不作。事实上就算你以前编译过,>
在打了一些补丁或者重新更改设置后再次编译也可不作这一步,这方面的内容我将在以后的补遗中作解释。现在>
你只管按步就般的作不用考虑它。
下面我们就可以进行内核的配置了。
先介绍一下新内核中的图形界面配置工具:
新内核中有两个GUI配置工具,过去的make xconfig现在是一个使用QT库作为界面方案的配置工具了,所以你要使
用它必需先安装QT库。一般的发行版光盘中都包含了这个软件包。
另一个是make gconfig这是一个使用GTK库作为界面方案的工具,同样你要使用它就要先安装GTK库。这两个工具>
与原来的GUI工具在界面上有很大的变化,更加符合一般图形界面程序的使用习惯。
而传统的控制台配置工具menuconfig则没什么太大的变化基本上保持了原来的样子,不喜欢花里糊哨的GUI工具的
兄弟还是用这个吧:)
下面我们就要开始配置内核了,新内核的build系统有一个新的特性,它会在启动配置工具时读取你当前的系统配
置,从而保持与你当前配置相同的选项。而在2.4中它则是配置为默认选项的。这个特性其实是为了方便你以后的
升级工作,在内核特性变化不大的情况下可以直接以当前的选项为基础从而省去逐项配置的麻烦。但由于我们现>
在是从2.4来升级的,它们之间的差别太大了,所以这反而会给我们造成麻烦。有两种方法可以让2.6以默认选项>
来启动配置工具,第一种就是将你当前的配置文件也就是/boot/config-XXX移除,另一种是在执行配置工具前先>
执行make defconfig.我推荐这种方法。
在2.6中还添加了几个以调试为目的的make选项,它们是allyesconfig、allnoconfig、allmodconfig分别表示将>
所有选项加载为y、将所有选项加载为n、将所有选项加载为m。它们是为内核开发人员与测试人员准备的,与我们
的关系不大。
下面我们开始配置内核,这里使用的工具为menuconfig。首先在命令行模式下执行:
make menuconfig
下面没用了,
帖子上说要着一个0.9.14版本的model-init-tools ,我去他提供的网址上去,发现版本是3.0了 ,而且不能安装~~~~~~~
不能 make install 是怎么回事啊??? |
|