当前位置:文档之家› ramdisk和initramfs文件系统制作V1.1

ramdisk和initramfs文件系统制作V1.1

ramdisk和initramfs文件系统制作V1.1
ramdisk和initramfs文件系统制作V1.1

Ramdisk和initramfs文件系统制作

一、实验环境

操作系统:Ubuntu Linux2.6.38-8

内核源代码:Linux2.6.32

实验前准备:用Busybox制作好的rootfs文件夹(包含文件系统中的基本文件etc,lib,dev等,可以使用NFS挂载文件系统测试制作的rootfs是否能用)

二、ramdisk文件系统制作

1.重新为NAND Flash分区

在内核源码\linux-03.00.00.04\arch\arm\mach-omap2\board-am3517evm.c 中修改:

static struct mtd_partition am3517evm_nand_partitions[]={

/*All the partition sizes are listed in terms of NAND block size*/

{

.name="xloader-nand",

.offset=0,

.size=4*(SZ_128K),

.mask_flags=MTD_WRITEABLE

},

{

.name="uboot-nand",

.offset=MTDPART_OFS_APPEND,

.size=15*(SZ_128K),

.mask_flags=MTD_WRITEABLE

},

{

.name="params-nand",

.offset=MTDPART_OFS_APPEND,

.size=1*(SZ_128K)

},

{

.name="linux-nand",//存放内核

.offset=MTDPART_OFS_APPEND,

.size=32*(SZ_128K)

},

#if0

{

.name="ubifs-nand",

.size=MTDPART_SIZ_FULL,

.offset=MTDPART_OFS_APPEND,

},

#else//ramdisk+jffs2

{

.name="ramdisk-nand",//存放制作好的ramdisk文件系统

.size=64*(SZ_128K),//8M

.offset=MTDPART_OFS_APPEND,

},

{

.name="data-nand",//数据区,用于保存数据

.size=128*(SZ_128K),//16M

.offset=MTDPART_OFS_APPEND,

},

#endif

{

.name="other-nand",

.size=MTDPART_SIZ_FULL,

.offset=MTDPART_OFS_APPEND,

},

};

分区后Nand Flash地址范围:

0x00000000-0x00080000xloader-nand

0x00080000-0x00260000uboot-nand

0x00260000-0x00280000params-nand

0x00280000-0x00680000linux-nand

0x00680000-0x00E80000ramdisk-nand

0x00E80000-0x1E800000data-nand

0x1E800000-others-nand

2.配置内核

(1)拷贝配置文件

cp arch/arm/configs/omap3_soc8200_defconfig.config (2)make menuconfig

1)在General setup--->选中

2)在Device Drivers--->Block devices选中

配置完成,选择保存退出

(3)编译内核

make

make uImage在arch/arm/boot生成uImage系统镜像

3.制作ramdisk文件系统

(1).建立loop设备的临时挂载点

#mkdir/mnt/loop

(2).建立文件系统映象

#dd if=/dev/zero of=/tmp/ramdisk bs=1k count=12300

(3).mke2fs–F–v–m0/tmp/ramdisk

此处-F选项将可迫使mke2fs在文件上运行。否则mke2fs会抱怨/tmp/ramdisk 不是个块设备(/tmp/ramdisk文件映象必须是块设备文件)。-v选项指出mke2fs 应该以verbose模式执行,-m0指出不必在文件系统上为“超级用户”保留任何区块,因为在嵌入式系统中通常是单用户系统,为“超级用户”保留区块没有意义。

(4).挂载映象文件

#munt–o loop/tmp/ramdisk/mnt/loop

挂载后,在/mnt/loop下就可以对文件系统的内容进行操作。

(5).cp操作将需要的文件等复制到目录下。

(6).卸载映象文件

#umount/mnt/loop

(7).压缩映象文件

#gzip–v9/tmp/ramdisk

生成ramdisk.img.gz

注:可以使用ramdisk制作工具genext2fs,自动生成ramdisk.img,然后再压缩映像文件。

4.制作jffs2格式的文件

内核启动后将Nand的数据分区(0x00E80000-0x1E800000 data-nand)挂载到系统某一目录,为了使该分区可以读写,需要烧写一个jffs2或者yaff2格式的文件,在这里选择jffs2格式。

用到的工具是mkfs.jffs2,操作过程如下:

将mkfs.jffs2(可在网上下载)放到/usr/sbin目录下,这样就可以使用它了。执行下面的命令:

mkfs.jffs2-s0x800-e0x20000-p1000000-d data/-o data.jffs2–n

参数说明:

-s,--pagesize=SIZE节点页大小(默认:4KiB)要根据使用的Nand Flash的型号来确定,在这里是0x800,是因为使用的nand的页大小是2k.

-e,--eraseblock=SIZE设定擦除块的大小为(默认:64KiB).使用的nand的块大小是128K(0x20000)

-p,jffs2分区的总大小,16M

-d,要制作成jffs2文件格式的源文件路径。

-o,指定生成的镜像文件的路径名。

-n,--no-cleanmarkers指明不添加清楚标记(nand flash有自己的校检块,存放相关的信息。)

如果挂载后会出现类似:

CLEANMARKER node found at0x0042c000has totlen0xc!=normal0x0的警告,则加上-n就会消失。

最后生成data.jffs2的镜像文件

5.烧写镜像文件到Nand Flash

在U-boot调试模式下,使用tftp方式来烧写镜像。

(1)烧写kernel

tftp80300000uImage

nand erase280000400000

nand write.i80300000280000(uImage的大小)

(2)烧写ramdisk

tftp81000000ramdisk.img.gz

nand erase680000800000

nand write.i81000000680000(ramdisk.img.gz的大小)

