[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没有挂载上...大哭

相关文章推荐

[Linux驱动开发] 根文件系统制作

根文件系统制作 1下载busybox Busybox下载地址:http://www.busybox.net/   2 解压 配置 编译busybox  解压 terry@terry-v...

[Linux驱动开发] mini2440开发板u-bbot移植

在下载的uboot源码中并没有对mini2440开发板的支持,需要做相应的移植 1、下载u-boot源码:u-boot-2008.10.tar 2、解压源码 3、选择移植参考开发板 3.1、首...

Linux驱动开发、19-I2C子系统之客户驱动分析与移植

I2C子系统_设备驱动移植     用户程序通过I2C设备驱动程序访问步骤是这样的...   用户的操作函数---/sys/bus/i2c/devices/....->设备驱动的操作函数--...

Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析

一、VFS 虚拟文件系统基础概念         Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File S...

内核移植和文件系统制作(3)Ramdisk简介和常见问题

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

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

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

ramdisk文件系统制作和移植

RAMDISK简介: Linux 中,rootfs 是必不可少的。PC 上主要实现有ramdisk和直接挂载 HD(Harddisk,硬盘)上的根文件系统;嵌入式中一般不从 HD 启动,而是...
  • sonbai
  • sonbai
  • 2013年04月25日 14:40
  • 5980

《Linux4.0设备驱动开发详解》笔记--第五章:Linux文件系统与设备文件

5.1 Linux文件操作5.1.1 文件操作系统调用 创建 int create(const char *filename, mode_t mode); mode是存取权限,它同umask(在文件...

Linux下Ramdisk根文件系统制作过程解析(转载)

本文讲述了Linux下Ramdisk根文件系统制作过程。     一、在一个已建好的文件系统上进行修改       设已建立好的文件系统压缩文件为ramdisk.gz       1、解压 ...
  • cgx09
  • cgx09
  • 2013年09月01日 23:00
  • 983

嵌入式Linux教程根文件系统Ramdisk的制作过程

ramdisk是一个最小的linux rootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,包含如下目录:bin,dev,etc,home,lib,mnt,proc,sbi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Linux驱动开发] ramdisk文件系统制作及移植
举报原因:
原因补充:

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