快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱到h88285:Intel CE2110上Redboot的使用



Sam很早之前应用过redboot。后来很快忘怀若何应用了。 之后在Intel CE2110以及 CE3100上应用了redboot.结果现在有段光阴不用,又忘怀了。只好再看一遍。此次能记得住吗?秃头葛说:我看(不)行!

Redboot简介:

Redboot是Redhat公司随eCos宣布的一个BOOT规划,是一个开源项目。

Redboot支持的处置惩罚器构架有ARM,MIPS,MN10300,PowerPC, Renesas SHx,v850,x86等,是一个完善的嵌入式系统Boot Loader。

Redboot是在ECOS的根基上剥离出来的,承袭了ECOS的简洁、轻巧、可机动设置设置设备摆设摆设、稳定靠得住等

品德优点。它可以应用X-modem或Y-modem协议经过串口下载,也可以经过以太网口经由过程

BOOTP/DHCP办事得到IP参数,应用TFTP要领下载法度榜样映像文件,常用于调试支持和系统初始化。

RedBoot的基础用法和记娱到h88285:

1. 进入Redboot 设置界面:

在Intel-CE2110从新启动时,按下Ctrl+C。 则进入Redboot设置设置设备摆设摆设模式下。

呈现以下提示符,注解进入RedBoot设置界面。

RedBoot>

在此界面下,可以应用RedBoot敕令履行操作。

2. 改动RedBoot boot script。此script将被RedBoot在启动时应用。

首先辈入RedBoot boot script edit界面。

RedBoot> fconfig

则呈现:

>>

在这里输入: RedBoot boot script内容。

若发明fconfig后,呈现莫名其妙的差错,可以清空boot script,措施:

RedBoot>fconfig -i

Intel CE2110上,按照kernel和rootfs放置的不合要领,有3种启动要领(与CE3100很类似):

1. kernel和rootfs整个放置在tftp server上。

2. kernel烧入到NOR flash中,rootfs则应用 nfs server中的。

3. kernel和rootfs整个烧入NOR flash中。

前2种要领在开拓阶段异常有用。可以快速改动kernel和rootfs.

1. kernel和rootfs整个放置在tftp server上:

1.1: copy zImage(kernel)和initrd_media.gz(rootfs)到/tftpboot

1.2:

RedBoot> fconfig

>>load –v –r –m tftp –h 172.16.1.61 –b 0x200000 zImage_olo

>>load –v –r –m tftp –h 1和记娱到h8828572.16.1.61 –b 0x1000000 initrd_media.gz

>>exec –r 0x1000000 –s 0x12B2BDD –l 0x300000 –c “console=ttyS0, 115200 mem=100M@0 root=/dev/ram0 init=/linuxrc” 0x200000

则可以应用了。(但Sam应用这个法子时总有问题。显示乱码。)

现解说敕令如下:

load: 下载数据到目标系统RAM中.

-v: 下载历程显示进度

-r: 下载未处置惩罚的数据到RAM

-b: 数据下载到RAM的地址

-m: 要领

-h: host

exec: 履行一个映象文件,如向导Linux内核

-r: 通报给内核的ramdisk_address肇端地址

-s: 通报给内核的ramdisk_address长度

-b: 内核映象文件地址

-l: 内核映象文件长度

-c: 通报给内核的敕令行

2. kernel烧入到NOR flash中,rootfs则应用 nfs server中的。 (Sam照样有问题)

2.1. kernel burn 到flash。

2.1.1 把新kernel--zImage放到/tftpboot

2.1.2 Ctrl-c 进入redboot模式。

2.1.3烧入:

RedBoot>fis 和记娱到h88285init

RedBoot>load -v -r -m tftp -h 172.16.1.61 -b 0x00200000 zImage_olo

RedBoot>fis unlock -f 0xc0040000 -l 0x00200000

RedBoot>fis create -b 0x00200000 -l 0x00200000 zImage

评释如下:

fis 是RedBoot FIS(Flash Image System)相关敕令。

RedBoot>fis init

初始化FIS目录,-f表示将所有的flash空间初始化