(3)烧写jffs2文件

tftp82000000data.jffs2

nand erase e80000

nand write.i82000000e80000(data.jffs2的大小)

6.设置启动参数

setenv bootargs"console=ttyS2,115200n8root=/dev/ram0rw

initrd=0x81000000,30M"

其中initrd=0x81000000表明内核会在该地址加载文件系统,所以系统启动时要从nand把ramdisk.img.gz读取到0x81000000开始的内存

setenv bootcmd"nand read.i80300000280000300000;nand read.i81000000680000 1000000;bootm80300000"

这样制作ramdisk文件系统的就已经完成,重启开发板就可启动。

三、initramfs文件系统制作

1.重新修改Nand Flash分区

static struct mtd_partition am3517evm_nand_partitions[]={

/*All the partition sizes are listed in terms of NAND block size*/

{

.name="xloader-nand",

.offset=0,

.size=4*(SZ_128K),

.mask_flags=MTD_WRITEABLE

},

{

.name="uboot-nand",

.offset=MTDPART_OFS_APPEND,

.size=15*(SZ_128K),

.mask_flags=MTD_WRITEABLE

},

{

.name="params-nand",

.offset=MTDPART_OFS_APPEND,

.size=1*(SZ_128K)

},

{

.name="kernel-ramdisk-nand",//12M

.offset=MTDPART_OFS_APPEND,

.size=96*(SZ_128K)

},

#if0

{

.name="ubifs-nand",

.size=MTDPART_SIZ_FULL,

.offset=MTDPART_OFS_APPEND,

},

#endif//delete by xiaoqi2013.12.16

{

.name="data-nand",//add for store data50M

.offset=MTDPART_OFS_APPEND,

.size=400*(SZ_128K)

},

{

.name="others-nand",

.size=MTDPART_SIZ_FULL,

.offset=MTDPART_OFS_APPEND,

},

};

分区后nand的地址范围为:

0x000000000000-0x000000080000:"xloader-nand"

0x000000080000-0x000000260000:"uboot-nand"

0x000000260000-0x000000280000:"params-nand"

0x000000280000-0x000000e80000:"kernel-ramdisk-nand"

0x000000e80000-0x000004080000:"data-nand"

0x000004080000-0x000010000000:"others-nand"

因为内核和文件系统编译在一起会比较大,所以加大了kernel-ramdisk-nand 的大小。12M

2.制作initramfs文件系统

(1).创建实验目录

#mkdir-p/home/berlin/make_ramdisk/

(2).修改根文件系统,将init软链接到busybox(重要的一步,否则内核无法启动)

/home/berlin/make_ramdisk/rootfs

#ln-s./bin/busybox init

linux kernel在自身初始化完成后,需要能够找到并运行第一个用户程序(通常叫做init程序)。用户程序库存在于文件系统中,因此内核必须找到并挂载一个文件系统才可以成功完成系统的引导过程。

(3).拷贝内核配置文件

修改.config,将下面一行改成:

CONFIG_CMDLINE="console=ttySAC2,115200n8"(也可在U-boot命令行设定启动参数)。

注:CMDLINE==>命令行启动参数定义了内核挂载根文件系统的方式

console=ttySAC2,115200n8mem=64M==>ttySAC2做为控制台。

(4).配置内核

1)在General setup-->选中如下选项

2)在下面的initramfs source中输入rootfs的路径

(5).编译内核

最后在arch/arm/boot中会生成uInage镜像文件,这个镜像文件包含操作系统内核和根文件系统。

3.制作jffs2格式文件

同ramdisk文件系统制作时的方法一样。

mkfs.jffs2-s0x800-e0x20000-p3200000-d data/-o data.jffs2–n

4.烧写镜像文件到Nand Flash

(1)烧写内核和文件系统镜像

1.烧写内核

nand erase280000c00000

nand write.i81000000280000b00000

2.烧写jffs2格式文件

nand erase e800003200000

nand write.i82000000e800005a0000

5.修改启动参数

setenv bootargs“console=ttyS2,115200n8”

setenv bootcmd“nand read.i80300000280000b00000;bootm80300000”至此initramfs文件系统制作完成,重启开发板即可启动。

SuperSpeed Ramdisk_Plus设置及使用方法

SuperSpeed Ramdisk 10.0.1,此Ramdisk 正式支援Windows 7、且同时支援x86 和x64。首先还是最关心的x86 4GB 记忆体问题。为此32 位元Windows 7 必须开启PAE: Start ? All Programs ? Accessories ? Command Prompt 点右键,再点Run as administrator,执行以下命令。bcdedit /set pae forceenable 开启PAE 要重新开机才能生效。然后再开SuperSpeed Ramdisk。 软体介面点工具列的Memory 如图示。点Unmanaged。 点Configure。勾选Enable use of unmanaged memory。

若未能自动识别记忆体,就取消勾选下方的两项。手动输入:第一栏,电脑安装的记忆体容量(MB);第二栏肯定是写0。最后点OK,出现提示:就是说已经成功启用作业系统无法使用的那部分记忆体给ramdisk。 接下来将方才配置记忆体时开启的视窗关掉,添加ramdisk。软体介面点工具列最左边的加号图示。 点Next,指定ramdisk 的记忆体容量。我在这里指定512MB,先作为测试之用。因为本人的4GB 记忆体只能用 3.5GB,先将作业系统无法用到的0.5GB 指定为ramdisk,这512MB ramdisk 应该不会占用作业系统可用的记忆体,也就是说ramdisk 添加后,Task Manager 中显示的已使用记忆体的数量不变。 当删除或恢复ramdisk 时,是否清空旧有的ramdisk 内容(偶觉得应该是这么理解)。这项偶觉得勾选之会比较好。Ramdisk 的磁碟机代号,用R。

