在内核中增加对yaffs文件系统的支持

自己最近在搞一些内核以及根文件系统的移植,就涉及到了需要在内核中增加对yaffs文件系统的支持。在网上找了一些文档后,自己将具体的操作过程做了一个总结,方便以后查询使用:

1、获取yaffs源码

YAFFS2的最新源码地址吧,2011年6月28号的那个版本,

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /pub/2011/06/28/YAFFS2/

这个是目前最新的YAFFS2的源码了

参考文章:http://www.linuxidc.com/Linux/2011-08/39661.htm

2、解压yaffs2压缩文件

然后将其解压缩到某个位置,例如/opt/中。

tar –zxvf yaffs2.tar.gz –C /opt/

3、拷贝相应的文件

具体操作如下所示:

在内核源代码中的fs目录下创建一个名为yaffs2的目录作为yaffs2文件系统的目录。

将yaffs2目录中所有与支持yaffs文件系统相关的文件都复制到/linux-2.6.30.4/fs/yaffs2/中。

命令及步骤如下:

cp /opt/yaffs2/*.h  /linux-2.6.30.4/fs/yaffs2/

  cp /opt/yaffs2/*.c  /linux-2.6.30.4/fs/yaffs2/

  cp /opt/yaffs2/Makefile.kernel  /linux-2.6.30.4/fs/yaffs2/Makefile

  cp /opt/yaffs2/Kconfig  /linux-2.6.30.4/fs/yaffs2/Kconfig

4、修改内核的相关文件

具体操作如下所示:

修改linux-2.6.30.4/fs/Kconfig.

在文件中的source “fs/ext4/kconfig”的一行下面添加类似的一行内容:

source “fs/yaffs2/kconfig”

修改linux-2.6.30.4/fs/Makefile

在文件中的obj-$(CONFIG_EXT4_FS) += ext4/这一行下面增加类似的一行:

obj-$(CONFIG_YAFFS_FS) += yaffs2/

5、编译内核镜像

此时在执行make menuconfig时就可以在filesystem选项中的ext4下面找到yaffs2的选项。

注意将yaffs2的选项选上并标记为“*”使之与内核编译为一体。

make zImage 执行之后,将生成一个支持yaffs文件系统的arm平台的内核镜像。

时间: 2024-10-12 19:30:35

在内核中增加对yaffs文件系统的支持的相关文章

【转】Linux驱动模块编译进内核中

原文网址:http://blog.chinaunix.net/uid-29287950-id-4573481.html BQ27501驱动编译进内核 一.       驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录: 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项: 3. 在目录的 Makefile 文件中增加对新源代码的编译条目. bq27501驱动编译到内核中具体步骤如下:

linux 驱动学习笔记02--应用实例:在内核中新增驱动代码目录和子目录

下面来看一个综合实例,假设我们要在内核源代码 drivers 目录下为 ARM 体系结构新增如下用于 test driver 的树型目录:| --test  | -- cpu  | -- cpu.c  | -- test.c  | -- test_client.c  | -- test_ioctl.c  | -- test_proc.c  | -- test_queue.c在内核中增加目录和子目录,我们需为相应的新增目录创建 Makefile 和 Kconfig 文件,而新增目录的父目录中的 K

在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world

一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 ? 二.实验环境 物理主机:win7 64bit, i5双核,8G内存 虚拟机:Vmware Workstation 10.0.2 虚拟主机: CentOs-5.11,内核2.6.18 ? 三.实验思路 在着手解决问题之前,我在网上查阅了一些资料,大多是关于模块的介绍.linux内核采用的是模块化编程,这样可以很容易的添加或

Linux之内核中的文件系统

文件描述符 一般说起文件和文件系统的时候,都会下意识的想到它们存在于磁盘上.然而,磁盘只能被动的存储,却不能主动去处理文件:要处理文件,只能把它们的数据复制到内存中,交给CPU处理,处理好的数据先写入内存,再传回到磁盘.那么,操作系统如何在内存中管理各种文件呢?即运行时文件系统在内核中的表示. 我们知道,进程是操作系统分配资源的基本单位,文件也是在进程中被处理的.比如用vim写代码,那么vim这个程序就成为操作系统中的一个进程,vim处理的对象就是一个代码文件.操作系统用PCB来管理进程,PCB

【总结】嵌入式linux内核中Makefile、Kconfig、.config的关系及增加开机Hello World【转】

本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/73772109 为了弄清内核的组织结构,我们先来实现下面这个简单的例子. 一.增加内核启动Hello World 任务: 内核启动的时候加载Hello驱动,并打印出Hello World 步骤: (1)在drivers目录下新建hello文件夹,在里面实现相应的hello.c.Makefile.Kconfig (2)修改上一级(Linux-3.4.2/drivers下)的Make

FreeBSD 内核中的SYSINIT分析【转】

FreeBSD?kernel是一个膨大的系统,?对于这样一个大系统,?里面往往包含了大量的子系统和??模块,当系统初始化时这些模块就需要初始化,?按照通常的思路,这些初始化过程必须在某处??被显式地调用,这样一来,当你新增某个模块,你必须再修改那个系统初始化的地方来调用这??个新增模块的初始化过程,?而且由于ANSI?C语言的限制,调用某个函数最好先声明,这样当系??统的初始化过程开始增加时,?那个调用初始化过程的文件开始大量包含那些本来不相关的头??文件,?偶合度就增加了,?这是一种不好的设计

Unix内核中打开文件的表示

Unix内核中已经打开文件,通过三种数据结构表示: 每个进程的进程表中的记录项,包含打开的文件的文件描述符表,与之关联的是: 文件描述符标识 指向一个文件表项的指针 内核为所有打开文件维持一张文件表,每个文件表项代表一个打开文件,包含: 文件状态标识(读.写.添加.同步.非阻塞等 当前文件偏移量 指向该文件v节点表项的指针 3. 每个打开文件都有且只有一个V节点(v-node)结构 文件类型 对此文件进行各种操作的函数的指针 (大多数文件)该文件的i节点(i-node,索引节点) 一个打开的文件

Linux内核中kzalloc函数详解

***************************************************************************************************************************作者:EasyWave                                                                                 时间:2013.02.06 类别:Linux 内核驱动源码分析    

Linux内核源代码情景分析-设备文件系统devfs

我们以前多次讲过到,以主设备号/次设备号为基础的设备文件管理方式是有根本性的缺点的.这种从Unix早期一直沿用下来的方案一方面给设备号的管理带来了麻烦,一方面也破坏了/dev目录结构.Unix/Linux系统中的所有目录的结构都是层次的,惟独/dev目录是"平面"的.这不光是风格的问题,也直接影响着访问的效率和管理的方便与否. 那么理想中的/dev目录应该是什么样的呢?首先,它应该是层次的.树状的.其次,它的规模应该是可伸缩的,而且不受数量的限制(例如256个主设备号).还有,/dev