FL2440根文件系统的制作(完整版)

内核版本:Linux-2.6.28.7
交叉编译器版本:arm-linux-gcc4.1.2
操作系统平台:Linux(要用选上eabi支持)  Red Hat 企业版5

开发板平台:arm FL2440
使用的工具:Busybox-1.15.2.tar.bz2

提示:FL2440根文件系统的制作网上已经有很多例子,但是你发现没有,你按照他们的做法你有可能还是实现不了,我做了两方面的改进,

一是创建设备节点的时候要多加两项

#mknod s3c2410_serial0 c 204 64                

#mknod ttyS0        c  4    0  

二是把passwd文件中的第一行:root:x:0:0:root:/root:/bin/bash中的/bin/bash,改成/bin/sh

其余的基本和其他的一样,busybox编译过程中常见的错误在下篇文章中讲解。

步骤为:
一、准备制作
创建根文件系统目录,主要包括以下目录:/bin、/etc、/dev、/home、/lib、/mnt、/opt、/proc、
/root、/sbin、/sys、/tmp、/usr、/var。
建一个名为rootfs的文件夹
在该文件夹下创建上述目录
#mkdir bin etc dev ……………
二、编译 busybox
获取busybox1.15.2源码,在http://www.busybox.net/downloads/找到busybox-1.15.2.tar.bz2这个
压缩包,下载,解压:
#tar xjvf busybox-1.15.2
进入源码目录,修改Makefile
CROSS_COMPILE = arm-linux-
ARCH = arm
执行#makemenuconfig进行配置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 --->
选择上不用usr
(./_install) Busybox installation prefix <—进入这个选项,输入busybox的安装路径,
     如:../yaffs
  Busybox Library Tuning --->
 
·  vi-style line editing commands
 
·  Fancy shell prompts<—要选择这个选项:“Fancy shell prompts”,否则挂载文
   件系统后,无法正常显示命令提示符:“[\u@\h \W]#”
配置完后,执行#make make install,然后就会在上一级目录下生成rootfs文件夹,里面包含几个
文件夹/bin、/sbin、/usr、linuxrc。把这些文件全部复制到刚建好的rootfs目录下。

#cp –rf * ../rootfs

三、制作文件系统
在dev目录下,创建两个设备节点:
#mknod console c 5 1
#mknod  null   c 1 3

