和許多人一樣我也知道一點nfs,知道用nfs開發(fā)嵌入式很方便,我也用nfs來共享文件、目錄等等,前面我也弄過nfs啟動,那一段時間弄了好
久,后面還寫了一篇比較詳細的文章。但是我一直不是很明白究竟nfs啟動時啟動的什么?我只知道用nfs啟動可以擴大空間,因為我們利用了pc機的硬盤。
其他的就不知道了,不知道啟動的kernel在哪?還有程序運行在哪?
今天我上網(wǎng)搜了一下,發(fā)現(xiàn)很多人有和我一樣的疑問,搜了比較多的資料,大概總結(jié)一下,如有不對的地方,歡迎指出。
其實就是一句話,nfs啟動和從nandflash啟動只是啟動的根文件系統(tǒng)不一樣,nandflash啟動的時候根文件系統(tǒng)式從
nandflash拷貝到sdram中,而nfs啟動的是從網(wǎng)絡(luò)的服務(wù)器(既我們的開發(fā)主機)拷貝到2440開發(fā)板的sdram中,這樣看來只是掛載根文
件系統(tǒng)的時候來源不同而已,啟動后都是在開發(fā)板的sdram中運行。
linux的啟動過程
bootloader ——> kernel ——> 根文件系統(tǒng)
只是啟動內(nèi)核后掛載根文件系統(tǒng)不同,這里引用一個網(wǎng)友的一段話
剛才分別試了一下從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" 從以上內(nèi)容可以看出從Nand Flash啟動和從nfs啟動,Bootloader加載的內(nèi)核都是來自Nand Flash的kernel分區(qū),只是他們掛載的根文件系統(tǒng)不同而已
mini2440 root_qtopia 文件系統(tǒng)啟動過程分析http://www.arm9home.net/read.php?tid-1702-keyword-root%7C%B7%D6%CE%F6.html
2011-09-26 20:45 |