smdk210 构建根文件系统

来源:互联网 发布:影响二次销售 淘宝介入 编辑:程序博客网 时间:2024/05/29 13:49
                                                        构建根文件系统
常用概念:
1.如何建立符号链接
#ln –s busybox  ls
#ln –s busybox cp
2.glibc库包括的主要文件:
静态库文件( .a)
动态库文件( .so、.so.[0-9]*)
 
一.解压步骤。
1.复制 busybox-1.2.0.tagz到虚拟机里。
2.tar xvf busybox-1.2.0.tagz
3.cd busybox-1.2.0
二.make menuconfig配置。
1.make menuconfig
2. 使用静态链接
3.设置TAB补齐,选择tar命令,使用可加载模块,增加ifconfig。
三.编译和安装Busybox
1.修改Makefile
  修改前
ARCH       ?= $(SUBARCH)
CROSS_COMPILE ?=
  修改后
ARCH       ?= arm
CROSS_COMPILE ?=arm-linux-
2.编译和安装。在当前目录下生成_install(相当于根目录)
执行make ,make all install。
3.创建lib。使用glibc库
glibc库的位置是/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib
cd    lib
cp  /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib*.s*./  -d
cp  /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib*.a ./  -d
4.构建etc目录
a.创建etc/inittab文件:
<id>:<runlevels>:<action>:<process>
id ->/dev/id,用作中端:stdin,stdout,stderr:printf,scanf,err
runlevels:完全忽略
action:执行时机
process:应用程序或脚本
# System initialization.
::sysinit:/etc/init.d/rcS
::sysinit:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
b. 创建etc/fstab文件:
         none                   /proc                  proc     defaults             0 0
         none                   /dev/pts            devpts      mode=0622      0 0
         tmpfs                 /tmp             tmpfs        defaults             00
         proc        /proc        proc   defaults      0 0
c.创建etc/init.d/rcS文件:
         #!/bin/sh
         mount -a
5.构建dev目录
在/dev目录下静态创建各种节点(即设备文件):
cd/home/student/root_fs/fs_mini/dev
mknodconsole c 5 1
mknodnull c 1 3
mknodttySAC0 c 204 64
mknodmtdblock0 b 31 0
mknodmtdblock1 b 31 1
mknodmtdblock2 b 31 2
6.构建其他目录,比如:root home mnt proc sys tmp var
mkdir home mnt proc sys tmp var root
7.制作mkyaffs2image和rootfs.yaffs
tar xvfyaffs2-source.tar
cdyaffs2/utils
make
cpmkyaffs2image ../ busybox-1.21.1
cd../busybox-1.21.1
./mkyaffs2image_install rootfs.yaffs
8.烧写yaffs文件系统镜像文件
tftp0x20008000 rootfs.yaffs
nanderase 0xe00000 $(filesize)
nandwrite.yaffs 20008000 e00000 $(filesize)
 
 最小根文件系统
1.init->busybox
2./dev/console;/dev/null
3./etc/initab
4.配置文件中指定的程序

5.C库

 

1 0
原创粉丝点击