machine ID问题 ( u-boot设置machine id , set mach_type 0x16a )

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。

posted on 2017-03-26 10:22  Red_Point  阅读(1678)  评论(0编辑  收藏  举报

导航