根文件系统制作实验

嵌入式根文件系统制作一、实验目标用busybox定制一个基本的文件系统,并且运行用户编译的hello(动态链接)。

二、软件包busybox:/downloads/busybox-1.16.0.tar.bz2bash:ftp:///gnu/bash/bash-4.0.tar.gz三、实验步骤3.1、建立工作目录设定工作目录为/root/build_rootfs/,该目录主要用来编译busybox,bash等制造根文件系统的软件,下载busybox,bash到该目录;mkdir/root/build_rootfs3.2、建立根目录该目录就是我们要移植到目标板上的目录,对于嵌入式的文件系统,根目录下必要的目录包括bin,dev,etc,usr,lib,sbin,proc,sys,tmp;这里设定根目录是/root/rootfs;busybox、bash编译之后,安装到该目录下;mkdir/root/rootfsmkdir/root/rootfs/{bin,dev,etc,usr,lib,sbin,proc,sys,tmp}mkdir/root/rootfs/usr/{bin,sbin,lib}创建节点dev目录执行,创建节点(如果使用mdev设备管理工具可忽略此步骤) /root/rootfs/dev以root用户在/root/rootfs/mknod-m666null c13mknod-m600console c513.3、拷贝动态链接库交叉应用程序的开发需要用到交叉编译的链接库,交叉编译的链接库是在交叉工具链的lib目录下;我们在移植应用程序到我们的目标板的时候,需要把交叉编译的链接库也一起移植到目标板上,这里我们用到的交叉工具链的路径是/usr/local/arm/4.1.2/,所以链接库的目录是/usr/local/arm/4.1.2/arm-linux/lib。

#进入链接库目录cd/usr/local/arm/4.1.2/arm-linux/lib#编写一个shell文件,用于copy实际的共享链接库;主修订版本的符合链接;动态连接器及其符号链接到目标板根目录下的lib(/root/rootfs/lib)。

vi cp.sh#内容如下:for file in libc libcrypt libdl libm libpthread libresolv libutil libthread_dbdocp$file*.so/work/rootfs/libcp-d$file.so.*/work/rootfs/libdonecp-d ld*.so*/work/rootfs/libcp-d libstdc++.so*/work/rootfs/libcp-d libz.so*/work/rootfs/libcp-d libjpeg.so*/work/rootfs/libcp-d libgcc_s*/work/rootfs/lib#保存退出#第一个cp命令会复制实际的共享库#第二个cp命令会复制符合链接本身#第三个cp命令会复制动态连接器及其符合链接#执行刚编写的shell。

source cp.sh#这样就把链接库复制到/root/rootfs/lib目录下。

#接着我们还要缩小复制过来的链接库的体积,如下:arm-linux-strip-s/root/rootfs/lib/lib*3.4、交叉编译busyboxBosybox是一个遵循GPL v2协议的开源项目,它在编写过程总对文件大小进行优化,并考虑了系统资源有限(比如内存等)的情况,使用Busybox可以自动生成根文件系统所需的bin、sbin、usr 目录和linuxrc文件。

busybox的源码可以从/downloads/下载,这里我们下载一个1.16.0版本的源码。

我们在配置busybox的时候是基于默认配置之上来配置的;先make defconfig就是把busybox配置成默认,然后再make menuconfig来配置busybox。

说明:我们在配置一个源代码包之前,可以先阅读源码包目录下的README和INSTALL文件以make menuconfig#配置时,我们基于默认配置,再配置它为静态编译,安装时不要/usr路径,指定一个安装路径,#如下:Busybox Settings--->Build Options--->[*]Build BusyBox as a static binary(no shared libs) Installation Options--->[*]Don't use/usr(/root/rootfs)BusyBox installation prefix输入"/root/rootfs",指定安装路径为/root/rootfs#保存退出,编译安装;make&&make install#安装完成后,busybox会在安装目录上安装linuxrc文件,用户可以根据自身需要进行跟换该文件。

3.5、交叉编译bashBash是一个交互程序,其源码可以从ftp:///gnu/bash/下载;步骤如下:cd/root/build_rootfs解压源码;tar zxvf bash-4.0.tar.gzcd bash-4.0export PATH=/usr/local/arm/4.1.2/bin:$PATH(若该环境变量已经设置成功,可以忽略此步骤) ./configure--host=arm-linuxmakearm-linux-strip-s bash编译的结果得到bash程序,将其拷贝到根目录下;cp bash/root/rootfs/bin3.6、建立系统配置文件3.6.1、/root/rootfs/etc/inittab文件首先inittab文件是系统启动后所访问的第一个脚本文件,后续启动的文件都由它指定。

vi/root/rootfs/etc/inittab添加如下内容#first:run the system script file::sysinit:/etc/init.d/rcS#second:run the local script file::once:/etc/rc.local#third run the bash shell prosecc::respawn:/bin/bash#restart init process::restart:/sbin/init#umount all file system::shutdown:/bin/umount-a-r上面的这个inittab文件决定的启动流程是:1执行“/etc/init.d/rcS”脚本;2执行“/etc/rc.local”脚本;3执行“/bin/bash”交互程序,进入交换界面;3.6.2、/root/rootfs/etc/fstab文件该配置文件为目标系统所支持挂载的文件系统类型列表(可参考PC主机上的配置)vi/root/rootfs/etc/fstab添加如下内容#device mount-point type option dump fsck orderproc/proc proc defaults00none/tmp ramfs defaults00sysfs/sys sysfs defaults00mdev/dev ramfs defaults003.6.3、/root/rootfs/etc/init.d/rcS文件该配置文件主要是挂载跟配置文件系统,建立必要的设备文件或其符号连接;mkdir/root/rootfs/etc/init.dvi/root/rootfs/etc/init.d/rcS内容如下:#!/bin/shexport PATH=/sbin:/bin:/usr/sbin:/usr/binecho"----------munt all----------------"mount-a#实现对/etc/fstab文件中各文件系统的挂载echo/sbin/mdev>/proc/sys/kernel/hotplugmdev-s#使用mdev工具对设备进行动态管理MDEVmdev是busybox自带的一个简化版的udev,适合于嵌入式的应用埸合。

其具有使用简单的特点。

它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件mdev的正常使用需要创建/root/rootfs/etc/mdev.conf文件(可以为空文件,但必须存在,在/root/rootfs/etc/下执行“touch mdev.conf”指令可创建),同时MDEV会改写/dev和/sys两个目录,必须保证这两个目录存在且是可写的(一般会用到sysfs,tmpfs。

所以要重新编译内核)。

执行mdev-s:以‘-s’为参数调用位于/sbin目录写的mdev(其实是个链接,作用是传递参数给/bin目录下的busybox程序并调用它),mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为“dev”的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点文件。

一般只在启动时才执行一次“mdev-s”。

热插拔事件:由于启动时运行了命令:echo/sbin/mdev>/proc/sys/kernel/hotplug,那么当有热插拔事件产生时,内核就会调用位于/sbin目录的mdev。

这时mdev通过环境变量中的ACTION和DEVPATH,(这两个变量是系统自带的)来确定此次热插拔事件的动作以及影响了/sys中的那个目录。

接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为这个设备在/dev下创建设备节点文件。

3.6.4、etc/rc.local文件该配置文件主要是配置IP地址;vi/root/rootfs/etc/rc.local内容如下:#!/bin/sh#set ip/sbin/ifconfig lo127.0.0.1up/sbin/ifconfig eth0172.22.60.223netmask255.255.0.0up/sbin/route add default gw172.22.60.1eth03.6.5、在文件系统目录的根路径下添加.bashrc文件文件系统最后启动的是bash交换程序,进入交换界面;bash程序的启动会读取根目录下的.bashrc脚本文件;vi/root/rootfs/.bashrc.bashrc文件参考:#!/bin/bash#set envexport PATH=/bin:/sbin:/usr/binexport LD_LIBRARY_PATH=/lib:/usr/lib/usr/bin/hello&3.7、添加一个用户程序进入工作目录cd/root/build_rootfs/编辑源文件vi hello.c内容如下#include<stdio.h>main(){printf(“welcome to my rootfs\n”);}保存退出;交叉编译arm-linux-gcc hello.c-o hello复制到目标板的根目录mv hello/root/rootfs/usr/bin注意:完成添加上述的配置文件后,需要将其属性修改为可执行,利用chmod指令修改。

