fs2410 linux系统部署
2013-04-25 15:22
211 查看
Fs2410 linux系统部署
一.系统资源介绍:
Fs2410采用S3C2410的嵌入式微处理器,基于ARM920T内核,主频203MHz。外部存储器,内存:64M字节,地址0x30000000;
NOR Flash: 2M字节;
NAND Flash: 64M字节;
S3C2410支持两种启动方式:一种是从NAND FLASH启动;另外一种是从外部片选的Nor Flash启动
硬件资源分配图如下所示:
二.系统部署
目前,系统采用u-boot-1.3.4引导linux内核,同时用到了nor flash和nandflash。由nor flash来片选启动。
Linux 2.6.26.5 arch/arm/plat-s3c24xx/common-smdk.c中nand flash分区定义如下:
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "Uboot-1.3.4",
.size = 0x80000,
.offset = 0,
},
[1] = {
.name = "Linux Kernel 2.6.26.5",
.offset = 0x00080000,
.size = 0x200000,
},
[2] = {
.name = "Rootfs jffs2",
.offset = 0x280000,
.size = 0x1800000,
},
[3] = {
.name = "Roofts user",
.offset = 0x1a80000,
.size = SZ_1M*24,
},
}
系统启动的过程如下:先有nor flash从地址0启动,运行u-boot,然后读取存储在nand
flash中的内核,加载到内存0x3000 8000,然后启动内核,最后内核加载jffs2根文件系统,整个系统就跑起来了,理想情况是u-boot也从nand中启动就最好了。
三.系统配置
3.1 u-boot的配置
从u-boot中加载linux kernel的配置,设置启动的参数set bootcmd
'nand read 0x30008000 0x80000 0x0020 0000;bootm 0x30008000'
具体含义是从地址0x80000处,读取长度为0x200000的数据复制到内存0x30008000,然后从该内存地址启动;
Setenv bootargs root=/dev/mtdblock2 rootfstype=jffs2 rw console=ttySAC0,115200 init=/linuxrc
Saveenv
1)Nand erase 0x8 0000 0x20
0000 //从地址0x8000起,删除长度0x200000, 2M;
2)Nand write 0x30008000 0x8
0000 0x20 0000 //从内存30008000的数据写到地址8000上,长度是200000
3)nand read 0x30008000 0x8 0000 0x0020 0000 //从地址80000将长度为20
0000的数据复制到3000 8000
3.2 jffs2根文件系统的制作
Mkfs.jffs2 –r /nfsrootfs/rootfs –o rootfs.jffs2 –e 0x4000 --pad=0x1800000 -n/nfsrootfs/rootfs根文件系统的目录
Rootfs.jffs2
生成的映像文件
-e 0x4000 nand flash的块大小
0x1800000
该大小应该 >= 生成的映像文件的大小,
在将映像文件写到nand flash上时,该数值和写入的空间应该一致,否则启动时会发生错误,错误如下: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x008d4020:
0x0004 instmtd->read(0x3c08 bytes from 0x8d83f8) returned ECC error
mtd->read(0x400 bytes from 0x8dc000) returned ECC error
-n 如果挂载后出现 CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0 , 则需要该 –n 的参数
启动时把/bin/sh文件删掉了,产生错误:
cannot run '-/bier to activate this console.
将jffs2根文件系统映像写入nand flash
Tftp 30008000 rootfs.jffs2 //通过u-boot将映像导到内存30008000
Nand write.jffs2 30008000 280000 180 0000 //将在内存中的映像保存到地址为280000,长度为1800000的nand
flash空间。
相关文章推荐
- Linux系统批量化安装部署之Cobbler
- [原创]在Linux系统Ubuntu14.04上安装部署docker。
- linux下nfs网络文件系统部署
- 邮件系统部署文档(Linux版)
- Linux部署之批量自动安装系统之Kickstart篇
- 百晓生带你玩转linux系统服务搭建系列----AWStats日志分析系统的部署
- 在linux部署hornetq为系统服务
- 在Linux系统部署InfluxDB
- linux 部署ELK 日志分析系统与简单测试
- Linux环境下安装部署MySQL数据库系统实例
- linux 环境 centos6.5 下部署 dns 域名系统详细过程
- Netdata---Linux系统性能实时监控平台部署记录
- Linux系统部署项目常用命令(三)
- Linux系统操作(8)———Tomcat项目部署
- Linux系统postfix邮件部署
- Linux桌面的胜利:北电在公司部署四万台Linux系统
- linux CentOS 7.2 服务器配置apache+mysql+php环境 (linux 系统下LAMP部署)
- 初学linux网络服务之PXE网络部署系统实验
- Linux系统下Jsp环境部署【转】
- Cobbler无人值守全自动安装部署Linux系统