基于S3C2410的嵌入式Linux系统构建
| #去除对ext2的支持 Pseudo filesystems一一 > /proc file system support Virtual memory file system support(former shm fs) /dev file system support(OBSOLETE) Automatically mount at boot(NEW) 这里会看到前面修改fs/Kconfig的结果,devfs已经被支持。 Miscellaneous filesystems一—— > #选择YAFFS2根文件系统 <*>YAFFS2 file system support ——————51 2 byte/page devices Lets Yaffs do its own ECC [ ]Use the same ecc byte order as Steven Hill‘S nand-ecc.C 一一一2048 byte (or larger)/page devices Autoselect yaffs2 format Disable lazy loading (1 0)Reserved blocks for checkpointing Turn off wide tnodes []Force chunk erase check []Cache short names in RAM Network File Systems——-〉 <*〉NFS file system support (3)执行make bzlmage,成功编译后将在arch/arm/boot/下生成需要的文件zImage。 (4)在vivi提示符下,输入"load flash kernel x"命令通过串口下载内核映像到NAND FLASH的KERNEL分区中。 2.3 文件系统 Linux采用文件系统组织系统中的文件和设备,为设备和用户程序提供统一接口。他支持CRAMFS,JFFS2.RAMDISK等多种文件系统。本系统使用可读写的YAFFS2根文件系统。 2.3.1 YAFFS2文件系统简介 YAFFS2是YAFFS(Yet Another FLASH File Sys tem)的升级版,能更好地支持NAND FLASH,是一种类似于JFFS的专门为FLASH设计的嵌入式文件系统。与JFFS相比,他减少了一些功能,因此速度更快、占用内存更少。NAND FLASH大多采用MTD+YAFFS的模式,通过YAFFS文件系统,可以像操作硬盘上的文件一样操作FLASH中的数据,在系统断电后数据仍然存储在FLASH芯片中. 2.3.2 根文件制作 (1)建立根文件系统目录root,在root目录下建讧子日录bin,sbin,dev,etc,proc,lib,user; /bin:保存大多数如init.busybox,shell.文件管理实用程序等二进制文件; /sbin:保存系统启动过程通常需要的命令; /dev:包含用在设备中的所有没备节点; /etc:包含系统的所有配置文件; /proc:这是一个必须设置的特殊目录,在系统运行之后他下面有许多内容,在某些情况下,可以通过他进行系统设置,许多工具能从这里获得信息。在编译内核时要选择文件系统proc的支持; /lib:包含所有必要的库; /user:存放用户程序。 (2)编译busybox.busyh。x足一个著名的开源软件.他以极小型的应用程序集成了一百多个最常用的Linux命令,闪此享有"嵌入式Linux的瑞士军刀"的美臀。首先,从网上下载busybox源码.该系统使用的是1.1.3版本;其次,执行nlakemenuconfig命令.根据实际需求进行功能配置,该系统将busybox编详为静态连接;最后:执行FIlakc a11 install进行编译、安装;编译器为:ARM-Linux-GCC一3.4.1,安装路径与上述root为同一路径。这样在root目录下将有脚本Linuxrc.在/bin,/sbin日录下将订busvbox提供的指向busybox的符号连接命令集。 (3)编写启动脚本:一般系统启动时都会按要求执行相应的初始化操作。写住命令仃的init=/Liunxrc·这个Linuxrc足指向/etc/init.d/rcS文件的一个符号连接。在rcs文件中列出了 Linux仞始化要执行的文件.例如.初始化进程init、挂载根系统、挂载模块化设备驱动等。rcs的作用相当于windoWS中的autocxec.bat文什,由于对于不同的应用rcS的内容变化很大,因此应根据实际需要编写rcS的内容。 (4)制作YAFFs2映象:利用实用程序nlkyaffsinlage(mkvaffmage与root 目录在同一路径下)制作YAFFS2映像root.img命令为: #./inkyaffsimage root root. Inlgroot.img就是所需要的YAFFS2文件系统; (5)文件系统映像下载:在vivi提示符下,执仃"loadyaffs root x"选择root.inlg将文件通过串口下载到NAND FLASH的root分区中.然后复化或重启开发板,就可以启动Linux系统。 3 结 语 通过对嵌入式系统ARNI平台的构建,分析bootloadervivj的功能.阐述了Linux内核的移植,同时也解释r制作YAFFS2文件系统的步骤和方法.意在给嵌入式系统平台的搭建有个整体的把握和认识,以降低进入ARM嵌入式开发应用领域的门槛,进一步推进嵌入式软硬件开发的进程。 |
