yaffs2文件系统的制作

内核版本 Linux—2.6.31

交叉编译器 ARM-Linux-gcc 4.1.2

开发板 TX2440A

Busybox-1.15.1.tar.bz2(在Linux中被称为瑞士军刀)

mkyaffs2image工具

 


首先创建一个名字为root_2.6.31的文件夹,在其中创建如下文件夹

etc bin var dev home lib mnt proc root sbin sys tmp usr opt 共14个文件夹

解压Busybox

tar xjvf busybox

进入源目录,修改Makefile

第164行,CROSS_COMPILE = arm-linux-

第190行,ARCH = arm

执行#make men onfig 进行配置

配置选项大部分都是保持默认的,只需要注意选择以下这几个选项,其他的选项都不用动:

Busybox Setting --->

  Build Options --->

   [*]Build Busybox as a static binary(no shared libs)

   [*]Build with Large File Support (for accessing files > 2GB)

 Installation Options --->

   (./_install) Busybox installation prefix

进入这个选项,输入busybox的安装路径,如:../rootfs

Busybox Library Tuning --->

  [*] vi-style line editing commands

  [*] Fancy shell prompts

要选择这个选项:“Fancy shell prompts”,否则挂载文件系统后,无法正常显示命令提示符:“[\u@\h \W]#”

配置完成以后

执行#make

    #make install

然后就会在上一级目录下生成rootfs文件夹,里面包含几个文件夹/bin /sbin /usr linuxrc

把这些文件全部复制到刚建好的root_2.6.31目录下,

#cp –rf * ../root_2.6.31

在dev目录下,创建两个设备节点:

#mknod console c 5 1

#mknod null c 1 3

然后进入自己建立的etc目录

拷贝Busybox-1.15.2/examples/bootfloopy/etc/* 到当前目录下。

# cp -r ../../busybox-1.15.2/examples/bootfloopy/etc/* ./

包括文件:fstab init.d inittab profile

拷贝/etc/passwd, /etc/group, /etc/shadow到当前目录下。

# cp /etc/passwd ./

# cp /etc/group ./

# cp /etc/shadow ./

修改inittab文件:

内容如下:

console::sysinit:/etc/init.d/rcS

ttyS0::respawn:-/bin/sh

s3c2410_serial0::askfirst:-/bin/sh

::once:/usr/sbin/telnetd -l /bin/login

::ctrlaltdel:/bin/umount -a -r

修改fstab文件,内容如下:

proc /proc proc defaults 0 0

tmpfs /tmp tmpfs defaults 0 0

sysfs /sys sysfs defaults 0 0

tmpfs /dev tmpfs defaults 0 0

var /dev tmpfs defaults 0 0

修改init.d/rcS文件,内容如下:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel

mount -a

mkdir /dev/pts

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s

mkdir -p /var/lock

/bin/hostname -F /etc/sysconfig/HOSTNAME


修改profile文件,内容如下:


# Ash profile

# vim: syntax=sh

# No core files by default

#ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"

LOGNAME=$USER

PS1='[\u@\h \W]# '

PATH=$PATH

HOSTNAME=`/bin/hostname`

echo "Processing /etc/profile... "

echo "Done"

export USER LOGNAME PS1 PATH


在当前目录下(etc)建立文件夹sysconfig,在里面新建HOSTNAME文件,内容为:TX2440A

拷贝库文件:(注意)

进入lib目录,拷贝 交叉编译器 的库文件到lib目录下 (是你使用的那个交叉编译器)

#cp -f -a

/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gn?i/lib/*.so* ./

由于交叉编译器的库文件比较多,体积较大,所以需要裁剪一下库文件,只保留常用的库文件,具体的裁剪方法可以参考我们提供的文件系统

的源码。

到这里,文件系统的框架已经做好,我们需要把文件系统制作成可以烧写进Nandflash中的yaffs2镜像文件。

使用mkyaffs2image工具,制作yaffs2镜像,这个工具是在yaffs2源码包中utils目录下的mkyaffs2image.c文件编译得到的,如果使用的是大
页NAND,需要修改源码。

把解压出来的可执行文件复制到/usr/bin目录下,

#cp mkyaffs2image /usr/bin

制作文件系统镜像:

#mkyaffs2image root_2.6.31 root_2.6.31.bin

root_2.6.31.bin就是yaffs2文件系统镜像,要先修改它的权限,否则该文件无法被复制:

#chmod 777 root_2.6.31.bin

把root_2.6.31.bin下载到nandflash中的文件系统分区中

如果文件系统能正常挂载,终端会打印出:

Please press Enter to activate this console. (按回车)

Processing /etc/profile...

Done

[root@TX2440A /]#

STEP 4: 完善文件系统

在/mnt目录下创建以下文件夹,用来挂载NFS,SD卡和U盘

nfs sd isk1 isk2 isk3 isk4

设置开发板IP地址:在init.d/rcS文件中加入:

ifconfig lo 127.0.0.1

ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up

route add default gw 192.168.1.1

这样在开机时,就自己设置了IP地址为:192.168.1.10

在/etc/profile中加入:

alias ll=`ls -l`

alias mntnfs=`mount -t nfs -o nolock`

alias mnt 1=`mount /dev/sda1 /mnt/ isk1`

alias umnt 1=`umount /mnt/ isk1`

alias命令的作用是给一个命令取个别名,可以把较长的命令简化成简单易记的短命令,可以根据自己的需要添加这里的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值