RedBoot>load -v -r -m tftp -h 172.16.1.61 -b 0x00200000 zImage_olo

将zImage_olo这个文件从tftp上copy到RAM 0x00200000 处。

RedBoot>fis unlock -f 0xc0040000 -l 0x00200000

解除flash空间的锁定,-f flash_address,-l length

RedBoot>fis create -b 0x00200000 -l 0x00200000 zImage

在FIS(Flash Image System)目录中创建一个映象,将当前RAM中的数据写入FLASH存储器中。是以,在应用该敕令之前,映象文件数据必须已经保存在RAM中。

-b:待写入flash数据的寄放地址(RAM地址)

-l:长度

zImage:创建映象的名称

Sam想,为什么没有用 -f(flash地址),是由于上一句指令指定了unlock的flash.以是缺省放在那了。

2.2 筹备rootfs在nfs中:

进入redboot config

RedBoot>fconfig

>>fis load zImage

>>exec -c "console=ttyS0,115200

mem=100M@0

root=/dev/nfs nfsroot=172.16.1.61:/home/sam/Intel, nolock ip=dhcp" 0x200000

3. kernel和rootfs整个烧入NOR flash中(重点)

3.1把Kernel(zImage)和rootfs(busybox_media.jffs2)放到/tftpboot中。

3.2ctrl-c进入redboot模式。

3.3烧入:

RedBoot〉fis init

RedBoot〉load -v -r -m tftp -h 172.16.1.61 -b 0x00200000 zImage_olo

RedBoot〉load -v -r -m tftp -h 172.16.1.61 -b 0x01000000 busybox_media.jffs2

RedBoot〉fis unlock -f 0xc0040000 -l 0x00200000

RedBoot〉fis create -b 0x00200000 -l 0x00200000 zImage

RedBoot〉fis create -f 0xc0240000 -l 0x01d80000 -n root

RedBoot〉fis unlock -f 0xc0240000 -l 0x01d80000

RedBoot〉fis erase -f 0xc0240000 -l 0x01d80000

RedBoot〉fis write -f 0xc0240000 -l xxxxxx -b 0x01000000

留意:xxxxxx是rootfs的长度,必要颠末谋略获得

也便是在load -v -r -m tftp -h 172.16.1.61 -b 0x01000000 busybox_media.jffs2之后,

看到其输出:Raw file loaded 0x0和记娱到h882851000000-0x01e5ffff

则长度为:0x01e5ffff-0x01000000+1=0xE60000

RedBoot〉fis write -f 0xc0240000 -l 0xE60000 -b 0x01000000

解说如下:

RedBoot〉fis init

RedBoot〉load -v -r -m tftp -h 172.16.1.61 -b 0x00200000 zImage_olo

RedBoot〉load -v -r -m tftp -h 172.16.1.61 -b 0x01000000 busybox_media.jffs2

初始化FIS目录。并把zImage_olo和rootfs分手放到RAM 0x200000和0x1000000位置。

fis unlock -f 0xc0040000 -l 0x00200000

解和记娱到h88285除flash空间的锁定

RedBoot〉fis create -b 0x00200000 -l 0x00200000 zImage

RedBoot〉fis create -f 0xc0240000 -l 0x01d80000 -n root

将RAM中0x00200000处的器械(zImage)放到Flash xC0040000处. 并创建名为zImage的分区。

在Flash肇端地址0xc0240000 创建为root分区。

RedBoot〉fis unlock -f 0xc0240000 -l 0x01d80000

RedBoot〉fis erase -f 0xc0240000 -l 0x01d80000

RedBoot〉fis write -f 0xc0240000 -l xxxxxx -b 0x01000000

把root分区所在flash解压缩。

把root分区所在Flash Erase.

把RAM 0x01000000的器械(rootfs)放到0xc0240000的FLASH中。

至此:把kernel和rootfs放到flash各自区域中了。

3.4进入redboot config

RedBoot〉fconfig

>>fis load zImage

>> exec -c "console=ttyS0,115200

mem=100M@0

rootfstype=jffs2 rootflags=noatime root=/dev/mtdblock2 rw" 0x200000

统统正常。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: