你现在位置:首页>技术论文>软件知识>正文
达芬奇-创建文件系统(ramdisk)1
日期:2008-5-31 0:16:33 来源:本站整理  
点击: 作者:
点击【】放大字体.
达芬奇-创建文件系统(ramdisk)
WW.W_PLCJS_COM-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

声明:一切为了共同进步
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WWW_PLC※JS_COM-PmLC-技.术_网

作者:耿磊
——可——编——程——控-制-器-技——术——门——户

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

一个初始化好的RAM disk 依赖于bootloader(u-boot)在启动时把它从非易失性存储器(如NOR flash)下载到易失性存储器中(如DDR)。在RAM disk中的文件系统是一个初始化的RAM 文件系统,或者initrd。这个文件系统可以挂载为跟文件系统并且应用程序可以从它这里执行。这就是内核本地存储。由于它存储在易失性存储器中,所以会在断电后丢失。对大多数的嵌入式系统来说,这个是运行环境。如果必须存储一些运行时的参数就需要NOR flash文件系统。
WW.W_PLCJS_COM-PLC-技.术_网

WWcW_PLCJS_COM-PLC-技.术_网

为了节省时间,可以使用DVEVM提供的RAM disk。它/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/images下。在这里,RAM disk文件是ramdisk.gz(大约2.1MB)。运行时,占用DDR大约6.3MB。这个文件系统包含了一些不需要的工具,但是适合做一个典型的嵌入式系统。应该如何使用RAM Disk呢?
plcjs.技.术_网

plcjs.技.术_网

1.            先把这个RAM disk复制到一个暂存位置。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

在mnt下建立文件夹:mkdir /mnt/def_cd,然后复制
WWW_P※LCJS_COM-PLC-)技.术_网

plcjs.技.术_网

Cp /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/image/ramdisk.gz /mnt/def_cd
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

2.            解压文件:gzip –d /mnt/def_cd /ramdisk.gz
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

3.            创建挂接点并挂接
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

mkdir –p /mnt/def_cd/ram0
WWW_PLCJS_COM-PLC-技.术_网

mount –o loop /mnt/def_cd/ramdisk /mnt/def_cd/ram0
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_PLC※JS_COM-PmLC-技.术_网

4.            查看挂接后的文件
plcjs.技.术_网

cd /mnt/def_cd/ram0
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

ls
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WW.W_PLC※JS_C,OM-PL,C-技.术_网

5.             把可执行文件放到文件系统中来。
WW.W_PLCJS_COM-PLC-技.术_网

假设要运行的程序是thttpd,那么先创建一个demo文件夹,并把thttpd复制到该文件夹中。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

mkdir /mnt/def_cd/ram0/opt/demo
plcjs.技.术_网

cp thttpd /mnt/def_cd/ram0/opt/demo
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

6.            Write the index.html and cgi scripts and copy these files to the initial RAM disk file system. Edit a filecalled startweb.sh and add the following script to start the web server:写一个startweb.sh文件来启动应用程序。
WWW_P※LCJS_COM-PLC-)技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

#!/bin/sh
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW.PLCJS.COM——可编程控制器技术门户

# script to start web sever
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

# script to start web sever
WWW_P※LCJS_CO※M-PLC-技-.术_网

P.L.C.技.术.网——可编程控制器技术门户

echo "Start web service..."
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWcW_PLCJS_COM-PLC-技.术_网

/opt/dvevm/web/thttpd -d /opt/dvevm/web -c "/cgi-bin/*"
WWW_PLCJS_COM-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

7.            把这个script复制到RAM disk的/et/init.d文件夹中作为启动的一项。
W1WW_P4LCJS_COM-PLC-技.术_网

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

host $ cp startweb.sh /mnt/def_cd/ram0/etc/init.d
WWW_PLCJS_COM-PLC-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

host $ chmod +x /mnt/def_cd/ram0/etc/init.d/startweb.sh
WWW.PLCJS.COM——可编程控制器技术门户

WWW_PLC※JS_COM-PmLC-技.术_网

host $ cd /mnt/def_cd/ram0/etc/rc.d/rcS.d
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

host $ ln –s ../init.d/startweb.sh S42startweb
WWcW_PLCJS_COM-PLC-技.术_网

——可——编——程——控-制-器-技——术——门——户

8.            重新压缩文件系统,作为烧写之用。
P.L.C.技.术.网——可编程控制器技术门户

——可——编——程——控-制-器-技——术——门——户

host $ cd /mnt/def_cd
WWW_PLCJS_COM-PLC-技.术_网

P.L.C.技.术.网——可编程控制器技术门户

host $ umount /mnt/def_cd/ram0
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WW.W_PLCJS_COM-PLC-技.术_网

host $ gzip ramdisk
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

host $ cp ramdisk.gz /tftpboot
WW.W_PLCJS_COM-PLC-技.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

 
P.L.C.技.术.网——可编程控制器技术门户

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

如果umount时显示device is busy,可以采取以下办法:
WWW_PLCJS@_COM%-PLC-技.术_网

WWW.PLCJS.COM——可编程控制器技术门户

l        Fuser –m /mnt/rdmnt,找出那个进程还使用当前文件夹(比如2040)
WW.W_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

l        ps aux 显示所有线程
WWW.PLCJS.COM——可编程控制器技术门户

WW.W_PLC※JS_C,OM-PL,C-技.术_网

kill 2040
评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行