[Linux驱动开发] ramdisk文件系统制作及移植

原创 2012年03月22日 18:43:28

工程实例

1、重新规划FLASH分区如下:

    

2重新修改内核

    根据“nand flash的布局图,修改内核nandflash分区请修改内核源代码的vi arch/arm/ plat-s3c24xx/common-smdk.c

   

    重新编译内核,后续用新的内核做实验

    $ cp arch/arm/boot/uImage /tftpboot/uImage -f

3烧录内核
    OpenJTAG> tftp 30800000 uImage       (通过tftp协议将/tftpboot中的uImage下载到内存的3080000)

    OpenJTAG> nand erase 60000 200000    (Nand Flash0x60000处开始擦出一块大小为200000(2MB)的空间准备放kernel)

    OpenJTAG> nand write 30800000 60000 200000   (uImage烧录到Nand Flash0x60000)

    OpenJTAG> setenv bootcmd nand read 30800000 60000 200000 \;bootm 30800000   (设置u_boot环境参数)

    OpenJTAG> save

   

    

4重新整理根文件系统:
 $  cd /opt/rootfs
 $  cp -a etc etc_defaults       (etc_defaults做为以后恢复出厂设置的缺省配置信息)  
 $  mkdir ../prepare
 $  cp -a data etc ../prepare    (拷贝data、etc目录以备做成 .jffs2 的文件系统)
 在../prepare/data 目录里面放一些文件文件或者其他数据文件(模拟实际产品中生成的用户数据,但rootfs/data目录我们只是用来挂载的目录,里面不要放数据)
 $  cd ../prepare
 $  mkfs.jffs2 -r ./data -o mydata.jffs2 -e 0x20000 -n  (注意: -e 0x20000: 表示擦除FLASH的扇区大小为128KB[这个参数一定要参考NAND FLASH芯片手册],我们这里参考的是K9F2G08U0B手册)
 $  mkfs.jffs2 -r ./etc -o myetc.jffs2 -e 0x20000 -n 
 $  cp mydata.jffs2 myetc.jffs2 /tftpboot

 在/opt/rootfs/etc/rc.d/rc.local中添加data,etc的挂载命令如下:
 

 重新进到rootfs的上一级目录,重新制作根文件系统(CRAMFS格式)
 $  cd /opt
 $  mkfs.cramfs rootfs myrootfs.cramfs
 $  cp myrootfs.cramfs /tftpboot


 重新在UBOOT中烧录根文件系统并烧录data,etc分区

 烧录根文件系统(myrootfs.cramfs)

 OpenJTAG> tftp 30100000 myrootfs.cramfs

 OpenJTAG> nand erase 260000 800000
 OpenJTAG> nand write.cramfs 30100000 260000 400000

 


 烧录ETC分区:

 OpenJTAG> tftp 30500000 myetc.jffs2
 OpenJTAG> nand erase a60000 100000

 OpenJTAG> nand write 30500000 b60000 20000

 
 
 烧录data分区:

 OpenJTAG> tftp 30600000 mydata.jffs2
 OpenJTAG> nand erase b60000 4a0000
 OpenJTAG> nand write.jffs2 30600000 b60000 20000
 


 再次确认一下uboot的参数:  

 
 

 重新启动开发板,正常情况下,系统就登录进去了,通过df命令可看到,系统按照我们的分区进行挂载了 

 
 很遗憾,一直没有得到预期的结果

 就是我们自己构建的两个文件系统myetc.jffs2mydata.jffs2没有挂载上...大哭

制作Ramdisk文件系统

主机:ubuntu14.04 工具链:arm-none-linux-gnueabi-4.8.3 one_step: 配置内核: #make menuconfig ARCH=arm 打开配置菜单,修改两...
  • u014213012
  • u014213012
  • 2016年06月04日 08:54
  • 2400

ramdisk文件系统的介绍与制作

一、文件系统与根文件系统     1、文件系统         文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)分区上的文件的存储方法和数据结构,即在存储设备...
  • silent123go
  • silent123go
  • 2016年09月23日 20:21
  • 2745

内核移植和文件系统制作(4):UBIFS根文件系统制作总结

UBIFS  无排序区块图像文件系统(UnsortedBlock Image File System, UBIFS)是用于固态硬盘存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一...
  • u013236359
  • u013236359
  • 2014年08月22日 20:47
  • 1321

LINUX移植——根文件系统制作(一)

上一篇文章当中,说了说怎样搭建nfs服务器的过程,这也是制作根文件系统前必须的准备工作,当然也可以用其他方法,但从调试的角度来说,还是nfs最适合了。这篇文章咱们正式开始制作根文件系统,主要内容如下:...
  • xie0812
  • xie0812
  • 2013年09月08日 13:22
  • 1990

创建嵌入式linux混合文件系统(ramdisk+jffs2)

1、 Ramdisk文件系统 Ramdisk就是将内存中的一块区域作为物理磁盘来使用的一种技术,内存盘的存取速度要远快于目前的物理硬盘,所以它具有读写速度高的优势。在嵌入式设备中,我们可以把Ramdi...
  • u013305541
  • u013305541
  • 2014年01月01日 14:33
  • 2365

ramdisk制作过程记录

一. ramdisk.gz.uboot自作过程: 1. 创建一个loop目录,作为挂载点: mkdir loop 2. 获取一个10M的镜像,count会在kernel配置中使用: dd if=/d...
  • dean_gdp
  • dean_gdp
  • 2016年06月19日 17:42
  • 939

ramdisk文件系统的制作以及移植

ramdisk是一种基于内存的虚拟文件系统(并非一个实际的文件系统),它将一部分固定大小(这个大小在编译内核的make menuconfig时配置)的内存当作硬盘一个分区来使用。ramdisk是一种将...
  • u010979030
  • u010979030
  • 2013年10月26日 20:39
  • 1250

RAMDISK块设备驱动程序

from: http://blog.163.com/hjw_vc/blog/static/1148310352009104952466/ ram、loop、网络设备等驱动通常使用自己编写的m...
  • damotiansheng
  • damotiansheng
  • 2015年03月31日 13:58
  • 1026

文件系统Ramdisk制作

1    dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 参数注释: Ø  if=文件名:输入文件名,缺省为标准输入。即指定源文件。 Ø  of=文件名:输出...
  • fzs333
  • fzs333
  • 2016年02月23日 15:28
  • 561

Ramdisk文件系统的制作与调试运行

开发环境:Fedora 9 交叉编译工具链:arm-linux-gcc 4.3.2 with EABI 嵌入式Linux内核版本:2.6.29.4-FriendlyARM。昨天写贴子的时候具体记不...
  • yimiyangguang1314
  • yimiyangguang1314
  • 2013年01月11日 11:53
  • 3164
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Linux驱动开发] ramdisk文件系统制作及移植
举报原因:
原因补充:

(最多只允许输入30个字)