当前位置: 技术问答>linux和unix
根文件系统和linux内核版本有关系吗?
来源: 互联网 发布时间:2016-12-20
本文导语: 在下用的是新买的mini2440,128M的,光盘配的是2.6.32版本的内核,但是由于这个版本内核的spi驱动程序修改步骤与原来的2.6.29版本的不太一样,所以我的mini2440的内核部分用的是2.6.29的内核,而yaff根文件系统用的是...
在下用的是新买的mini2440,128M的,光盘配的是2.6.32版本的内核,但是由于这个版本内核的spi驱动程序修改步骤与原来的2.6.29版本的不太一样,所以我的mini2440的内核部分用的是2.6.29的内核,而yaff根文件系统用的是新光盘上的那个root-qtopia-128M.imag,结果是无法启动,请各位解释一下原因,在下十分感激。
另外原光盘中配的根文件root-qtopia是与QT图形化界面相关的吧,而且友善之臂自主开发的一些改动之处是不是也在那里面,国嵌教学视频里教的根文件系统的制作没有说图形化界面的事情,是不是这个root-qtopia不用我自己编写?我只不过想在原来的基础上添加一个应用程序而已。谢谢
另外原光盘中配的根文件root-qtopia是与QT图形化界面相关的吧,而且友善之臂自主开发的一些改动之处是不是也在那里面,国嵌教学视频里教的根文件系统的制作没有说图形化界面的事情,是不是这个root-qtopia不用我自己编写?我只不过想在原来的基础上添加一个应用程序而已。谢谢
|
有五个方面的联系:
1、就是3楼说的的编译器的问题:需要用相同的编译器。
2、kernel中必须配置对根文件系统类型的支持:你的kernel中必须支持yaffs
3、kernel中对flash的分区,必须和实际情况一致。
4、bootloader传给kernel的参数必须要和实际情况一致
5、bootloader中定义的机器ID必须和kernel中定义的一致
1、就是3楼说的的编译器的问题:需要用相同的编译器。
2、kernel中必须配置对根文件系统类型的支持:你的kernel中必须支持yaffs
3、kernel中对flash的分区,必须和实际情况一致。
4、bootloader传给kernel的参数必须要和实际情况一致
5、bootloader中定义的机器ID必须和kernel中定义的一致
|
楼主装最低版本的Linux内核吧,因为现在的Linux驱动开发的资料都差不多还是2.6.1X版本的,最新内核也许只是一种潮流。在产品中一般会选择最稳定,技术最成熟的一个版本。当然,学习,更不能赶潮流,因为内核版本的不同,某些头文件的位置,某些结构体以及设备类型的划分等都有或多或少的变化。
试想一下,一个连头文件在什么地方都不知道,内核中某个子目录是关于什么的都不知道,又怎么能有能力去查寻头文件的不同之处。结构体的变动以及设备类型的划分呢。这在学习过程中明显会带来诸多不便。
试想一下,一个连头文件在什么地方都不知道,内核中某个子目录是关于什么的都不知道,又怎么能有能力去查寻头文件的不同之处。结构体的变动以及设备类型的划分呢。这在学习过程中明显会带来诸多不便。
|
有些交叉编译器在制作时限制了使用的最低内核版本,不要比这个版本低就可以了。
比如配置glibc时使用--enable-kernel参数指定版本2.6.28,那么做出的文件系统一定不适合2.6.27或更低版本的。
如果想确认文件系统要求的最低内核,可以使用file命令查看libc-*.so文件,例如:
[sunxq@sunxq-fc10 lib]$ file libc-2.11.2.so
libc-2.11.2.so: ELF 32-bit LSB shared object, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.6.28, stripped
上面的提示意味着使用这个库的文件系统只能供2.6.28和以上版本的内核使用。
比如配置glibc时使用--enable-kernel参数指定版本2.6.28,那么做出的文件系统一定不适合2.6.27或更低版本的。
如果想确认文件系统要求的最低内核,可以使用file命令查看libc-*.so文件,例如:
[sunxq@sunxq-fc10 lib]$ file libc-2.11.2.so
libc-2.11.2.so: ELF 32-bit LSB shared object, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.6.28, stripped
上面的提示意味着使用这个库的文件系统只能供2.6.28和以上版本的内核使用。