电子小骑兵 发表于 2008-12-5 00:40

弱弱一问:能不能在2.4的内核上编译2.6的内核?

最近看书在学交叉编译工具的制作。我主机上是用虚拟机装了一个REDHAT9,内核是2.4的,然后下载了一个2.6.10的内核准备给TARGET用,但是我在HOST上编译这个2.6.10的时候老是会出错,所以我想,是不是因为我主机上用的内核版本太低了,它的库不够支持这个2.6.10的内核?不知道是不是这个原因~~?

goosen 发表于 2008-12-5 08:30

与HOST的内核版本无关

交叉编译器版本最好不要太低(比如2.95.3,具体没试过)<br /><br />另外,既然编译出现问题,就该你把的一些情况罗列下:<br />1)硬件平台,所使用的交叉编译器版本<br />2)出错提示信息等(尽可能完整点)<br />3)操作的大致过程

电子小骑兵 发表于 2008-12-5 10:57

哦,好的,谢谢~

我HOST平台使用的是REDHAT9.03版本,现在使用的GCC,应该也是这个版本自带的GCC,至少我没有设置过。<br />我下载了一个LINUX-2.6.10.TAR.GZ,然后解压。解压之后,在相应的LINUX-2.6.10目录内,执行:<br />make&nbsp;ARCH=arm&nbsp;CROSS_COMPILER=arm-linux-&nbsp;menuconfig<br />然后在配置界面中,选择S3C2410作为system&nbsp;type<br />保存当前配置退出。<br />执行make&nbsp;all(注:我不知道这里对不对,因为我书上写的对于2.4内核,此处是执行make&nbsp;dep,但是此处执行make&nbsp;dep,系统显示当前command&nbsp;is&nbsp;not&nbsp;necessary,而不执行make指令,在include/linux/中则没有version.h)<br />之后,编译报错:<br />linux-2.6.10/include/asm/processor.h:68&nbsp;CONFIG_X86_L1_CACHE_SHIFT&nbsp;undeclared(not&nbsp;in&nbsp;a&nbsp;function)<br />linux-2.6.10/include/asm/processor.h:68&nbsp;request&nbsp;aligment&nbsp;alignment&nbsp;is&nbsp;not&nbsp;a&nbsp;constant<br />...<br />...<br />linux-2.6.10/include/linux/prefetch.h:64&nbsp;CONFIG_X86_L1_CACHE_SHIFT&nbsp;undeclared(first&nbsp;use&nbsp;in&nbsp;this&nbsp;function)<br /><br />不知道是什么原因,又该如何调整~

电子小骑兵 发表于 2008-12-5 11:03

哦,对了,还有~

刚刚我看了出错的这个两个头文件,很多定义里都有X86的字样,但是我现在的硬件平台(system&nbsp;type)已经设置为了S3C2410,怎么还是X86呢?是不是我刚刚在系统配置的时候,也不正确?

wangkj 发表于 2008-12-5 11:07

主要是对gcc的要求。和内核无关。

电子小骑兵 发表于 2008-12-5 11:30

我用&nbsp;dmsg&nbsp;|grep&nbsp;gcc&nbsp;查到我当前的GCC版本是3.2.2&nbsp;够用么?

wangkj 发表于 2008-12-7 09:49

很难说,一般来讲,4.0 以上的所有的2.6内核都能编译

不同2.6.x的版本要求也不一样,你试试看就知道了,会有提示的。如果能通过,就没有问题。<br />另外,还有bin-utilits的版本要求。<br />如果没有特别需要,最好装最新版本的linux。<br />大不了你连gcc,glibc,bin-utilits也升级呀.---连根都动了,似乎应该不算redhat9了。

sinanjj 发表于 2008-12-9 11:52

我那个开发系统没有装中文。

就是说:&nbsp;你不加参数也能生成ARM内核。&nbsp;在arch??的目录下都有,&nbsp;以支持的硬件起的名。<br /><br />多看看内核源代码自带的doc就知道了。(80M啊,&nbsp;呵呵,&nbsp;全看一遍就高手了。。。)<br /><br />这个系统是linuxforOA,&nbsp;准备给公司布置。&nbsp;呵呵呵,&nbsp;速度不是一般的快。
页: [1]
查看完整版本: 弱弱一问:能不能在2.4的内核上编译2.6的内核?