busybox详解制作根文件系统

详解制作根文件系统 单击,返回主页,查看更多内容 一、FHS(Filesystem Hierarchy Standard)标准介绍 当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。 该标准规定了根目录下各个子目录的名称及其存放的内容: 制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括: ?编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录 ?利用交叉编译工具链,构建/lib目录 ?手工构建/etc目录 ?手工构建最简化的/dev目录 ?创建其它空目录 ?配置系统自动生成/proc目录 ?利用udev构建完整的/dev目录 ?制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。 二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god,这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。 1、从https://www.doczj.com/doc/21710779.html,/下载busybox-1.7.0.tar.bz2 2、tar xjvf busybox-1.7.0.tar.bz2解包 3、修改Makefile文件 175 ARCH ?= arm 176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busybox busybox配置主要分两部分。 第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:

Ramdisk的制作硬件原理

Ramdisk的制作硬件原理 2011-07-15 By:平台组 Ramdisk是一种模拟的磁盘,其数据实际上存储在RAM 中,它使用一部分内存空间来模拟出一个磁盘,以块设备的方式来访问这片内存,Ramdisk对应的设备文件一般为/dev/ram%d 在/home/com_target_master/文件系统下没有mke2fs命令,1》 从mvl31_82xx_target/sbin/目录下,将mke2fs移植到/home/com_target_master/sbin目录下. 2》可能缺少两个库文件,从 mvl31_82xx_target/lib/libe2p.so.2.3 和libuuid.so.1.2 到 /home/com_target_master/lib/下 然后ln -s libe2p.so.2.3 libe2p.so.2 ln -s libuuid.so.1.2 libuuid.so.1 移植就成功了 3》 通过下面三组命令 使用下面一组命令就可以创建并挂载Ramdisk: mkdir /tmp/ramdisk0 //创建挂载点

mke2fs /dev/ram0 1024 //创建一个文件系统 mount /dev/ram0 /tmp/ramdisk0 //装载Ramdisk 如果想跟挂载的大小可以在后面跟参数。 mke2fs /dev/ram0 1024 大概是1M mke2fs [-cFMqrSvV][-b <区块大小>][-f <不连续区段大小>][-i <字节>][-N ][-l <文件>][-L <标签>][-m <百分比值>][-R=<区块数>][ 设备名称][区块数] 补充说明:mke2fs可建立Linux的ext2文件系统。 参数: -b<区块大小> 指定区块大小,单位为字节。 -c 检查是否有损坏的区块。 -f<不连续区段大小> 指定不连续区段的大小,单位为字节。 -F 不管指定的设备为何,强制执行mke2fs。 -i<字节> 指定"字节/inode"的比例。 -N 指定要建立的inode数目。 -l<文件> 从指定的文件中,读取文件西中损坏区块的信息。 -L<标签> 设置文件系统的标签名称。 -m<百分比值> 指定给管理员保留区块的比例,预设为5%。 -M 记录最后一次挂入的目录。 -q 执行时不显示任何信息。 -r 指定要建立的ext2文件系统版本。 -R=<区块数> 设置磁盘阵列参数。 -S 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。 -v 执行时显示详细信息。 -V 显示版本信息。

机械手说明书

电气控制与PLC 课程设计说明书 题目机械手控制 院系机械工程学院 专业机械工程及自动化(电梯工程) 班级0722112 学号072211221 学生姓名孙奇 指导教师胡朝斌、易风 机械工程学院 2014年6月

目录 一、绪论 (3) 二、机械手的工作原理 (4) 2.1机械手的概述 (4) 2.2机械手的工作原理 (5) 三、机械手的工作流程图 (7) 四、输入和输出点分配图及原理接线图 (8) 五、元器件选型清单 (10) 六、控制程序 (14) 6.1初始化流程图设计 (14) 6.2手动操作梯形图 (15) 6.3回原点方式顺序功能图 (16) 6.4自动方式顺序功能图 (17) 6.5 PLC总程序梯形图 (18) 七、总结 (23) 参考文献 (24)

一、绪论 1.1 可编程序控制器的应用和发展概况 可编程序控制器(programmable controller),现在一般简称为PLC (programmable logic controller),它是以微处理器为基础,综合了计算机技术、半导体集成技术、自动控制技术、数字技术、通信网络技发展起来的一种通用的工业自动控制装置。以其显著的优点在冶金、化工、交通、电力等领域获得了广泛的应用,成为了现代工业控制三大支柱之一。 1.2 PLC的应用概况 PLC的应用领域非常广,并在迅速扩大,对于而今的PLC几乎可以说凡是需要控制系统存在的地方就需要PLC,尤其近几年来PLC的性价比不断提高已被广泛应用在冶金、机械、石油、化工、轻功、电力等各行业。 按PLC的控制类型,其应用大致可分为以下几个方面。 (1)用于逻辑控制 这是PLC最基本,也是最广泛的应用方面。用PLC取代继电器控制和顺序控制器控制。例如机床的电气控制、包装机械的控制、自动电梯控制等。 (2)用于模拟量控制 PLC通过模拟量I/O模块,可实现模拟量和数字量之间转换,并对模拟量控制。 (3)用于机械加工中的数字控制 现代PLC具有很强的数据处理功能,它可以与机械加工中的数字控制(NC)及计算机控制(CNC)紧密结合,实现数字控制。 (4)用于工业机器人控制 (5)用于多层分布式控制系统 高功能的PLC具有较强的通信联通能力,可实现PLC与PLC之间、PLC与远程I/O之间、PLC与上位机之间的通信。从而形成多层分布式控制系统或工厂自动化网络。 1.3 PLC概况及在机械手中的应用 (1)可靠性高、抗干扰能力强 (2)控制系统构成简单、通用性强 由于PLC是采用软件编程来实现控制功能,对同一控制对象,当控制要求改变需改变控制系统的功能时,不必改变PLC的硬件设备,只需相应改变软件程序。