合集下载

实验03-内核裁减与文件系统建立

实验03-内核裁减与文件系统建立

实验三内核裁减与根文件系统建立姓名:学号:时间:地点:实验目的:熟悉内核和根文件系统的烧写,裁剪的基本操作, 熟悉根文件系统的建立实验设备:PC机,虚拟机Linux系统, 开发板实验内容:1.用超级终端烧写下载内核和文件系统到开发板.2.内核的裁剪过程的基本命令3.文件系统建立busybox的配置, 建立目录,复制文件,建立文件镜像.操作步骤:实验3-1 内核和根文件系统烧写到flash中.在widows下的F盘建立一个目录share,将虚拟机上的/arm2410cl-24/img下的内容复制到F:/share下。

操作步骤:1)在windows 下,在F盘下建立share目录2)在虚拟机(PC-Linux)VM setting->option 可以将F:/share 设置为共享目录。

3)将/arm2410cl24/img/ 复制到4)共享目录中/mnt/hgfs/share5)启动超级终端6)启动开发板,按任意键进入vivi7)察看vivi的命令[vivi] help8)输入命令bon part info ,查看分区(也可以了解其他命令的含义和使用方法)9)烧写内核内核(zImage)[vivi] load flash kernel x当出现:Ready for downloading using xmodem …Waiting…选择超级终端任务栏上“传送” ”发送文件”命令,然后选择映像文件zImage, 协议选择Xmodem,单击”发送“按钮,zImage烧写开始。

10)烧写根文件系统(root.cramfs)vivi> load flash_root x当出现:Ready for downloading using xmodem …Waiting…选择超级终端任务栏上“传送” ”发送文件”命令,然后选择映像文件root.cramfs, 协议选择Xmodem,单击”发送“按钮,root.cramfs烧写开始。

根文件系统制作

根文件系统制作

根文件系统实验一、实验目标用busybox定制一个很小的文件系统,并且运行用户编译的hello(动态链接)。

二、软件包busybox:/downloads/busybox-1.10.3.tar.bz2bash:ftp:///gnu/bash/bash-3.2.tar.gz三、实验步骤3.1、建立工作目录设定工作目录为/root/build_rootfs/,该目录主要用来编译busybox,bash等制造根文件系统的软件,下载busybox,bash到该目录;mkdir/root/build_rootfs3.2、建立根目录该目录就是我们要移植到目标板上的目录,对于嵌入式的文件系统,根目录下必要的目录包括bin,dev,etc,usr,lib,sbin,proc,sys,tmp;这里设定根目录是/root/rootfs;busybox、bash编译之后,安装到该目录下;mkdir/root/rootfsmkdir/root/rootfs/{bin,dev,etc,usr,lib,sbin,proc,sys,tmp}mkdir/root/rootfs/usr/{bin,sbin,lib}创建节点以root用户执行,创建节点mknod dev/console c51mknod dev/null c133.3、拷贝动态链接库交叉应用程序的开发需要用到交叉编译的链接库,交叉编译的链接库是在交叉工具链的lib目录下;我们在移植应用程序到我们的目标板的时候,需要把交叉编译的链接库也一起移植到目标板上,这里我们用到的交叉工具链的路径是/usr/local/arm/3.4.4/,所以链接库的目录是/usr/local/arm/3.4.4/sysroot/lib。

#进入链接库目录cd/usr/local/arm/3.4.4/sysroot/lib#编写一个shell文件,用于copy实际的共享链接库;主修订版本的符合链接;动态连接器及其符号链接到目标板根目录下的lib(/root/rootfs/lib)。

嵌入式Linux根文件系统制作

嵌入式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开发的文件系统。