由于后面会显示不能打开
can't open /dev/s3c2410_serial0: No such file or directory
can't open /dev/ttyS0: No such file or directory
(所以这儿还要创建两个设备节点)
#mknod s3c2410_serial0 c 204 64
#mknod ttyS0        c  4    0            
进入etc目录,添加文件:
(1)拷贝Busybox-1.15.2/examples/bootfloopy/etc/*到当前目录下。
# cp-r../../busybox-1.15.2/examples/bootfloopy/etc/*./
包括的文件:fstab、init.d、inittab、profile
(2)拷贝/etc/passwd、/etc/group、/etc/shadow到当前目录下。
# cp/etc/passwd./
# cp/etc/group./
# cp/etc/shadow./
把passwd文件中的第一行:root:x:0:0:root:/root:/bin/bash中的/bin/bash,改成/bin/sh,因为文件
系统的bin目录下没有bash这个命令,而是用ash代替bash,所以在用用户名密码登录的时候(如
telnet),会出现“cannot run /bin/bash: No such fileor directory”的错误。
(3)修改inittab文件:
内容如下:
console::sysinit:/etc/init.d/rcS
ttyS0::respawn:-/bin/sh
s3c2410_serial0::askfirst:-/bin/sh
:: once:/usr/sbin/telnetd-l/bin/login
:: ctrlaltdel:/bin/umount-a-r
(4)修改fstab文件,内容如下:
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
(5)修改init.d/rcS文件,内容如下:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask022
exportPATHrunlevelprevlevel
mount-a
mkdir/dev/pts
mount-tdevptsdevpts/dev/pts
echo/sbin/mdev>/proc/sys/kernel/hotplug
mdev-s
mkdir-p/var/lock
/bin/hostname-F/etc/sysconfig/HOSTNAME

(6)修改profile文件,内容如下:
# Ashprofile
# vim:syntax=sh
# Nocorefilesbydefault
#ulimit-S-c0>/dev/null2>&1
USER="`id-un`"
LOGNAME=$USER
PS1='[\u@\h\W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
echo" Processing/etc/profile... "
echo"Done"
exportUSERLOGNAMEPS1PATH
(7)新建sysconfig文件夹,在里面新建HOSTNAME文件,内容为:FL2440
(8)拷贝库文件:
进入lib目录,拷贝交叉编译器的库文件到lib目录下
#cp-f-a/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib/*.so*./
由于交叉编译器的库文件比较多,体积较大,所以需要裁剪一下库文件,只保留常用的库文

件。

#cp mkyaffs2image /usr/bin

制作文件系统镜像:
#mkyaffs2image  root_2.6.33  root_2.6.33.bin

root_2.6.33.bin就是yaffs2文件系统镜像,要先修改它的权限,否则该文件无法被复制:

#chmod777root_2.6.33.bin
把root_2.6.33.bin下载到nandflash中的文件系统分区中,如果文件系统能正常挂载,终端会打印出:
Please press Enter to activate this console. <—按回车
Processing /etc/profile...
Done

时间: 2025-01-01 10:27:55

FL2440根文件系统的制作(完整版)的相关文章

linux根文件系统的制作

 (一):首先linux根文件系统的制作需要的开发环境. 1:移植Linux内核版本: linux-3.0.1 (只要能用就行) 2:交叉编译工具:arm-linux-gcc 4.3.2(任选) 3:文件系统制作工具:Busybox-1.13.3(任选) 4:etc.tar.gz (二):交叉编译环境的搭建(这一步我在我的博客其他文章里面有 详细的搭建过程,很简单滴-) (三):创建根文件系统的目录 1:在主目录下面新建一个文件夹rootfs [root@localhost fs]# ls [r

使用Busybox-1.2.0制作根文件系统

使用Busybox-1.2.0制作根文件系统 cross-3.3.2 make-3.8.1   STEP 1: 创建根文件系统目录,主要包括以下目录/bin,/etc,/dev,/mnt,/sbin,/usr,/sbin,/tmp /proc,/lib. /usr下有bin, sbin, lib, local, etc   /mnt下有etc 创建多级目录可以使用mkdir –p usr/bin/ --.   STEP 2: 升级make到3.81版本,用RH9自己带的make 3.79会出错

linux根文件系统制作之busybox编译和系统构建【转】

转自:http://blog.chinaunix.net/uid-29401328-id-5019660.html 介绍完相关文件后我们开始构建文件系统,涉及到的文件等到具体用到的时候再讲. 一.编译busybox 首先下载busybox源码,编译busybox,得到一些初始化文件及我们需要的各种命令.关于busybox的作用请百度,这里不详细讲.我下载的是busybox-1.23.1,解压之后进入到顶层目录. 1.修改顶层Makefile 把CROSS_COMPILE和ARCH修改成你自己的交

使用BusyBox制作Linux根文件系统

STEP 1:构建目录结构  创建根文件系统目录,主要包括以下目录/dev  /etc /lib  /usr  /var /proc /tmp /home /root /mnt /bin  /sbin  /sys  #mkdir     /home/rootfs#cd        /home/rootfs #mkdir  dev  etc  lib  usr  var  proc  tmp  home  root  mnt   sys   STEP 2:    使用busybox构建/bin

手把手教你移植根文件系统(目标平台S3C2410)

Linux内核在系统启动期间进行的最后操作之一就是安装根文件系统,根文件系统一直是所有类UNIX系统不可或缺的组件. bin      必要的用户命令(二进制文件) *boot     引导加载程序使用的静态文件 dev      设备文件及其他特殊文件 etc      系统配置文件 *home  用户主目录 lib       必要的链接库,例如:C链接库.内核模块 mnt       临时挂载的文件系统的挂载点 *opt     附加软件的安装目录 proc    提供内核和进程信息的pr

u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

http://www.linuxidc.com/Linux/2012-09/70510.htm  来源:Linux社区  作者:赵春江  uboot最主要的功能就是能够引导内核启动.本文就介绍如何实现该功能,并组成一个最简单的系统,这不仅要移植uboot,还要移植linux内核及创建一个根文件系统. 首先我们对nandflash进行分区,规划好每个文件存放在nandflash的位置.下面是nandflash的分区: 第0分区:0x000000000000-0x000000080000为uboot

unix中利用Find命令备份根文件系统

在Unix操作系统中有很多命令可以用来备份文件.但是Unix操作系统中根文件系统是一种比较特殊 的文件.通常情况下对这类文件进行备份的话,必须要卸载其他文件系统.因为根文件系统是其他文件 系统的祖宗,如果不卸载的话,会同时备份其他文件系统中的文件.但是如果先卸载其他文件系统再进 行备份的话,那么就会很麻烦.为此在find命令中提供了一个很有用的参数,可以帮助我们实现这个功 能. 一.根文件系统备份的重要性及备份的难点. 当系统发生崩溃时,虽然可以通过重新安装操作系统来恢复.但是这个工作量很大,因

TI Davinci DM6446开发攻略——根文件系统的裁剪和移植

一.补充文件系统知识 Linux根文件系统是存放tool软件.lib文件.script(脚本).配置文件.其他特殊文件.自己开发的应用程序的地方.嵌入式linux的根文件系统rootfs就像windows操作系统的C.D盘这种概念机制,FLASH对应硬盘.但linux是挂载点的概念,根文件系统是一个整体,组织到一个树状的目录结构中.这种文件组织遵守文件系统科学分类标准FHS,一种国际标准.运行.维护系统所必须的各种 在开发.测试阶段,基本上都是使用NFS(网络文件系统),NFS文件系统是在你的开

压缩-数码大师2013白金正式完整版

问题描述 数码大师2013白金正式完整版 数码大师2013白金正式完整版,已经激活的压缩RAR的,或者 数码大师2013白金正式完整版没有激活的给我也行,谢谢了,帮朋友制作婚礼的图片,不要给试用版 解决方案 136726674@qq.com发我后一定会采纳哦,放心好了 解决方案二: 我有激活文件.你先采纳了本回答,留下邮箱我发给你. 解决方案三: 数码大师2013 32.9 Build 8300 DEMO版+2013 V32.9 Build 8300白金正式完整版