|||
AT91RM9200-Linux2.6.21移植过程中碰到的问题及解决方法
仇洁婷,陈儒军
(1)
在Linux内核启动时出现:bad machine ID。原因是uboot传给内核的Machine ID错误,可以在内核源代码中添加Machine ID,修改的方法如下:
在linux-2.6.21/arch/arm/mach-at91rm9200目录下的board-dk.c,将
MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
改为
MACHINE_START(AT91RM9200, "Atmel AT91RM9200-DK")
(2)
VFS: Cannot open root device "mtdblock/3" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
解决 :
主要原因是启动参数不正确,没有找到 /dev/mtdblock/3,启动参数要改为
root =/dev/mtdblock3
或者
root =31:3
(3)
No filesystem could mount root, tried: ext2 cramfs yaffs yaffs2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
解决:
显示结果表明,已经能够找到31:3这个节点,unknown-block(31,3),但是因为默认的文件类型是 ext2,识别不出 jffs2文件类型,(注:我的nor 挂载为 jffs2类型),因此需要在启动参数中加入jffs2文件类型:rootfstype=jffs2
Uboot> setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 rw console=ttyS0,115200 mem=32M
(4)
显示了两个NAND :Toshiba NAND和Samsung NAND,而实际上只有 Samsung NAND
NAND device: Manufacturer ID: 0x98, Chip ID: 0x39 (Toshiba NAND 8MiB 1,8V 8-bit)
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
解决:
会出现 NAND device: Manufacturer ID: 0x98, Chip ID: 0x39 (Toshiba NAND 8MiB 1,8V 8-bit),原因是:在内核中选中了 mtd nand layer 模拟 nand flash 导致的
Device Drivers -->
Memory Technology Devices (MTD)-->
NAND Flash Device Drivers-->
< > Support for NAND Flash Simulator
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 21:26
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社