liu改udhcpc配置+根文件系统制作

基于ubuntu12.06 Mini2440 256M 试验通过2013年4月8日星期一 1、获得simple.script #解压busybox tar jxvf busybox-1.5.0.tar.ba2 mv busybox-1.5.0 busybox cd busybox #添加交叉工具链 export PATH=/usr/local/arm/3.3.2/bin:$PATH make defconfig make menuconfig #配置时,我们基于默认配置,再配置它为静态编译,安装时不要/usr路径,把Miscellaneous Utilities #下的“taskset”选项去掉,不然会出错。 #如下: Busybox setting ->builds options ->[*] build busybox as a static binary ->installitation options ->[*] don’t use /usr Miscellaneous Utilities ―> [ ] taskset 保存退出。 #编译安装 make ARCH=arm CROSS_COMPILE=arm-linux- CONFIG_PREFIX=/root/build_rootfs/rootfs all install ARCH指定平台 CROSS_COMPILE指定交叉编译 CONFIG_PRRFIX指定安装的路径 或者直接修改Makefile文件 生成的udhcpc是一个链接在上面的安装目录/all/sbin 下 此时把busybox考到根文件系统的/bin下和把udhcpc拷到根文件系统的/sbin(其实原有的根文件系统里可能已经包含了udhcpc{这样该不该都行,或许吧})开机运行/sbin 下的udhcpc就可以自动获得IP。 关键点要把busybox目录下的examples/udhcp/simple.script 脚本文件做为default.script拷贝到根文件系统的/usr/share/udhcpc/default.script。没有则自己创建。

实验四 ramdisk 根文件系统的制作

实验四ramdisk根文件系统的制作 一.实验目的 1.熟悉根文件系统组织结构; 2.定制、编译ramdisk根文件系统。 二.实验设备 1.硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机; 2.软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。 三.实验内容 利用6.3 中的已经完成的文件系统,生成一个根文件系统镜像。 四.实验原理 ramdisk是内核初始化的时候用到的一个临时文件系统,是一个最小的linuxrootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,做为启动引导驱动,包含如下目录: bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。还需要有一些基本的工具:sh,ls,cp,mv……(位于/bin 目录中);必要的配置文件:inittab,rc,fstab……位于(/etc目录种);必要的设备文件:/dev/tty*,/dev/console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:glibc。1.制作ramdisk根文件系统映像 1)单击菜单应用程序->附件->终端打开终端,设置环境变量: $ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh $ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh 2)执行命令切换到ramdisk实验目录下: $cd $SIMPLEDIR/6.4-ramdisk 3)运行脚本文件: $ sudosh ramdisk-install.sh shell 脚本命令说明: #!/bin/bash # # ramdisk-install.sh - Make ramdiskfilesystem. # # Copyright (C) 2002-2007

RAMDisk使用教程图解

远不磨损的硬盘RAMDisk,也许有很多朋友不是很了解这种软件,不知道如何使用,那就看介绍吧. 近几年来,计算机的CPU、内存和显卡等主要配件的性能都提升得很快,而与之相对应的磁盘系统性能正越来越严重地成为整个电脑系统性能提升的瓶颈。虽然磁盘技术也从以前的ATA33发展到今天的ATA66/ ATA100/ATA133。但是,这还是不能彻底解决磁盘瓶颈的问题,特别是在运行一些对数据存取速度要求很高的程序,如数字影像处理或玩3D游戏装入纹理数据时,受磁盘存取速度的影响,屏幕画面时常会出现延迟和停顿。幸好,一种能在PC平台上应用的、名为“RAMDisk”(RAM驱动器)的技术应运而生,可解电脑玩家们的“燃眉之急”。 所谓的RAM驱动器,实际上是把系统内存划出一部分当作硬盘使用。对于操作系统来内存的存取速度远远大于机械磁盘,所以RAM驱动器肯定要比机械的硬盘快得多。你可以把整个应用程序都安装在RamDi sk的驱动器中,然后用内存的速度运行它。使用RAM驱动器技术对于延长笔记本电脑电池使用时间也是十分有利的,因为这样做可以减少访问“耗电大户”——硬盘的次数。 RamDisk内存盘的特性是把数据完全存储在内存中,所以一旦关闭计算机,就会导致内存盘中的数据完全丢失,这个特性使得内存盘特别适合于存储一些临时文件,如IE的缓存,Windows和应用程序运行时产生的临时文件,这些文件都适合放到内存盘上,从而减少硬盘上文件碎片的产生,并且不需要主动删除这些临时文件,一旦重新启动,这些垃圾文件就自动消失了。也正是这个特性,使得内存盘不适合存储重要的数据文档,因为一旦死机,这些东西就再也找不回来了。 安装使用内存盘大操作系统要求是windows2K以上,内存256兆以上。内存太小就不要使用内存盘了,否则会降低windows的运行效率。 一、Ramdisk的安装 Ramdisk绿色版下载地址:https://www.doczj.com/doc/21710779.html,/Soft/xtrj/200806/532.html

基于busybox的根文件系统制作

