嵌入式linux系统构建内容,构建嵌入式Linux系统-根文件系统的内容

一, 根文件系统的基本结构

建立目录见:构建嵌入式Linux系统-开发工具

$ cd ${PRJROOT}/rootfs

二, 链接库

查看应用程序依存哪些动态链接库(不可使用宿主机的ldd),示范使用readelf取回BusyBox工具程序的依存关系:

$ arm-linux-readelf -a ${PRJROOT}/rootfs/bin/busybox | grep "Shared library"

复制必要glibc组件命令:

$ cd ${TARGET_PREFIX}/lib

$ for file in libc libcrypt libdl libm libpthread libresolv libutil

> do

> cp $file-*.so ${PRJROOT}/rootfs/lib

> cp -d $file.so.[*0-9] ${PRJROOT}/rootfs/lib

> done

$ cp -d ld*.so* ${PRJROOT}/rootfs/lib

$ arm-linux-strip ${PRJROOT}/rootfs/lib/*.so

三, 复制内核模块目录到根文件系统

$ cp -a ${PRJROOT}/images/modules-2.4.26/* ${PRJROOT}/rootfs

四, 内核映像

如果准备将引导加载程序设置成从根文件系统来启动内核,则此刻将内核映像复制到目标板的根文件系统:

$ cd ${PRJROOT}/images

$ cp zImage-2.4.26 ${PRJROOT}/rootfs/boot

$ cp 2.4.26.config ${PRJROOT}/rootfs/boot

五, 设备文件

内核源码树的Documentation/dvices.txt文档是静态设备主要和次要编号的正式信息来源.

$ cd ${PRJROOT}/rootfs/dev

$ su -m

Password:

# mknod -m 600 mem c 1 1

# mknod -m 666 null c 1 3

# mknod -m 666 zero c 1 5

# mknod -m 644 random c 1 8

# mknod -m 600 tty0 c 4 0

# mknod -m 666 tty c 5 0

# mknod -m 600 console c 5 1

# exit

$ ln -s /proc/self/fd fd

$ ln -s fd/0 stdin

$ ln -s fd/1 stdout

$ ln -s fd/2 stderr

六, BusyBox

$ cd ${PRJROOT}/sysapps/busybox-0.60.5

$ make TARGET_ARCH=arm CROSS=arm-linux- PREFIX=${PRJROOT}/rootfs all install

七, 定制应用程序

八, 系统初始化

Busybox init

1.配置/etc/inittab文件

#=================示例==================================

# Boot-time system configuration/initialization script.

# This is run first except when booting in single-user mode.

#

::sysinit:/etc/init.d/rcS

# /bin/sh invocations on selected ttys

#

# Start an "askfirst" shell on the console (whatever that may be)

::askfirst:-/bin/sh

console::once:/usr/sbin/inetd

# Stuff to do when restarting the init process

::restart:/sbin/init

# Stuff to do before rebooting

::ctrlaltdel:/bin/umount -a -r > /dev/null 2>&1

::ctrlaltdel:/sbin/swapoff -a > /dev/null 2>&1

#=================end===================================

2.配置/etc/init.d/rcS文件

#=================示例==================================

#! /bin/sh

##set -x

hostname S3C2410

echo "FSC2410 RootDisk"

# Mount the /proc file system

mount -t proc proc /proc

mount -t usbdevfs none /proc/bus/usb

mount -t devpts none /dev/pts

echo "mount tmpfs filesystem to /tmp"

mount -t ramfs none /var

mkdir /var/log

mkdir /var/lock

mkdir /var/run

mkdir /var/empty

mkdir /var/tmp

mount -t tmpfs none /var/tmp

ln -s /dev/fb/0 /dev/fb0

ln -s /dev/touchscreen/0raw /dev/touchpanel

cd /dev

mknod tty0 c 4 0

cd /

cp /usr/pen.cfg /tmp

echo "mount yaffs file system to nand flash partition 3"

mount -t yaffs /dev/mtdblock/3 /mnt

export PATH=$PATH:/mnt/recorder/

ls /

clear

ifconfig lo 127.0.0.1 netmask 255.0.0.0

route add -net 127.0.0.0 netmask 255.0.0.0 dev lo

alias ll=‘ls -l‘

# start up the logins (on serial ports)

# finished

echo "/etc/init.d/rcS done."

# Fall through to a shell prompt

#exit 0

echo "start recorder program"

cd /mnt/recorder/

recorder

#=================end===================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值