轉載:http://blog.csdn.net/wavemcu/article/details/6950053
在移植Linux中很容易出現這樣那樣的問題,我也遇到過,現在就共享下人家的一些經驗和自己的一些新的吧:
一:mount_devfs_fs(): unable to mount devfs, err: -2
"mount_devfs_fs(): unable to mount devfs, err: -2"一個困擾了我很久的問題,主要是ecc的問題。在此我把我的理解說一下好了: 搞清楚你在driver/mtd/nand/s3c2410.c文件 中有沒有把NAND_ECC_SOFT改成NAND_ECC_NONE,這個網上不少的人都會做(聽說會與yaffs文件系統有沖突,但我發現反而和 cramfs文件系統有沖突)。假設你把NAND_ECC_SOFT改成NAND_ECC_NONE,那[*] Lets Yaffs do its own ECC 這一步是必需的。
最后,如果你把NAND_ECC_SOFT改成NAND_ECC_NONE的話,那你下載yaffs文件系統的時候就不應該加上-e的參數了。
這個東西我可是經歷了無數次的"mount_devfs_fs(): unable to mount devfs, err: -2"才悟出來的,本來想不講出來的,但實在太多人問這個問題了,實在不忍^_^
最后給點建議:先讓內核掛載cramfs試試看(記得把NAND_ECC_SOFT改成NAND_ECC_NONE哦),因為這個文件系統只要用下載內核的命令下載就行,成功掛載cramfs的話將會是你最大的鼓舞
二:確保devfs修改正確.
由於linux 2.6.12后取消了devfs,因此你自己在fs/kconfig里面添加devfs的支持.從2.6.12的fs/Kconfig中拷貝下面幾項到2.6.14的fs/Kconfig中去:
config DEVFS_FS
bool "/dev file system support (OBSOLETE)"
depends on EXPERIMENTAL
help
…………………………………………………
config DEVFS_MOUNT
bool "Automatically mount at boot"
depends on DEVFS_FS
help
………………………………………………….
config DEVFS_DEBUG
bool "Debug devfs"
depends on DEVFS_FS
help
…………………………………………………..
help 的部分就省了,反正你在 2.6.12 內核的配置文件會看得到,或者自己寫上去也行。
重新make menuconfig 在File systems->Pseudo filesystems目錄里面可以后到devfs的配置選項如下:
[*] /proc file system support
[*] /dev file system support (OBSOLETE)
[*] Automatically mount at boot
[*] Debug devfs
[*] Virtual memory file system support (former shm fs)
[ ] Relayfs file system support
我在一次實驗當中沒有把Debug devfs加進去,系統掛不成功!因為在執行內核要結束的時候,要mount devfs,需要debug devfs!所以要加上去!