特点:可读写、支持数据压缩、支持哈希表的日志型文件系统,提供了崩溃/掉电安全保护,提供“写平衡”支持等。

实验三 内核裁减与根文件系统建立

实验三 内核裁减与根文件系统建立

实验三内核裁减与根文件系统建立实验目的:熟悉内核的裁剪的基本操作, 熟悉根文件系统的建立实验设备:PC机,虚拟机Linux系统, 开发板实验内容:1.内核的裁剪过程的基本名令2.文件系统建立busybox的配置, 建立目录,复制文件,建立文件镜像.3.在虚拟机pc-linux启动tftp服务,下载内核和文件系统到开发板.操作步骤:实验3-1 内核的裁剪过程(制作开发板的linux操作系统)(1)Linux内核的获取将linux内核备份,然后裁减: # cp –arf /arm2410cl/kernel /home进入到内核目录:#cd /home /kernel/linux-2.4.18-2410cl#make clean(2) 配置内核# make menuconfig配置usb无线网卡驱动Networking –wireless-- Generic IEEE 802.11 Networking StackDevice driver--Network device support--Wireless LAN--Wireless LAN (IEEE 802.11)配置(查看)字符设备Device driver—input deviceDevice driver –character device配置(查看)文件系统File systems—(3) 建立依赖关系# make dep(4)修改Makefile文件#vi MakefileARCH :=armCROSS_COMPILE = /opt/host/armv4l/bin/armv4l-unknown-linux-(5)编译内核# make zImage (需要一些时间)(6)看编译好的linux内核zImage:# cd arch/arm/boot(7)将编译好的内核zImage 复制到共享目录/share下:cp zImage /mnt/hgfs/share设置共享目录实验3-2.建立文件系统(1)从网上下载busybox ,解压缩busybox,然后备份:#cd /home#cp –arf /arm2410cl/rootfs -c./(2)进入到busybox目录:#cd /home/rootfs/busybox-1.00-pre10# make clean# rm –rf _install(3)配置busybox的命令#make menuconfig(4)建立依赖关系# make dep(5)编译生成busybox #make(6)安装busybox,生成目录_install: # make install(7)察看_insatall目录下的内容:# cd _install#ls(8) 进入到/home/rootfs/target :#cd /home /rootfs/target(9) 查看target下的文件目录:ls(10)将bin sbin usr 三个目录删除:# rm –rf bin/ sbin/ usr/(11) 将_install 目录下的内容复制到target下:# cp –arf /home/rootfs/busybox-1.00-pre10/_install ./(12) 建立文件系统:# cd /home/rootfs# mkfs.cramfs target root.cramfs(13)将编译好的内核root.cramfs 复制到共享目录/share下:# cp root.cramfs /mnt/hgfs/share实验3-3.将新建的内核和文件系统下载到开发板(1)打开超级终端(附件-通信-超级终端。

根文件系统实验指导

根文件系统实验指导

嵌入式系统根文件系统制作主机环境一、主机环境Linux vm-dev 2.6.9-42.EL RedHatEL4, VMWare6.0.3;gcc version 3.4.6 20060404 (Red Hat 3.4.6-3) Thread model: posixgcc version 3.4.6 所需源文件: busybox-1.12.2.tar.bz2;创建文件系统二、用Busybox创建文件系统前提是:通过samba服务器把源码包 busybox-1.12.2.tar.bz2拷贝到了虚拟机的/home/uptech目录1、解压busybox-1.12.2.tar.bz2,路径为[root@vm-dev ~]cd /home[root@vm-dev home]mkdir hq[root@vm-dev home]# cd hq[root@vm-dev hq]#mkdir rootfs[root@vm-dev hq]# cd rootfs[root@vm-dev rootfs]#cp /home/uptech/busybox-1.12.0.tar.bz2 . -arf[root@vm-dev rootfs]# lsbusybox-1.12.0.tar.bz2[root@vm-dev rootfs]# tar -vxjf busybox-1.12.2.tar.bz2[root@vm-dev rootfs]# cd busybox-1.12.2[root@vm-dev busybox-1.12.2]# pwd/home/hq/rootfs/busybox-1.12.2[root@vm-dev busybox-1.12.2]# vi Makefile[root@vm-dev busybox-1.12.2]#修改Makefile中的ARCH和CROSS_COMPILE与本机的路径一致:CROSS_COMPILE ?= arm-linux-...ARCH ?= arm2、编译busybox。

