在掛載yaffs2 文件系統(tǒng)出現(xiàn)的問題和解決辦法。 還是想來吐槽先: 之前我一直的2.6.36.2 的內(nèi)核已經(jīng)可以成功啟動OK6410 掛載 NFS 文件系統(tǒng)進入Linux 終端了,這幾天因為測試USB 攝像頭需要, 所以要進入 yaffs2,這樣才不會占用 DM9000 的網(wǎng)卡,才能測試 網(wǎng)絡(luò)攝像頭。本來以為需要進入 yaffs2 文件系統(tǒng)可能會挺簡單的,誰知道一大堆問 題,好了,開始進入正題: 我的操作環(huán)境是: 主機:xp, VMware Ubuntu 10.10 。 開發(fā)板: OK6410 , 2G nand flash ,4 個分區(qū)。 移植內(nèi)核:Linux 2.6.36.2 先說說我的內(nèi)核啟動 yaffs2 的前提: 內(nèi)核可以啟動 NFS 根文件系統(tǒng), 內(nèi)核 已經(jīng)打上了yaffs2 文件系統(tǒng)的補丁??梢詤⒖迹?a href="http://www./Linux/2012-05/61322.htm" style="color: rgb(179, 43, 213);">http://www./Linux/2012-05/61322.htm 這篇文章給內(nèi)核打上 yaffs2 文件系統(tǒng)的補丁。 最后的打印信息為: end_request: I/O error, dev mtdblock2, sector 24 我在網(wǎng)上google了很多,這是最常見的一種錯誤打印信息。照上面的打印信息,自己推測出現(xiàn)的問題是: 1、NAND Flash 有壞塊。 解決辦法: 在Uboot 下使用命令 : nand scrub 回車,選擇 y ,y 沒有顯示,直接回車。就可以忽略壞塊。 關(guān)閉內(nèi)核 ECC 校驗。 在文件 drivers/mtd/nand/s3c_nand.c 文件中,將 nand->ecc.mode = NAND_ECC_SOFT; 改為: nand->ecc.mode = NAND_ECC_NONE; 配置中去掉的這個選項在代碼中并沒有完全去掉,只是去掉了硬件校驗的方式,換成了軟件校驗。 只有在代碼中給改成NAND_ECC_NONE,才不會校驗。 2、 NAND Flash 分區(qū)加載不正確。 |
|
來自: hginvent > 《embedded》