TQ2440 yaff2文件系统制作
#####【环境】
开发板:tq2440 2M-NOR 256-NAND W43
虚拟机:ubuntu14.04 LTS
编译器版本:arm-linux-gcc-4.3.2
busybox版本:busybox-1.13.0
注:busybox、arm-linux-gcc,均使用的天嵌光盘里的。
####1、创建yaffs2文件系统基本结构
~~~~~~~~ 复制以下内容,在ubuntu根目录下创建名为creat_yaffs2.sh脚本文件。会生成目录/yaffs2
#!/bin/sh
rm -rf /yaffs2
echo “——Create yaffs2 directons start…——–”
mkdir yaffs2
cd yaffs2
echo “——–Create root,dev….———-”
mkdir root dev etc boot tmp var sys proc lib mnt home usr opt
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules usr/local
echo “make node in dev/console dev/null”
mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp
chmod 1777 tmp
chmod 1777 var/tmp
echo “——-make direction done———”
cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/* /yaffs2/lib -rf
cd /yaffs2/etc
touch fstab inittab mdev.conf profile sysconfig/HOSTNAME init.d/rcS
chmod 744 init.d/rcS
echo "root@tq2440" > sysconfig/HOSTNAME
结果如图:
2、配置编译busybox
######执行命令make menuconfig配置busybox。
~
Busybox Settings —>Build Options —>
选中Build BusyBox as a static binary (no shared libs)静态编译的方式。
选中Build with Large File Support (for accessing files > 2 GB) () Cross Compiler prefix,括号内指定编译器为arm-linux-
2. ~ Busybox Settings —>Installation Options —>
- ()BusyBox installation prefix,括号内指定安装目录为你的根文件系统目录/yaffs2
3. ~ Busybox Settings —>Busybox Library Tuning —>
- 选中Fancy shell prompts
- 选中Username completion
没有这两项,开发板启动后,文件系统识别不出HOSTNAME4. ~ Networking Utilities —>
- 取消选择:ip tunnel
5. ~ 保存退出
~~~~~~~~ 执行命令 make
~~~~~~~~ 执行命令 make install
3、填充文件系统文件内容
进入到创建的文件系统的etc目录下:
1. 填充文件【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
var /dev tmpfs defaults 0 0
ramfs /dev ramfs defaults 0 0
2. 填充文件【initttab】如下内容:
# /etc/inittab
::sysinit:/etc/init.d/rcS
# 进入文件系统需要点一下回车
#tq2440_serial0::askfirst:-/bin/sh
# 直接进入根文件系统
::respawn:-/bin/sh
::once:/usr/sbin/telnetd -l /bin/login
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
3. 填充文件【mdev.conf】如下内容:
sd[a-z]*[0-9] 0:0 0660 @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /mnt/udisk)
sd[a-z]*[0-9] 0:0 0660 *(umount /mnt/udisk)
mmcblk[0-9]*p[0-9] 0:0 0660 @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /mnt/sd)
mmcblk[0-9]*p[0-9] 0:0 0660 *(umount /mnt/sd)
4. 填充文件【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="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
5. 填充文件【init.d/rcS】如下内容:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME
source /etc/profile
echo
echo
echo "********************<< TQ2440 ARM9 >>********************"
echo " Kernel version:linux-2.6.30"
echo " Author: KunGe"
echo " Data: 2017/03/23"
echo "*********************************************************"
echo
echo
到此,yaffs2根文件系统制作完毕!
4、使用NFS将开发板挂在到ubuntu
- 将u-boot下载到tq2440 nor flash,重启开发板
- 格式化NAND(有两个选项,都格式化掉),下载u-boot到nand flash
- 下载内核
- 将开发板开关拨到NAND,从NAND启动,快速按电脑的空格键,启动下载模式。
- 执行一下操作:
5.1setenv serverip 192.168.0.252 // Ubuntu的ip地址
5.2setenv ipaddr 192.168.0.250 // 开发板ip地址
5.3setenv gatewayip 192.168.0.1 // 设置网关
5.5
setenv bootargs console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.251:/yaffs2 ip=192.168.0.250:192.168.0.252:192.168.0.250:255.255.255.0:SKY2440.embedsky.net:eth0:off
5.6 save,多save几次。
5.7 reset重启开发板
5、结果
挂载成功~!
end…