machine ID問題?
machine ID問題跟CPU具體到型號相關,啟動時打印信息如下:
?
Uncompressing Linux...........................................................................done,booting the kernel.?
Error:unrecoginized/unsupported machine ID(r1 = 0x000003oe)?
Available machine support:?
ID (hex) NAME?
0000016a SMDK2440?
please check you kernel config and/or bootloader.
解決方法:可在U-boot中執行
param set mach_type 0x16a
修改bootloader配置到machine ID或者通過去掉內核代碼中對應到machine ID。
注:出現這個問題到主要原因就算bootloader配置到機器ID和內核中配置到不一致,可以修改bootloader到配置或者在內核配置中添加相應的ID。machine ID在到文件arch/arm/tools/mach_types里
?
2.串口無輸出
啟動后打印如下信息:
Uncompressing Linux...........................................................................done,booting the kernel.?
然后就停住,無后續輸出了。?
解決辦法:修改linux command line 中的console為ttySAC0,這是因為2.6內核對串口命名到方式到變動,但不影響應用程序。?
3.kernel panic 問題?
內核崩潰問題,啟動后打印如下信息:?
please append a crrect "root=" boot option?
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
?
"內核驚慌"除了缺失文件系統外,還有幾個可能到原因。
devfs驅動未加載成功,在配置內核選項時選中:
[*] /proc file system support
[*] /dev file system support (OBSOLETE)
[*] Antomatically mount at boot
[*] Debug devfs
[*] Virtual memory file system support (former shm fs)
[ ] Relayfs file system support
devfs負責在/dev目錄下掛在所有設備節點,只有在devfs正確加載后,/dev/mtdblock2才有效。
或是mtd驅動未加載成功。mtd驅動用來支持對Nand Flash,啟動時如果不能打印正確到分區信息則要重新配置;
0x000000000x00100000:??? "bootloader"
0x001000000x00500000:??? "kernel"
0x005000000x02d00000:??? "filesystem"
?
4、啟動程序U-boot和內核中對于Nand Flash到分區必須一致,否則會提示找不到kernel鏡像文件,可以在編譯時修改分區信息,也可以在U-boot中用分區命令part。