构建文件系统
时间:2010-07-21 来源:unixeye
1. 编译busybox
cd busybox-1.16.0
修改该目录下的Makefile 文件。
将164行的
CROSS_COMPILE ?=
改为
CROSS_COMPILE ?= arm-linux-
将190行的
ARCH ?= $(SUBARCH)
改为
ARCH ?= arm
配置busybox 执行
make menuconfig
具体配置如下(这里仅列出修改过的部分,其他选项均采用默认值即可。
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
Busybox Library Tuning --->
[*] vi-style line editing commands
[*] Fancy shell prompts
Linux Module Utilities --->
[ ] Simplified modutils
[*] insmod
[*] rmmod
[*] lsmod
[*] modprobe
执行
make
make install
编译结束后将在busybox-1.16.0 下生成一个名为_install 目录,该目录下有4个文件。bin,sbin,usr,linuxrc。
2. 构建最小文件系统框架
mkdir –p /opt/Vize/fs/myfs_mini
cd /opt/Vize/fs/myfs_mini
cp –rf /opt/Vize/fs/busybox-1.16.0/_install/* .
mkdir –p dev etc lib mnt/udisk proc root sys tmp
向各目录添加内容
dev 目录
cd myfs_mini/dev
mknod console c 5 1
mknod null c 1 3
etc 目录
fstab 文件的内容如下
# device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
inittab 文件内容如下
# /etc/inittab
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
修改inittab 文件的属性为克执行
chmod 777 inittab
/etc/init.d/rcS 文件内容如下:
#!/bin/sh
ifconfig eth0 192.168.1.17
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev –s
lib 目录
执行如下命令
cd myfs_mini
cp –f /opt/Vize/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*.so* lib –a
rm –f lib/libwv* lib/libuniconf*
其他目录可以为空目录。
至此,最小文件系统已经建立成功,用yaffs文件系统治作工具将其制成yaffs 格式的影像文件就可以烧到board 上使用了。
3. 增加自动挂载U盘支持
在最小根文件系统 myfs_mini的 etc 目录下新建一个 mdev.conf 的文件,内容如下:
sd[a-z]*[0-9] 0:0 0660 @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /mnt/udisk)
sd[a-z]*[0-9] 0:0 0660 *(umount /mnt/udisk)
在myfs_mini/mnt 目录下新建一个名为 udisk 的目录
cd myfs_mini/mnt
mkdir udisk
然后用yaffs文件系统治作工具将其制成yaffs 格式的影像文件就可以烧到board 上。系统启动后,插上U盘,在etc/udisk 目录下就可以看到U盘的内容了。
4. 添加QT4图形支持
执行如下命令
cd myfs_mini
mkdir –p opt/qt-4.5/bin
cd opt/qt-4.5
cp –rf /opt/Vize/qt-4.5/__install/arm/lib .
cd lib
rm –rf *.la *.prl pkgconfig/
cd fonts
rm –rf *.pfb *.pfa
rm –rf *Deja* *helv*
rm -rf japanese_230_50.qpf micro_40_50.qpf README
cd /opt/Vize/fs/myfs_mini/opt/qt-4.5
cp -rf /opt/Vize/qt-4.5/__install/arm/plugins/
cd plugins
rm -rf accessible/
myfs_mini/opt/qt-4.5 目录下的bin 目录,就是存放qt4应用程序的目录。比如将模拟时钟的可执行文件 analogclock 放入该目录下。
在myfs_mini/bin 目录下新建一个名为 qt4 的脚本。内容如下:
#!/bin/sh
export set HOME=/root
export set QTDIR=/opt/qt-4.5
export set QPEDIR=/opt/qt-4.5
export set QWS_DISPLAY="LinuxFB:/dev/fb0"
export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export set QWS_KEYBOARD="TTY:/dev/tty1"
export set QWS_MOUSE_PROTO="TSLIB:/dev/event0"
export set QT_PLUGIN_PATH=$QTDIR/plugins/
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set PATH=$QPEDIR/bin:$PATH
export set
LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_PATH
$QPEDIR/bin/mainwindow –qws
修改 qt 脚本属性
chmod 777 qt4
修改 myfs_mini/etc/init.d/rcS 文件,在最后一行加上
qt4 &
最后,将 myfs_mini 制成yaffs格式镜像文件烧写到开发板上,系统启动后就会运行analogclock 程序。