ramdisk根文件系统制作

ramdisk根文件系统制作

制作ramdisk类型文件系统ramdisk也就是内存盘的意思。

所谓的RAM驱动器,实际上是把系统内存划出頒分当做硬盘使用。

对于操作系统来讲内存的存取速度远远大于机械磁盘,所以RAM驱动器肯定要比机械的硬盘快得多。

你可以把整个应用程序都安装在ramdisk的驱动器中,然后用内存的速度运行它。

使用RAM驱动器技术对于延长笔记本电脑电池使用时间也是十分有利的,因为这样做可以减少访问〃耗电大户”的次飢Ram:内存,Disk :磁盘,在Linux中可以将一部份内存当做分区来使用,称之为Ramdisk。

对于一些时常被访问、并且不会被更改的文件,可以将它们通过Ramdisk 放在内存中,能够明显地提高系统性能。

Ramdisk工作于虚拟文件系统(VFS )层,不能格式化,但可以创建多个Ramdisk。

虽然现在硬盘价钱越来越便宜,但对于一些我们想让其访问速度很高的情况下,Ramdisk还是很好用的。

如果对计算速度要求很高,可以通过增加内存来实现,使用ramdisk技术。

一个A Ramdisk 就是把内存假设为一个硬盘驱动器,并且在它的上面存储文件,假设有几个文件要频繁的使用,如果将它们加到内存之中,程序运行速度会大幅度提高,因为内存的读写速度远高于硬盘。

划出部份内存提高整体性能,不亚于更换新的CPU。

像Web服务器这样的计算机,需要大量读取和交换特定的文件。

因此,在Web服务器上建立Ramdisk会大大提高网络读取速度。

从制作Ramdisk根文件系统的方法上来说,是很简单的。

1 .配置Linux内核支拮Ramdisk类型的文件系统。

2.制作好根文件系统,使用之前实验案例制作好的根文件系统。

3.将制作好的根文件系统制作成Ramdisk类型文件系统。

4.下载到TPAD上使用测试。

实现1 .对内核进行配置,使得内核能够支持Ramdisk类型的文件系统,如图・9 ,图・10 ,图•11。