龙源期刊网 https://www.doczj.com/doc/21710779.html, 基于busybox的根文件系统制作 作者:李飞,武金虎,石颖博 来源:《电脑知识与技术》2010年第17期 摘要:Busybox是构建嵌入式Linux文件系统的必备软件,它是所有文件和设备节点的起始点,是决定系统能否正常启动的关键。通过busybox-1.1.3为例,进行配置、编译、安装等过程,从而形成简单的根文件系统映像文件,为以后嵌入式Linux系统的移植打下了良好的开端。 关键词:Busybox;嵌入式Linux;Linux操作系统;根文件系统;cramfs 文件系统 中国分类号:TP316.81文献标识码:A文章编号:1009-3044(2010)17-4655-02 Making Root File System Based on Busybox LI Fei, WU Jin-hu, SHI Ying-bo (College of Computer Science and Information, Guizhou University, Guiyang 550025, China) Abstract: Busybox is an essentiaL software to buiLd an embedded Linux fiLe system. It is the starting node point of aLL the fiLes and devices and the key whether the system can have a normaL start. Taking busybox-1.1.3 for exampLe, making a simpLe root image system fiLe by configuration compiLation and instaLLation Lays a good foundation for migration of the embedded Linux system. Key words: busybox; embedded linux; Linux OS; root file system; cramfs file system 1 根文件系统结构 根文件系统是所有文件和设备节点的起始点,包括系统所必须的各种工具软件、库文件、 脚本、配置文件等一系列的文件。一个基本的Linux根文件系统包含有以下的目录:dev、proc、bin、etc、usr、Lib、temp、var、usr等等目录。其中dev是设备文件节点目录,proc是挂载proc文件系统所用的目录,bin目录下面包含了系统的基本命令,etc目录是系统启动脚本所在的目录,Lib是系统默认的动态链接库目录,usr是用户目录,temp是临时目录,用来保存临时文 件,var目录包含系统运行时要改变的数据。以上都是根文件系统所必须的目录 2 Busybox简介 熟练嵌入式Linux的朋友对busybox一定不会陌生,它是标准Linux工具的一个单个可执行实现,被形象的称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX工具和命令 结合到一个单独的可执行程序中。虽然busybox中的这些工具相对于GNU常用工具功能有所

固态硬盘、普通硬盘、Ramdisk虚拟的硬盘性能比较

Ramdisk使用心得 其实本文也不能说的上什么使用心得,为了很快得到结果我使用了业界公认的硬盘性能评估软件ATTO Disk Benchmark对我的固态硬盘、机械硬盘、映射到磁盘空间的内存进行测试。测试环境如下: ●Windows 10 家庭中文版64-bit ●Ramdisk软件使用AMD公司的Radeon RAMDisk的免费版,创建的虚拟硬盘大小为 512MB。 ●ATTO Disk Benchmark v3.05 ATTO Disk Benchmark的测试选项为 ●使用直接I/O(Direct I/O,根据帮助文件这是不使用系统缓存或缓冲,直接读写待 测试的硬盘) ●进行队列I/O测试(Overlapped I/O) 根据帮助文件,在这两个选项同时选中的时候可获得最佳的异步传输特性(maximum asynchronous performance)的结果。 按照科学实验的做法应该在实验条件相同的前提下做多次重复实验,不过这里为了图方便并没有“多次重复”(话说ATTO Disk Benchmark得出测试结果的时候应该已经是多次重复实验后的结果了吧)。 图1是对固态硬盘测试的结果,图2是普通硬盘的测试结果,图3是由内存虚拟的硬盘的测试结果。 结论: 1.写入测试:我的固态硬盘和普通硬盘在小文件写入方面没有太大区别,都是在110MB/s 左右达到瓶颈。而内存不知道因为什么原因并没有瓶颈效应,然而在各个文件大小写入实验中内存都击败了前两者,而且在块大小为512B以上的写入测试中内存以至少一个数量级的优势击败了固态硬盘。写入测试:内存>>固态硬盘or普通硬盘 2.读取测试:普通硬盘在110MB/s左右达到瓶颈,固态硬盘在540MB/s左右达到瓶颈。 至于内存再次完胜前两者至少一个数量级。读取测试:内存>>固态硬盘>普通硬盘 此外,内存的读写总体表现都是在1GB/s以上,这是前两者望尘莫及的。 影响半导体存储器读写速率的因素非常多,除了半导体器件的制造工艺外(这里不讨论使用磁介质的普通硬盘),现代计算机的总线结构必然会为内存作出很大的优化,以保证其快速的读写性能。不过对于用户体验方面,我觉得固态硬盘的速率足够了。

在硬盘上制作根文件系统.doc

在硬盘上制作根文件系统 一、实验目标: 在硬盘上建立一个根文件系统,硬盘镜像文件的名称为:hdc-0.11.new.img 二、实验环境: 1、Vmware workation, bochs虚拟机,ultraedit编辑环境 2、用到的四个重要的镜像文件:bootimage-0.11-hd,hdc-0.1.img,并将他们放到 mylinux0.11文件夹中。 3、实验环境:redhat linux 三、实验理论依据: 1、Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括以下一些子目录和文件: etc/ 目录主要含有一些系统配置文件; dev/ 含有设备特殊文件,用于使用文件操作语句操作设备; bin/ 存放系统执行程序。例如sh、mkfs、fdisk等; usr/ 存放库函数、手册和其它一些文件; usr/bin 存放用户常用的普通命令; var/ 用于存放系统运行时可变的数据或者是日志等信息。 存放文件系统的设备就是文件系统设备。Linux 0.11内核所支持的文件系统是MINIX 1.0文件系统。 2、inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬 盘、软盘、U盘... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode 值最快的找到相对应的文件。每一个文件开头都是一个inode。 做个比喻,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。

ramdisk和initramfs文件系统制作V1.1

