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

工程实例

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值