出现问题:
## Starting application at 0x30008000 ...
解决方案:
setenv bootargs console=ttySAC0,115200 mem=64M ;console明令在哪暂时还没解决???
setenv
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "<NULL>" or unknown-block(2,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
解决方法:把
08.05.11、<*> RAM disk support
09.27.07、<*> Compressed ROM file system support (cramfs)
1. 问题一
下载内核到flash中,运行到如下即停止没有下文:
Uncompressing Linux……………………done,booting the kernel
卡在这里不动了
原因分析:可能是内核的启动参数传递时没有填写正确,
也可能是在linux内核中没对flash分区,
还有另一可能原因是在内核编译配置时没将串口驱动勾选。
解决办法:
如果是命令参数问题,则作如下修改:注释掉arch/arm/kernel/setup.c文件中的parse_tag_cmdline()函数中的strlcpy()函数,这样就可以使用默认的CONFIG_CMDLINE了,在.config文件中它被定义为"root=/dev/mtdblock2 ro init=/linuxrc console=ttySAC0,115200"(视具体情况而定),在内核配置文件的Boot options中填入也可。
如果是内核NAND flash分区的问题,则作如下修改:
1. 1 修改文件arch/arm/mach-s3c2410/devs.c,添加如下信息:
#include <linux/mtd/partitions.h>
#include <asm/arch/nand.h>
#include <linux/mtd/nand.h>
static struct mtd_partition partition_info[]=
{
{
name:"bootloader",
size:0x00040000,
offset:0,
},
linux内核文件放在哪{
name:"kernel",
size:0x001c0000,
offset:0x00040000,
},
{
name:"rootfs",
size: 0x01e00000,
offset:0x00200000,
},
{
name:"ext-fs1",
size: 0x01000000,
offset:0x02000000,
},
{
name:"ext-fs2",
size: 0x01000000,
offset:0x03000000,
},
};
//以上分区和NAND flash物理分区一样,分区不一样没试过,根据自己板子情况而定
struct s3c2410_nand_set nandset=
{
nr_partitions:5,
partitions:partition_info,
};
struct s3c2410_platform_nand s3c_nand_info=
{
tacls:0,
twrph0:30,
twrph1:0,
sets:&nandset,
nr_sets:1,
};
以上分区和NAND flash物理分区一样,分区不一样没试过,根据自己板子情况而定
struct s3c2410_nand_set nandset=
{
nr_partitions:5,
partitions:partition_info,
};
struct s3c2410_platform_nand s3c_nand_info=
{
tacls:0,
twrph0:30,
twrph1:0,
sets:&nandset,
nr_sets:1,
};
struct platform_device s3c_device_nand={
.name="s3c2410-nand",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_nand_resources),
.resource = s3c_nand_resource, /*黑体为新加内容*/
.dev = {
.platform_data=&s3c_nand_info
}
};
1.2 在arch/arm/mach-s3c2410/mach-smdk2410.c文件中添加&s3c_device_nand,如下所示:
static struct platform_device * smdk2410_device[] _initdata=
{
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
&s3c_device_nand,
};
配置好以上内容后重新编译内核即可。
如果是串口驱动没有勾选,则一定记住将勾上如下选项:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论