Ramdisk和initramfs文件系统制作 一、实验环境 操作系统:Ubuntu Linux2.6.38-8 内核源代码:Linux2.6.32 实验前准备:用Busybox制作好的rootfs文件夹(包含文件系统中的基本文件etc,lib,dev等,可以使用NFS挂载文件系统测试制作的rootfs是否能用) 二、ramdisk文件系统制作 1.重新为NAND Flash分区 在内核源码\linux-03.00.00.04\arch\arm\mach-omap2\board-am3517evm.c 中修改: static struct mtd_partition am3517evm_nand_partitions[]={ /*All the partition sizes are listed in terms of NAND block size*/ { .name="xloader-nand", .offset=0, .size=4*(SZ_128K), .mask_flags=MTD_WRITEABLE }, { .name="uboot-nand", .offset=MTDPART_OFS_APPEND, .size=15*(SZ_128K), .mask_flags=MTD_WRITEABLE }, { .name="params-nand", .offset=MTDPART_OFS_APPEND, .size=1*(SZ_128K) }, { .name="linux-nand",//存放内核 .offset=MTDPART_OFS_APPEND, .size=32*(SZ_128K) }, #if0 { .name="ubifs-nand", .size=MTDPART_SIZ_FULL, .offset=MTDPART_OFS_APPEND, }, #else//ramdisk+jffs2 { .name="ramdisk-nand",//存放制作好的ramdisk文件系统 .size=64*(SZ_128K),//8M .offset=MTDPART_OFS_APPEND, },

嵌入式Linux根文件系统制作

实训项目四-嵌入四Linux系统根文件系统制作一. 项目实施目的 了解 UP-CUP2440 型实验平台Linux 系统下根文件系统结构 掌握根文件系统的搭建过程 掌握busybox、mkcramfs等工具的使用方法 二. 项目主要任务 使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作CRAMFS 格式的根文件系统。 分析根文件系统etc目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程 三. 基本概念 1.文件系统基本概念 Linux的一个最重要特点就是它支持许多不同的文件系统。这使Linux非常灵活,能够与许多其他的操作系统共存。Linux支持的常见的文件系统有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。随着时间的推移, Linux支持的文件系统数还会增加。Linux是通过把系统支持的各种文件系统链接到一个单独的树形层次结构中,来实现对多文件系统的支持的。该树形层次结构把文件系统表示成一个整个的独立实体。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,装配目录中原有的文件才会显露出来。在Linux 文件系统中,文件用i节点来表示、目录只是包含有一组目录条目列表的简单文件,而设备可以通过特殊文件上的I/O 请求被访问。 2.常见的嵌入式文件系统 嵌入式Linux系统一般没有大容量的磁盘,多使用flash存储器,所以多采用基于Flash(NOR和NAND)的文件系统或者RAM内存的文件系统。 (1)Flash根据结构不同分为 NOR Flash和NAND Flash。基于flash的文件系统主要有: jffs2:RedHat基于jffs开发的文件系统。

图解“虚拟硬盘”永不磨损的高速硬盘Ramdisk

“虚拟硬盘”让IE浏览再提速 有没有发觉打开一个网站的同时计算机在疯狂读盘呢,有没有发觉硬盘的速度已制约了你的浏览速度…… 随着宽带的普及,上网浏览的速度已越来越快,已不是像过去那样打开一个页面要等上半天。而与此同时,网站也越做越大,越做越豪华。有没有发觉打开一个网站的同时计算机在疯狂读盘呢,有没有发觉硬盘的速度已制约了你的浏览速度。 那如何提速呢,换更快的硬盘,不,我们来玩“虚拟硬盘”,用内存来模拟硬盘,大家知道,内存的速度不知比硬盘快多少倍,让我们来看看这块超级“硬盘”的威力吧。隆重向大家介绍我们的“英雄”RamDiskXP (下载地址:https://www.doczj.com/doc/21710779.html,/soft/116/116424.html) 提供RamDiskXP V1.8.200 FOR Windows 2K/XP 的注册码 Email:wswdddy@https://www.doczj.com/doc/21710779.html, Code:6B403D051CEBDFFDA7846A6C1E243118BE938AE5D8CE241E Email:ttdown@https://www.doczj.com/doc/21710779.html, Code:68472E0E0FE1E6C9A08F6D6E5E693D1AE1918AE1DBCE271C72 一、提速原理揭秘 首先来介绍一下浏览过程吧 1. 我们的计算机向网站服务器发出请求 2. 网站服务器响应我们的请求,并把文件发给我们的计算机,这些文件包括html文件,图片文件等。 3. 我们的计算机把这些文件存在硬盘中的Temporary Internet Files文件夹中,注意这步是我们提速的关键,由于这些文件是琐碎的,硬盘要花很长的时间来处理。 4. 然后我们的浏览器读取这些文件,并把它们显示在屏幕上。 大家注意到了硬盘的速度对3,4 步的完成有至关重要的作用。RamDiskXp将在内存中模拟一个硬盘,我们只要把Temporary Internet Files文件夹移至这个虚拟的硬盘即可。是不是很简单。 二、提速过程手把手 1. 首先当然是下载安装软件了,这里就不罗嗦了,要提醒的是Win98的用户也有相应的版本,可以去https://www.doczj.com/doc/21710779.html,/product_ramdisk.cfm下载。

实验八 构建根文件系统

实验八构建根文件系统 一、实验目的 1、了解嵌入式Linux文件系统的作用和类型; 2、了解jffs2文件系统的优点和在嵌入式系统中的应用; 3、理解文件系统的挂载过程; 4、使用BusyBox制作一个根文件系统。 二、实验环境 预装redhat9.0(内核版本2.4.x)的pc机一台,XScale嵌入式实验箱一台(已构建嵌入式Linux系统),以太网线一根,交叉编译工具链,BusyBox软件包。 三、实验步骤 1、解压BusyBox软件包; 2、使用make menuconfig来配置BusyBox,修改交叉编译器前缀; Build Option [*] Build BusyBox as a static binary(no shared library) [*]Do you want to build BusyBox with a Cross ompile /usr/local/hybus-linux-R1.1/bin/arm-linux- Installation Option [*]Don't’t use /use Coreutils [*]ls

[*]cp [*]reboot [*]echo [*]mkdir [*]rm Editors [*]vi Login Utilities [*]getty 3、交叉编译BusyBox; make make install 4、建立BusyBox顶层目录结构 mkdir etc dev proc tmp lib var sys 5、在dev目录下创建必要的设备节点 (ram0,console,null,zero); mknod mdblock b 31 3 mknod console c 5 1 mknod null c 1 3 mknod zero c 1 5 cp –dpR /dev /_install/dev (假设busybox的安装目录为/_install)

SuperSpeed_Ramdisk_Plus完美利用win7 4G内存

SuperSpeed RamDisk是一款虚拟磁盘软体,支持的RamDisk磁碟机数量可以多达99个(虽然用不到),而且可以很方便的回存RamDisk中的资料,并让它开机时自动载入。之所以要使用记忆体来模拟磁盘,是因为电脑的主记忆体(内存)读写速度远远超过磁盘(硬盘)的读取速度。一般电脑的CPU再快,可能很多时候都是卡在磁盘读取速度上。所以透过RamDisk虚拟磁盘的帮助,我们可以将频繁读写资料的软体或服务放在RamDisk虚拟磁盘中,以便让这些资料读取的动作可以更快、更顺畅些。(当然,记忆体本来就是用来存取资料用的,这样做并不会伤记忆体),总结一下就是说内存的读取速度比硬盘快很多,ramdisk 可以把内存虚拟成硬盘,这样windows要把一些存入硬盘的临时文件(比如ie浏览网页的临时文件、windows 的虚拟内存)都存储在ramdisk中,加快了电脑的读取速度。 好了下面开始告诉大家如何完美利用win7 4G内存。 首先安装SuperSpeedRamDisk(链接在文章最后),然后打开软件界面点工具列的内存如图示。点未托管。 点配置。

勾选启用未托管内存的使用。 若未能自动识别内存,就取消勾选下方的两项。手动输入:第一栏,电脑安装的内存容量(MB);第二栏肯定是写0。最后点OK,出现提示:已经成功启用作业系统无法使用的那部分内存给ramdisk。点击确定就OK了

接下来将刚才配置内存时开启的视窗关掉,添加ramdisk(软体介面点工具列最左边的加号图示)。 点下一步,指定ramdisk 的内存容量。我在这里指定800M。因为我的4GB 内存只能用 2.95GB,先将作业系统无法用到的800MB(根据可用内存判断系统无法用到的内存大小再适当减小一点)指定为ramdisk,这800MB ramdisk 应该不会占用作业系统可用的内存(具体可视内存大小设置)。

qt课程设计实验报告

程序设计课程设计实验报告 (qt实验报告) 信息科学与技术学院 软件三班 高文博 201005070309 2011年5月

实验1:计算当初存入本金的钱数。(12题) 1.实验目的、要求 目的: 1)熟悉qt中的常用属性; 2)熟悉vbox hbox模型及怎样根据需求设计控件,边框等; 3)熟悉各个槽函数的使用,准确的将c++语言转换成qt语言,将控件功 能与函数结合起来。 要求: 1)掌握对控件的文本色,背景色等常用属性的设置。 2)掌握对控件、边框尺寸与结构的设置 3)掌握对函数的设置 2.实验设备 笔记本电脑,已安装Qt 开发环境。 3.实验内容、步骤 ●先在vc++上进行编译。 ●应用qt3.38进行编译,运行。 实验步骤: 1)根据题目需求在草纸上画出结构图; 2)根据草图用代码设计整体框架和控件; 3)在qt上运行; 4)运行成功后根据功能添加函数; 5)在头文件中添加头文件。 6)将添加的功能函数与功能控件相连; 7)分别对每个函数进行测试; 8)将整个程序在qt运行调试; 9)运行通过后给每个函数写注释; 实验代码如下所示 A (1)主框架结构代码 #include"gwbsave.h"

