基于S3C2410的嵌入式Linux系统构建
(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嵌入式开发应用领域的门槛,进一步推进嵌入式软硬件开发的进程。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论