新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于linux-2.6.19内核的小型Linux系统制作移植

基于linux-2.6.19内核的小型Linux系统制作移植

作者:时间:2012-11-10来源:网络收藏

  然后,在linux-2.6.19/arch/arm/mach-s3c2410/commON-smdk.c中根据表1修改内核中的Flash分区信息。这里提醒读者,2.6.16(含)以前内核的源码中没有Flash分区信息,所以需要增加新的分区信息;而在2.6.17(含)以后内核的源码中已含Flash分区信息,需要的只是修改分区信息。

  内核Flash分区信息必须与vivi的Flash分区信息相一致。因为,vivi的Flash分区中的地址是内核及文件系统下载到Nand flash的真正地址;而内核在启动时读的却是内核Flash分区设定的地址;所以,若两者不同,则很可能导致不能正常启动内核或读取文件系统。

  最后,修改linux-2.6.19/drivers/mtd/nand/s3c2410.c,禁止Nand flash差错检测:chip->eccmode = NAND_ECC_NONE;。

  ·内核的配置编译

  在配置菜单中导入内核对smdk2410的默认配置,再在此基础上选择所需的功能。如Nand Flash及MTD设备的支持,Cramfs文件系统的支持等。

  配置完毕,在终端输入编译命令“make”进行编译。若内核源码编译成功,将在linux-2.6.19/arch/arm/boot/下生成内核映像文件zImage。

  最后,在vivi命令提示模式下使用下载命令,将内核映像zImage加载到开发板Flash中的适当地址。

  根文件系统

  中的文件和设备是通过文件系统来组织的。文件系统的存在使得数据和设备可以被有效而透明地存取访问。一个linux的最简根文件系统应该包括支持linux系统正常运行的基本内容,包括系统使用的软件和库,以及所有用来为用户提供基本支持的架构和指令。

  在根文件目录rootfs下建立bin、dev、etc、lib、proc、sbin、root、tmp等一系列必备的目录,把所需的配置文件、动态函数库放到相应的目录。采用BusyBox是缩小根文件系统的好办法。BusyBox以很小的体积集成了最常用的linux命令和应用程序,大大简化了制作linux根文件系统的过程。

  有一点必须指出的是,在2.6.12(含)之前的内核通常是用devfs来管理位于/dev下的所有块设备和字符设备;但在2.6.13(含)之后的内核已不支持devfs,而转用udev来管理/dev下的设备,详见[5]。所以,针对2.6.19内核,要使系统启动后进入BusyBox控制台,还需在/root
fs/dev下添加控制台设备文件:“[root@localhost dev]# mknod -m 600 console c 5 1”。

  目前,linux已经能够支持几十种文件系统格式,如常用的Cramfs、Jfss2、Yaffs等。Cramfs 是一种只读的闪存文件系统,可以保护系统的基本设置不被更改。根文件系统就使用Cramfs格式。

  使用Cramfs制作工具mkcramfs把根文件目录制作成映像文件:rootfs.cramfs。

  根文件系统制作完成,在vivi命令模式下把rootfs.cramfs下载到Flash的合适位置。

  至此,一个基于2.6.19内核的小型便成功地制作完毕,并移植到开发板上了。

  板子加电后便可看到系统的启动信息,最终进入BusyBox控制台。

  结语

  基于2.6内核的Linux凭借其突出的嵌入式特性与性能优越的 相结合,在嵌入式领域有着广阔的应用天地。文章介绍了如何制作一个基于Linux2.6.19内核的小型,并将其移植到开发板上。小型系统的制作与移植是进行嵌入式开发的基础,必须熟练掌握。

参考文献:
[1]. 20T datasheet http://www.dzsc.com/datasheet/20T_139814.html.


上一页 1 2 下一页

关键词: ARM9 S3C2410 Linux系统

评论


相关推荐

技术专区

关闭