注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小白的博客

嵌入式爱好者

 
 
 

日志

 
 

linux-3.4.2移植笔记——修改分区及制作jffs2根文件系统  

2012-08-25 16:57:04|  分类: 韦东山视频第二轮 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一、修改分区:
1、将arch/arm/mach-s3c24xx/common-smdk.c中的:
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "Boot Agent",
.size = SZ_16K,
.offset = 0,
},
[1] = {
.name = "S3C2410 flash partition 1",
.offset = 0,
.size = SZ_2M,
},
[2] = {
.name = "S3C2410 flash partition 2",
.offset = SZ_4M,
.size = SZ_4M,
},
[3] = {
.name = "S3C2410 flash partition 3",
.offset = SZ_8M,
.size = SZ_2M,
},
[4] = {
.name = "S3C2410 flash partition 4",
.offset = SZ_1M * 10,
.size = SZ_4M,
},
[5] = {
.name = "S3C2410 flash partition 5",
.offset = SZ_1M * 14,
.size = SZ_1M * 10,
},
[6] = {
.name = "S3C2410 flash partition 6",
.offset = SZ_1M * 24,
.size = SZ_1M * 24,
},
[7] = {
.name = "S3C2410 flash partition 7",
.offset = SZ_1M * 48,
.size = MTDPART_SIZ_FULL,
}
};

修改为:
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "bootloader",
.size = SZ_256K,
.offset = 0,
},
[1] = {
.name = "params",
.offset = MTDPART_OFS_APPEND,
.size = SZ_128K,
},
[2] = {
.name = "kernel",
.offset =MTDPART_OFS_APPEND ,
.size = SZ_2M,
},
[3] = {
.name = "rootfs",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
  };

2、是内核支持eabi接口
make menuconfig

 Kernel Features--->
       [*] Use the ARM EABI to compile the kernel  


注释1:
MTDPART_OFS_APPEND :表示紧跟上一个分区
MTDPART_SIZ_FULL:表示剩下的所有空间

注释2:在u-boot里面我们划分过分区,在这里又划分分区,但是这两次划分分区是完全不也一样的。在u-boot里面的划分分区其实并不是真的划分分区,他只是为了能用分区名来代替那些offset和size。而内核里面划分分区的话就是真的划分分区了,规定那个分区放什么代码就要放什么代码!

二、制作根文件系统
1、解压:tar xvf busybox-1.20.0.tar.bz2 
2、配置交叉编译工具:
cd busybox-1.20.0
make menuconfig
    Busybox Settings  ---> 
                 Build Options  ---> 
                        () Cross Compiler prefix  
在弹出的对话框里面写入:arm-linux-

3、编译:make
4、新建安装目录:mkdir fs_mini_mdev_new
5、安装:make install CONFIG_PREFIX=/home/share/jz2440/source/other/fs_mini_mdev_new
6、拷贝库:
cd fs_mini_mdev_new
mkdir lib
mkdir usr/lib
cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so*  ./lib -d
cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*so* ./usr/lib/ -d
-d的意思就是如果是链接文件,拷贝的时候也作为链接文件拷贝!

7、构造etc目录:
mkdir etc

mkdir etc/fstab,其内容为:
# device     mount-point    type   options        dump  fsck order
proc           /proc        proc   defaults        0     0
tmpfs          /tmp         tmpfs  defaults        0     0
sysfs          /sys         sysfs  defaults        0     0
tmpfs          /dev         tmpfs  defaults        0     0

mkdir init.d
mkdir init.d/rcS,其内容为:
#!/bin/sh
ifconfig eth0 192.168.183.127
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

mkdir inittab,其内容为:
# /etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
tty1::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

8、构造dev目录
mkdir dev
mknod dev/console c 5 1
mknod dev/null c 1 3

9、构造其他目录
mkdir proc tmp mnt sys root

10、制作mkfs.jffs2,这是制作jffs2镜像的工具
tar xvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --shared --prefix=/usr
make
make install
cd ..
tar xvf mtd-utils-05.07.23.tar.bz2 
cd mtd-utils-05.07.23/util
make
make install

11、jffs2镜像文件
cd ..
cd ..
mkfs.jffs2 -n -s 2048 -e 128KiB -d fs_mini_mdev_new -o fs_mini_mdev_new.jffs2
-s表示页的大小
-e 表是擦除块的大小
制作成功!

12、烧写jffs2
nfs 30000000 192.168.183.128:/home/share/jz2440/source/other/fs_mini_mdev_new.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 260000 $filesize
set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2
nfs 30000000 192.168.183.128:/home/share/jz2440/source/kernel/linux-3.4.2/arch/arm/boot/uImage;bootm 30000000

我们看到已经可以挂接jffs2根文件系统了!!!
  评论这张
 
阅读(3053)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017