全部博文(41)
2011年(41)
分类: 嵌入式
2011-09-26 20:45:59
和许多人一样我也知道一点nfs,知道用nfs开发嵌入式很方便,我也用nfs来共享文件、目录等等,前面我也弄过nfs启动,那一段时间弄了好 久,后面还写了一篇比较详细的文章。但是我一直不是很明白究竟nfs启动时启动的什么?我只知道用nfs启动可以扩大空间,因为我们利用了pc机的硬盘。 其他的就不知道了,不知道启动的kernel在哪?还有程序运行在哪?
今天我上网搜了一下,发现很多人有和我一样的疑问,搜了比较多的资料,大概总结一下,如有不对的地方,欢迎指出。
其实就是一句话,nfs启动和从nandflash启动只是启动的根文件系统不一样,nandflash启动的时候根文件系统式从 nandflash拷贝到sdram中,而nfs启动的是从网络的服务器(既我们的开发主机)拷贝到2440开发板的sdram中,这样看来只是挂载根文 件系统的时候来源不同而已,启动后都是在开发板的sdram中运行。
linux的启动过程
bootloader ——> kernel ——> 根文件系统
只是启动内核后挂载根文件系统不同,这里引用一个网友的一段话
刚才分别试了一下从Nand Flash和nfs启动,以下是他们启动时输出的信息。
从Nand flash启动:
Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"
从nfs启动:
Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux
command line is: "console=ttySAC0 root=/dev/nfs
nfsroot=192.168.1.11:/home/cneyo/root_qtopia -o nolock
ip=192.168.1.9:192.168.1.11:192.168.1.1:255.255.255.0:mini2440:eth0:off"
从以上内容可以看出从Nand Flash启动和从nfs启动,Bootloader加载的内核都是来自Nand Flash的kernel分区,只是他们挂载的根文件系统不同而已
2011-09-26 20:45