Chinaunix首页 | 论坛 | 博客

分类: LINUX

2011-02-16 21:18:45

                      制作根文件系统一种简易有效的方法
                                                   ----author:AnSon
工作环境: ubuntu-10.04(虚拟机7.13)
目标平台:龙芯3210开发板
Busybox版本:busybox1.1.0
开发包内核源码目录:/home/linux_3210
开发包内核版本:2.6.18.1
交叉编译工具:gcc-3.4.6
 
目的:根据系统开发的需要,定制一套完善的根文件系统。
 
本质:根本资源来源是busybox源代码,当需要制作不同的文件系统时,就需要不同的文件系统打包工具
    如:
        mkfs.cramfs  -r  ramdisk -o  ramdisk-cramfs.img
 
        mkfs.yaffs   -r  ramdisk -o  ramdisk-yaffs.img
 
        mkfs.jffs2   -r  ramdisk -o  ramdisk-jffs.img
 
        其中 mkfs.jffs2是打包工具  ramdisk是需要被打包的资源来源,
 
             ramdisk-jffs.img是需要被打包成的文件系统镜像文件,其他类推。
步骤如下:
 
一:编译 busybox1.1.0
 
     其中在 make menuconfig 中 选择一个你当前环境下用到的交叉编译器,同时在其中菜单选择系统
 
    开发需要的命令、服务等工具;
 
     其次:make  clean  all
 
     再次:make install
二:

   1)把linux内核中的 Ramdisk 文件夹拷贝出来
   
   2)把在busybox中的_install文件夹的文件全部拷贝到刚才所提到的 Ramdisk 文件夹中,覆盖原来中的
 
      文件
  
三:利用文件系统制作工具制作相应的文件系统
 
        mkfs.jffs2 -l -r ramdisk -o ramdisk-jffs.img -e 0x20000 --pad=0x4000000  -n
   详解:
       -l :小端模式
 
       -r :路径来源
 
       -o :生成输出
 
       -e :是erasesize 即擦除块的大小 1 blocksize = 2k(pasesize) x 64 (pages)=128k (0x20000)
 
    --pad :生成目标文件的大小,不够就以0XFF填充,此大小必须要与mtd 中所制作的
 
            文件系统对应的分区大小一致,否则就会产生 flash没有erase彻底,从而出现提示一些错误
信息
 
       -n :除掉一些错误信息提示
 

 四. 设置内核启动参数
 
  set append  'root=/dev/mtdblock1 rw rootfstype=jffs2 console=ttyS0,115200 nordinit init=/linuxrc display=vga1024x768 '
 
  烧写到 MTD 第一个分区 ,而MTD第零个分区是内核
 
  devcp tftp://192.168.1.100/ramdisk-jjfs.img  /dev/mtd1
 
  其中mtd1 对应  /dev/mtdblock1 的

 五 . 配置内核支持JFFS2文件系统
 
File systems ---> Miscellaneous filesystems --->
 
<*>JournallingFlash File System v2 (JFFS2) support
 
[*]JFFS2write-bufferingsupport
 
[*]AdvancedcompressionoptionsforJFFS2
 
[*]JFFS2ZLIBcompressionsupport
 
[*]JFFS2RTIMEcompressionsupport
 
[*] JFFS2 RUBIN compression support
 
   最好把关于JFFS2的配置都选上
 
六:把内核原来默认支持的 Ramdisk文件系统,卸掉,即内核中不自动包含这文件系统
 
    General setup --->
                      --->Initramfs source file(s) 这个不用填充
    Device Driver --->
                       Block devices---> 两个都不用选上
                                         RAM disk support
                                         Initial RAM filesystem and RAM disk ....
 
 
 
 
 
阅读(2210) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

2011-12-07 17:12:08

请问make clean all 之后出现了
Trying libraries: crypt m
Library crypt is not needed, excluding it
Library m is needed, can't exclude it (yet)
Final link with: m

make install之后出现了
--------------------------------------------------
You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly.
--------------------------------------------------
而且没有usr目录。
我应该怎么