mini2440中busybox和yaffs2文件系统的移植
2013-01-14 16:36
531 查看
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驱动等等,所以还有很多的东西要移植呢。这也是下一步的任务。
(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驱动等等,所以还有很多的东西要移植呢。这也是下一步的任务。
相关文章推荐
- 移植yaffs2文件系统到mini2440 嵌入式 yaffs2文件系统的移植
- Linux-2.6.32.2内核在mini2440上的移植(二)---yaffs2文件系统移植
- jz2440 根文件系统 移植(yaffs2、busybox部分)
- linux 2.6.32.2 mini2440平台移植--内核移植、yaffs2文件系统移植
- 基于s5pv210的移植最新busybox-1.21.1到yaffs2文件系统
- u-boot-2009.08在mini2440上的移植 增加yaffs2文件系统
- .Linux-2.6.32.2内核在mini2440上的移植(二)---yaffs2文件系统移植
- mini2440 移植linux2.6.30.10 及yaffs2文件系统 2011-03-12 10:17:18
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(二)---yaffs2文件系统移植
- Linux-2.6.32.2内核在mini2440上的移植(二)---yaffs2文件系统移植
- 移植yaffs2文件系统到mini2440 嵌入式 yaffs2文件系统的移植
- 移植yaffs2文件系统到mini2440过程详解
- Linux-2.6.32.2内核在mini2440上的移植(二)---yaffs2文件系统移植
- 移植yaffs2文件系统到mini2440
- linux 2.6.32.2 mini2440平台移植--内核移植、yaffs2文件系统移植
- u-boot-2009.08在mini2440上的移植(五)---增加yaffs2文件系统
- mini2440 移植linux2.6.30.10 及yaffs2文件系统
- 基于busybox1.19.3移植yaffs2文件系统至OK6410A开发板
- Linux-2.6.32内核在mini2440上的移植 yaffs2文件系统移植
- linux-2.6.32在mini2440开发板上移植(19)之yaffs2文件系统移植