【1】基于TQ2440的MP3设计——【6、构建根文件系统】

本文详细介绍了如何在S3C2440平台上构建基于Linux的MP3播放器的根文件系统。内容包括根文件系统的重要性、BusyBox的移植步骤,以及如何创建并填充根目录,涉及到的工具如make menuconfig、mdev配置等,并提到了TSLib和Linux驱动模块的整合。
摘要由CSDN通过智能技术生成

4、构建根文件系统

a、Linux 内核在系统启动期间进行的最后操作之一就是安装根文件系统,它是Linux 系统不可缺少的组件,含有 Linux 运行必需的文件。根据 Filesystem Hierarchy  Standard  文档,根文件设置如下:

bin 目录:必要的用户命令(二进制程序) 

dev 目录:设备文件 

etc 目录:系统配置文件,包括启动文件 

lib 目录:链接库,例如 C 链接库、内核模块 

mnt 目录:挂载点 

opt 目录:非系统软件套件 

proc 目录:内核向用户提供内核与进程信息的虚拟文件系统 

sbin 目录:系统管理员命令(二进制程序) 

tmp 目录:临时文件 

usr 目录:在第二层包含对大多数用户都有用的应用程序和文件 


b、BusyBox 移植 

busybox 是一个集成了一百多个最常用 linux 命令和工具的软件,甚至还集成了 http 服务器和 telnet 服务器,而所有这一切功能却只有 1M 左右大小。如果把 x86 linux 命令比作分离式电子元件,busybox 就是一个集成电路,把常用的工具和命令集成在一个可执行文件,功能基本不变,大小却小很多倍,在嵌入式 linux 应用中有非常广的应用。移植 BusyBox 的过程如下:

(1)解包源代码 

tar jxvf busybox-1.10.0.tar.bz2 

cd busybox-1.10.0 

(2)  修改 Makefile 

ARCH     ?= arm 

CROSS_COMPILE    ?= arm-softfloat-linux-gnu- 

(3) 编译配置 

make defconfig   #  启用默认配置,再修改 

make menuconfig 

确认编译选项: 

Busybox Settings   --->  

Build Options   ---> 

[ ] Build BusyBox as a static binary (no shared libs)   #  使用共享库 

Installation Options   --->  

[*] Don't use /usr   #  必需选中,否则 make install  后 busybox 

#将安装在原系统的/usr 下,这将覆盖掉系统原有的命令 

Applets links (as soft-links)   --->  

(./_install) BusyBox installation prefix  

Linux System Utilities   --->  

[*] mdev  # mdev 可以自动的创建设备节点,以免手工 mknod 

[*]    Support /etc/mdev.conf   

[*]      Support subdirs/symlinks  

[*]      Support command execution at device addition/removal  

[*]    Support loading of firmwares 

Shells   --->   

Choose your default shell (ash)   ---> 

[*]    Job control  # Job control 功能(例如 Ctrl+C 终止进程) 

(4).编译、安装 

make 

编译信息末尾提示: 

Library crypt is needed 

Library m is needed 

表示 Busybox 需要 libcrypt 和 libm 库。不用理会,稍后制作的根文件会含有

所有动态链接库。 

make install 

编译程序将生成的文件拷贝到_install 目录 


c、构建根文件系统 

根文件系统存储 Linux 内核运行时需要访问的资源,包括许多链接库文件和系统初始化脚本,也用来存储用户文件。根文件系统的构建过程如下 
(1)  创建根目录 

mkdir rootfs 

cd rootfs 

(2)  把 busybox 的二进制文件拷贝 rootfs 目录 

cp -r $busybox/_install/* . 

把 QTopi 的库文件拷贝到 rootfs 目录 

cp -rfd /opt/qtopia-core-4.3.5 ${ROOTFS}/opt 

把 TSLib 库文件拷贝到 ROOTFS/usr 目录 

cp –rfd /home/valkyrie/tslib-build/lib ${ROOTFS}/usr/ 

把 Linux 的驱动模块拷贝 rootfs/lib 目录 

cp –rfd modules ${ROOTFS}/lib 

(3) 修改 busybox 默认的 linuxrc 

busybox 默认的 linuxrc 是个符号链接,实际上它是简单地调用/sbin/init,删

除原来的 linuxrc,创建新的 linuxrc 脚本,添加更多初始化语句。 

rm -f linuxrc 

vim linuxrc 

下面是 linuxrc 脚本的内容,#后面为注释: 

 

#!/bin/sh 

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

runlevel=S 

prevlevel=N 

umask 022 

export PATH runlevel prevlevel    #  输出环境变量 

 

#TSLIB 环境变量 

export TSLIB_ROOT=/usr/tslib  

export TSLIB_TSDEVICE=/dev/event0 

export TSLIB_FBDEVICE=/dev/fb0  

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf  

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts  

export TSLIB_CALIBFILE=/etc/pointercal  

export TSLIB_CONSOLEDEVICE=none  

export HOME=/root  


未完待续。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值