mini2440中busybox和yaffs2文件系统的移植

来源:互联网 发布:mac键盘按键拆卸 编辑:程序博客网 时间:2024/05/22 16:30

mini2440,bootloader为官方提供的supervivi,linux内核为linux-2.6.34.2。移植busybox和yaffs2文件系统的步骤:

(1)    获取busybox源码包。

下载地址http://www.busybox.net/downloads/。在此,下载的版本为:busybox-1.20.2。

(2)    获取yaffs2源码包。

从官网上下载最新版本的,在此,下载的版本为:yaffs2-52df965。

(3)    进入yaffs2-52df965目录,给内核打补丁

./patch-ker.shc m ../linux-2.6.34.2

(4)    配置内核,支持yaffs2文件系统。

进入内核根目录,运行make menuconfig命令,选择File Systems、Miscellaneous filesystems、YAFFS2 filesystem support。

(5)    构建根文件系统。

在/opt/目录下,新建目录/fs/,进入fs中,编写创建根文件系统脚本create_rootfs_bash,其内容如下:

#!/bin/sh
echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs
echo "--------Create root,dev....----------"
mkdir root dev etc boot tmp var sys proc lib mnt home usr
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules
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---------"

修改脚本的可执行权限:chmod +xcreate_rootfs_bash

建立动态链接库:

将mini2440官方提供的根文件系统解压,然后将lib下的文件全部复制到我们的lib下边。

(6)    配置busybox。

解压安装busybox,进入busybox根目录,修改Makefile文件:

CROSS_COMPILE ?=arm-linux-

ARCH ?= arm

然后运行make menuconfig,进行配置:


        

(7)    编译busybox。

makeCONFIG_PREFIX=/opt/fs/rootfs install

(8)    建立etc目录。

i.                    拷贝主机etc目录下的passwd、group、shadow文件到rootfs/etc目录下。

ii.                  在etc/下创建mdev.conf文件

mdev.conf的内容为:

# system all-writable devices

full 0:0  0666

null 0:0  0666

ptmx 0:0  0666

random 0:0  0666

tty 0:0  0666

zero 0:0  0666

# console devices

tty[0-9]* 0:5 0660

vc/[0-9]* 0:5 0660

# serial port devices

s3c2410_serial0  0:5 0666  =ttySAC0

s3c2410_serial1  0:5 0666  =ttySAC1

s3c2410_serial2  0:5 0666  =ttySAC2

s3c2410_serial3  0:5 0666  =ttySAC3

# loop devices

loop[0-9]* 0:0  0660  =loop/

# i2c devices

i2c-0 0:0  0666  =i2c/0

i2c-1 0:0  0666  =i2c/1

# frame buffer devices

fb[0-9] 0:0  0666

# input devices

mice 0:0  0660  =input/

mouse.* 0:0  0660  =input/

event.* 0:0  0660  =input/

ts.* 0:0  0660  =input/

# rtc devices

rtc0 0:0  0644  >rtc

rtc[1-9] 0:0  0644

# misc devices

mmcblk0p1 0:0  0600  =sdcard */bin/hotplug.sh

sda1  0:0  0600 =udisk * /bin/hotplug.sh

iii.                 etc/inittab文件:仿照Busybox的examples/inittab文件,在etc/目录下创建一个inittab文件,写上以下内容:

#etc/inittab

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

::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a –r

iv.                 创建etc/init.d/rcS文件:

#!/bin/sh

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

runlevel=S    //运行的级别

prevlevel=N

umask 022    //文件夹的掩码
export PATH runlevel prevlevel
echo"--------- munt all--------"
mount –a    //挂载/etc/fstab/文件指定的所有的文件系统
echo /sbin/mdev>/proc/sys/kernel/hotplug
mdev -s
echo "*************************"
echo "**********************mnonm ARM**************"
echo "Kernel version:linux-2.6.34.2"
echo "Author:mnonm"
echo "Data:2013,01,14"
echo "***********************"
/bin/hostname -F /etc/sysconfig/HOSTNAME  //主机的名字

最后,还要改变它的属性,使它能够运行

sudo chmod +x etc/init.d/rcS

v.                  etc/sysconfig目录下新建文件HOSTNAME,内容为”mnonm-mini2440”。

vi.                 创建etc/fstab文件:

#device mount-point type option dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
none /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
mdev /dev ramfs defaults 0 0

vii.               创建etc/profile文件:

#Ash profile
#vim:syntax=sh
#No core file by defaults
#ulimit -S -c 0>/dev/null 2>&1
USER="id -un"
LOGNAME=$USER
PS1='[\u@\h\W]#'
PATH=$PATH
HOSTNAME='/bin/hostname'
export USER LOGNAME PS1 PATH

(9)    制作根文件系统映像文件

使用mini2440官方提供的mkyaffs2image-128M制作。

运行命令mkyaffs2image-128M rootfs rootfs.img,生成rootfs.img。

(10) 将根文件系统映像下载到开发板。可以看到文件系统,不过现在只是一个最基本的Linux系统,里面的驱动程序还没有,网上驱动,LCD驱动等等,所以还有很多的东西要移植呢。这也是下一步的任务。

原创粉丝点击