GwbSave::GwbSave(QWidget*parent,const char*name):QWidget(parent,name) { //?? vBox=new QVBoxLayout(this); vBox->setMargin(5); vBox->setSpacing(5); label=new QLabel("Please input the lilv:",this,"label"); vBox->addWidget(label); //?? hBox=new QHBoxLayout(this); hBox->setMargin(5); hBox->setSpacing(5); vBox->addLayout(hBox); le1=new QLineEdit(this,"le1"); hBox->addWidget(le1); //?,?? hBox2=new QHBoxLayout(this); hBox2->setMargin(5); hBox2->setSpacing(5); vBox->addLayout(hBox2); leResult=new QLineEdit(this,"leResult"); leResult->setReadOnly(true); leResult->setPaletteBackgroundColor(Qt::gray); hBox->addWidget(leResult);

Ubuntu for Arm根文件系统制作

1.安装rootstock软件 rootstock是一个用来制作Ubuntu根文件系统的工具,可以使用apt-get install rootstock获取,也可以在官网直接下载:https://https://www.doczj.com/doc/21710779.html,/project-rootstock 若选择前者:直接使用rootstock命令 若选择后者:解压下载文件rootstock-0.1.99.4.tar.gz得到rootstock可执行文件,可以将其拷贝到系统bin目录下 2.rootstock创建根文件系统 [html]view plaincopy 得到文件系统压缩文件qemu-armel-201408271515.tar.gz 创建一个空镜像: [html]view plaincopy 在镜像上创建文件系统: [html]view plaincopy 挂载镜像: [html]view plaincopy 将文件系统解压到挂载目录: [html]view plaincopy 这时可以修改挂载目录中的东西了: [html]view plaincopy 最后是得到最后的文件系统镜像: [html]view plaincopy

3.模拟器中运行根文件系统 下载模拟器qemu: [html]view plaincopy 在2中的“若干修改”中执行: [cpp]view plaincopy 在仿真环境中访问文件系统 [cpp]view plaincopy 此时在仿真环境下就可以安装SPICE了:[cpp]view plaincopy 安装完SPICE后保存文件系统: [cpp]view plaincopy

ramdisk根文件系统制作

制作根文件系统有两种方法 1、利用开发板提供的映像文件制作ramdisk 2、利用busybox制作根文件系统(制作过程复杂) 采用第一种方法制作需要的ramdisk 1、拷贝已有的uramdisk.image.gz 到新建的tmp/下,cp uramdisk.image.gz tmp/ 2、去掉mkimage生成的64 bytes 的文件头,生成新的ramdisk.image.gz $ dd if=uramdisk.image.gz of=ramdisk.image.gz bs=64 skip=1 3、 gunzip解压ramdisk.image.gz 生成ramdisk.image $ gunzip ramdisk.image.gz 4、新建挂载目录“ramdisk”,并将ramdisk.image挂载 $ sudo mount -o loop,rwramdisk.imageramdisk 5、接下来,只需要将ramdisk目录下的内容全部拷贝到rootfs下即可 cp -R ramdisk /* rootfs 这样就有了自己的rootfs,省去利用busybox制作的麻烦了 有了制作好的rootfs,下面就开始制作映像文件了 1、创建镜像文件ramdisk8M.image,并设置大小为8M,文件系统格式为ext2 $dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192 $mke2fs -F ramdisk8M.image -L "ramdisk" -b 1024 -m 0 $tune2fs ramdisk8M.image -i 0 $chmod 777 ramdisk8M.image 大小可以按照需要自己调整,但是最好不要超过32M,创建ramdisk目录,将ramdisk8M.image 挂载到该目录下 $mkdirramdisk $mount -o loop ramdisk8M.image ramdisk/ 接下来,只需要将rootfs目录下的内容全部拷贝到ramdisk下即可 $cp -R rootfs/* ramdisk 注意,这里cp的参数一定是R而非r。 这样,这个镜像文件的内容就是rootfs目录下的内容了。将其卸载就可, $umountramdisk/ 到此,根文件系统镜像文件ramdisk8M.image 制作完成,将其压缩 gzip -9 ramdisk8M.image 用mkimage添加文件头,生成新的uramdisk.image.gz 供u-boot 使用 $ mkimage -A arm -T ramdisk -C gzip -n Ramdisk -d ramdisk8M.image.gzuramdisk.image.gz 可以制作一个文件buildfs,如下

百灵气动AirTAC型气源处理件说明书

百灵气动AirTAC型气源处理件说明书 一.使用条件(技术参数) 气源处理件使用的系统压力,介质温度及调压范围应符合下表规定的数值: 最高使用压力 1.0Mpa(10.2kgf/㎝2) 环境及流体温度5~60 建议用油透平1号油(ISOVG32) 滤芯精度40u 调压范围0.05~0.85Mpa(0.51~8.7kgf/ ㎝2) 工作介质空气 杯防护罩1000~2000无2500~6000有 阀型带溢流型 二.安装使用 1.安装应注意清洗连接管道与接头,避免将脏物带入气路。 2.安装应注意气流方向与本体上的箭头方向一致,注意接管及牙型是否正确。 3.压力调节:将调压旋钮向上拉起,顺时针旋转,压力上升。逆时针旋转,压力下降。调整至所需压力,将调压旋钮按下呈锁紧状态. 4.水分排出:无空气压力时,水分自动排出。有空气压力时,将排水柱向上推,水分排出,排水完毕,将排水柱放开,排水柱自动弹下,排水结束。当水位超过上限时,请及时排水,否则将造成除湿不良。 5.油量调整:旋转调油旋盖,将旋盖上数字对准▲箭头方向:数字0为油量最小,9为油量最大。自9到0位置不能逆时针旋转,需顺时针旋转。 设定数字后,空气流量大,滴油量大,空气流量小,滴油量小。 (顺时针旋转针阀,滴油量减少;逆时针旋转针阀,滴油量增加。空气量调整,设定针阀后空气流量大,滴油量大,空气流量小,滴油量小。) 6.加油方法;可以不关闭空气管路而进行加油作业,逆时针旋起加油螺丝,加油时加油量不用超过杯子80%.加完油后,将加油螺丝锁紧;不可直接将油杯卸下进行加油。 三.保养 1。清洗/更换滤网:取出滤网,用空气由内向外吹,即可以重复使用。 2.透明PC杯:卸下PC杯,用干净干布擦拭即可,不可使用任何会破坏PC杯材质的化学物品来清洗。 四.使用注意事项 1.使用压力请勿超过1Mpa. 2.禁止接近或在有机溶剂环境中使用 3.给油雾器油杯中加油时,要关闭进入油雾器的压缩空气 4.其他详细资料参产品样本 五.定购代码示例 1. AC------2000-------M ↓↓↓ 型号接管口径排水方式 AC:A系列三联件1500:PT1/8 空白:差压排水式 AFC:A系列二联件2000:PT1/4 M:标准手排式

相关主题
文本预览
相关文档 最新文档