$ cd /home/tarena/workdir/tools/linux-2.6.35.7$ make menuconfig$ make zlmage$ cp arch/arm/boot/zlmage /tftpboot图・9S-10config • Linux Kernel V2.6.35.7 ConfigurationArrow keys navigate the nenu. <Enter> selects submenus Highlighted letters are hotkeys. Pressing <Y> includes9 <N> excludes, <M> nodulartzes features. Press <Esc><Esc> to exit, <?> for Help.</> for Search. Legend: [w] built-in [ ] excluded <M> module < ><w> M nory Technology Device <HTD) support <xarelLeL uoiLt s|[w] BLock devicesI■j HI>c uevxce><> ATA/ATAPI/MFM/RLL support (DEPRECATED)CSI device support -•<> serial ATA and Parallel ,] M IttpXe devices driver ♦] N twork device support]ISDN support > ATA drivers —> support (RAID and LVM)Select Exit > < Help >图・11config - Ltn ConArrow keys navigate the nenu. <Enter> selects subnenus --->• Highlighted letters are hotkeys.Pressing <Y> includes f <N> excludes, <M> nodulartzes features. Press <Esc><Esc> to exit. <?> for Help. <f> for Search. Legend: [*] built-in [ ] excluded <M> module < >•・・ DRBD disabled because PROOFS f INET or CONNECTOR not se < > N twork block device support<*^^^A^DiocKaevlcesup^rt (16) default number of RAM disks2.制作Ramdisk文件系统的过程,如图・12 ,图・13 ,图・14 ,图・15 ,图・16所$ cd /home/tarena/workdir/tools/busybox-1.19.4/_lnstall/dev$ sudo mknod console c 5 1$ sudo mknod null c 1 3$ cd /home/tarena/workdir/tools/busybox-1.19.4$ dd if=/dev/zero of=initrd.img bs=lk count=8192$ sudo mkfs.ext2 -F initrd.img$ sudo mkdir /mnt/initrd$ sudo mount -t ext2 -o loop initrd.img /mnt/initrd$ sudo cp Jnstall/* /mnt/initrd -a$ sudo amount /mnt/initrd$ gzip -best -c initrd.img > ramdisk.img$ sudo chmod 777 ramdisk.img$ cp ramdisk.img /tftpboot图・12consoke^tQQls libbb ______ util^ltnux记県丫8192♦。

上海第二工业大学实验五_使用BusyBox构建根文件系统

实验五使用BusyBox构建根文件系统Busybox 是Debian GNU/Linux 的大名鼎鼎的Bruce Perens 首先开发,使用在Debian 的安装程序中。

后来又有许多Debian developers 贡献力量,这其中尤推busybox 目前的维护者Erik Andersen,他患有癌症,可是却是一名优秀的自由软件开发者。

Busybox 编译出一个单个的独立执行程序,就叫做busybox。

但是它可以根据配置,执行ash shell 的功能,以及几十个各种小应用程序的功能。

这其中包括有一个迷你的vi 编辑器,系统不可或缺的/sbin/init 程序,以及其他诸如sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat ... 等等这些都是一个正常的系统上必不可少的,但是如果我们把这些程序的原件拿过来的话,它们的体积加在一起,让人吃不消。

可是busybox 有全部的这么多功能,大小也不过100K 左右。

而且,用户还可以根据自己的需要,决定到底要在busybox 中编译进哪几个应用程序的功能。

这样的话,busybox 的体积就可以进一步缩小了。

BusyBox支持多种体系结构,它可以静态或动态链接glic或者uclibc库,以满足不同的需要,也可以修改BusyBox默认的编译配置以移除不想使用的命令的支持。

5.1编译BusyBox从网上下载BusyBox软件包,这里下载的是busybox-1.00-pre5.tar.gz.bz2。

首先把它放在/root/tars目录下并进行解压缩。

发busybox时为了调试而使用的。

图5-1是BusyBox的配置界面。

图5-1 配置BusyBox的主界面在Build Option菜单下,可以选择静态库编译方式,设置如下:[*] Build BusyBox as a static binary (no shared libs)[*] Do you want to build BusyBox with a Cross Compiler?(/usr/local/hybus-arm-linux-R1.1/bin/arm-linux-)图5-2 配置BusyBox交叉编译选项图5-3 文件系统安装路径图5-4 选择编译命令保存后,编译BusyBox。

实验九根文件系统构建实验2017年1107

实验九根文件系统构建实验一、实验目的1)了解嵌入式操作系统中文件系统的类型和作用。

2)了解yaffs2文件系统的优点及其在嵌入式系统中的作用。

3)掌握利用BusyBox 软件制作嵌入式文件系统的方法。

4)掌握嵌入式Linux 文件系统的的挂载过程。

二、实验工具1)操作系统:ubantu102)交叉编译工具:3)文件系统制作工具:busybox-1.17.2-20101120.tgz4)文件系统镜像制作工具:mkyaffs2image-128M三、实验要求利用BusyBox 构建简单的根文件系统,并将其制作成为yaffs 格式的文件系统镜像,并下载到A8实验板,要求如下:1)kernel能够成功挂载根文件系统,2)通过串口终端查看所建立的根目录,3)在自己建立的根文件系统中运行简单的“hello world”程序。

四、实验讲解文件系统是操作系统中组织、存储和命名文件的一种基本结构,是操作系统中统一管理信息资源的一种方式,可以管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,方便用户使用。

它的存储媒质包括磁盘、光盘、FLASH等,FAT(文件分配表)是最常用的一种文件系统格式,主要优点是可以允许多种操作系统访问。

Linux的一个最重要特点就是它能同时支持多种文件系统。

在加载根文件系统之后可以自动或手动挂载其他的文件系统。

因此,一个系统中可以同时存在多个不同的文件系统。

这使Linux非常灵活,能够与许多其他的操作系统共存。

Linux支持的常见的文件系统有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。

随着时间的推移,Linux支持的文件系统数还会增加。

每台机器都有根文件系统,它包含系统引导和使其他文件系统得以mount(挂载)所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。

试验8:根文件系统的制作

4、了解busybox、mkfs.jffs2工具
二、实验设备(环境)及要求
硬件:PC机;PXA270试验箱
软件:PC机操作系统linux
三、实验内容与步骤
使用busybox生成文件系统中的命令部分,使用mkfs.jffs2工具制作文件系统,并完成将文件系统放置到开发板的烧写工作。
实验步骤参照配套的实验指导书和“嵌入式系统根文件系统制作.doc”。
四、实验结果与数据处理
五、思考:绩
《嵌入式系统软件设计》实验报告
实验序号:08实验项目名称:根文件系统的制作
学 号
1307142225
姓 名
林燕萍
专业、班
13软工2
实验地点
1/318
指导教师
谢荣生
实验时间
2016-12-8
一、实验目的
1、了解UP-TECHPXA270-S板的文件系统结构
2、了解文件系统的生成过程
3、完成一个简单的文件系统生成步骤

通过busybox制作根文件系统详细过程

通过busybox制作根⽂件系统详细过程我在之前的中也有实现过根⽂件系统的制作,那只是在ubuntu官⽹已经做好的根⽂件基础上安装⼀些⾃⼰所需的软解⽽已。

⽽使⽤busybox 制作根⽂件系统可以⾃定义选项,加深⾃⼰对linux的系统理解,⽅便后期学习根⽂件系统的裁剪。

⼀、下载busybox制作制作⼯具⼆、编译链配置将下载的⽂件放⼊linux开发环境中进⾏解压,⽬录如下图所⽰为了以后使⽤⽅便,修改交叉⼯具链,进⼊“Makefile”⽂件sudo vim Makefile进⼊⽂件后修改“ARCH”和“CROSS_COMPILE”变量,如下图所⽰:注意:交叉编译链⼀定要是⾃⼰安装的全路径三、busybox中⽂⽀持1.修改“printable_string.c”⽂件sudo vim libbb/printable_string.c进⼊⽂件后修改内容如下图所⽰:2.修改“unicode.c”⽂件sudo vim libbb/unicode.c进⼊⽂件后修改内容如下图所⽰:四、配置busybox1.设置配置项defconfig:缺项配置,也就是默认配置选项。

allyesconfig:全选配置,也就是说选中busybox的所有功能。

allnoconfig:最⼩配置。

可以根据⾃⼰需要选择配置命令,这⾥我选⽤的是最下配置命令如下sudo make defconfig配置完成后可通过查看是否有.config⽂件,如果存在则说明配置成功,如下图所⽰:2.进⼊图形配置sudo make menuconfig进⼊图形配置界⾯后,配置库⽂件来源,配置路径如下所⽰-> Settings-> Build static binary使⽤静态库时,编译出来的⽂件很⼤,然后编译出来的DNS会出问题,所以我这⾥选⽤的是动态库,配置如下图所⽰:勾选“vi-style line editing commands”,配置路径如下-> Settings-> vi-style line editing commands取消“Simplified modutils”的勾选,配置路径如下-> Linux Module Utilities-> Simplified modutils勾选“mdev”,配置路径如下-> Linux System Utilities-> mdev如下图所⽰:勾选“Support Unicode”及其⼦选项“Check $LC_ALL, $LC_CTYPE and $LANG environment variables”-> Settings-> Support Unicode-> Check $LC_ALL, $LC_CTYPE and $LANG environment variables到此busybox的配置基本完成,如果需要其他配置项的内容可根据⾃⼰的需求选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档