Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3115024
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-09-19 19:23:20

原文地址:http://blog.chinaunix.net/uid-24219701-id-2855596.html

1、创建根文件系统的目录

# mkdir rootfs

# cd rootfs

# mkdir bin dev etc lib proc sbin sys usr mnt tmp var


2、创建设备文件

# cd dev/

# mknod -m 666 console c 5 1

# mknod -m 666 null c 1 3


3、安装/etc etc.rar :etC目录主要是一些启动时的脚本文件,一般不需要修改。

# tar etc.tar.gz –C /xxx/rootfs


4、编译busybox 获取:(busybox-1.15.2.tar.bz2这个压缩包,下载,解压)

进入源码目录,修改Makefile第164行:

CROSS_COMPILE = arm-linux-

第190行:

ARCH = arm


执行#make menuconfig 进行配置busybox

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

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]#”

??

5、编译、安装busybox

# make

# make install

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


安装gligc库

进入lib 目录

#cp–fa /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* ./


库文件是位于当前的交叉编译器目录下。由于交叉编译器的库文件比较多,体积较大,所以需要裁剪一下库文件,只保留常用的库文件。


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

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

针对大页256M NAND

mkyaffs2image.rar



针对小页64\128M NAND mkyaffs2image 工具

把解压出来的可执行文件复制到/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 中的文件系统分区中


其它:设置开发板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

在/etc/profile中加入: alias ll=`ls -l`

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

alias mntud1=`mount /dev/sda1 /mnt/udisk1`

alias umntud1=`umount /mnt/udisk1`

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



移植手册: 文件系统制作v1.5.pdf 


阅读(1078) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~