我在使用atheros板子的過程中,在使用同一個CPU晶元的基礎上,需要把flash從8MB更換為16MB,把我的舊的內核和文件系統套在新的uboot上面,內核啟動的時候出現了以下錯誤,文件系統掛載不了。 JFFS2 warning: (1) jffs2_sum_process_sum_data: ...
我在使用atheros板子的過程中,在使用同一個CPU晶元的基礎上,需要把flash從8MB更換為16MB,把我的舊的內核和文件系統套在新的uboot上面,內核啟動的時候出現了以下錯誤,文件系統掛載不了。
JFFS2 warning: (1) jffs2_sum_process_sum_data: Unsupported node type e008 found in summary! Exiting...
VFS: Cannot open root device "31:02" or unknown-block(31,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00 256 mtdblock0 (driver?)
1f01 64 mtdblock1 (driver?)
1f02 14528 mtdblock2 (driver?)
1f03 1408 mtdblock3 (driver?)
1f04 64 mtdblock4 (driver?)
1f05 64 mtdblock5 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
一開始的時候,我看到上面是文件系統掛載的問題,所以到處把上面的相關信息貼到百度和谷歌去尋找解決這個問題的辦法,但是找不到剛好對應的解決辦法。之後,我觀察到它列印mtdblock,從網上瞭解到它可能跟mtd驅動的支持有關,難道是舊的內核mtd驅動不支持這個新的flash?但是我在內核裡面看到內核已經打開了對應這個flash型號的驅動,照理來說應該是支持的。
我嘗試在使用舊的文件系統的基礎上更換內核,發現新內核對jffs2文件系統能正常掛載,沒有以上這些問題。最後靜下心來看看jffs2文件系統的官方網站,發現它在介紹用jffs2設置內核啟動的內容,講到了啟動參數的設置,裡面有個類似root=/dev/mtdblock3的啟動參數。我趕緊把註意力轉移到啟動參數上面。通過查看新內核的啟動參數發現了一些端倪,新內核不吃uboot傳給它的參數,它用自己的啟動參數。正是這個緣故,新內核的文件系統啟動沒有問題!我修改了我的內核的啟動參數,問題解決了!
通過這件事,我意識到,有時候遇到調試問題,靜下心來去官網上學習相關的概念和操作,比到處去網上搜索答案更能夠解決問題!